Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated 3 weeks ago
All versions
1.3.2-beta
Beta
UltimateDonutSMP BETA 1.3.25 months ago 310
Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
Platforms
Bukkit
Paper
Spigot
Changes
Support:
- Paper: 1.21.x - 26.x
- Spigot: 1.21.x - 26.x
Changelogs:
Added
- Added crash protection for item data used by Auction House, Orders, custom Ender Chest, Crates, and Duels.
- Added
CRASH-PROTECTIONdefaults for serialized item size, display names, lore, books, persistent data keys, container depth, and nested containers. - Added crash protection checks for written book page count, page length, total book characters, lore length, display-name length, persistent-data key count, and nested container contents.
- Added a dedicated unsafe-item rejection path for Auction House and Orders so crash protection failures are not reported as normal material-block failures.
- Added player-facing crash protection messages with context and reason placeholders so admins can see where and why an item was blocked.
- Added setup comments across bundled YAML configuration files so admins can understand each file and top-level section more easily.
- Added optional crate hologram view-distance and update-interval controls for personal key displays.
- Added Duel map selection for queue/create flows with configured arenas, random arena choice, and generated biome arena options.
- Added private Duel creation modes for invite-only and friends-only challenges.
- Added a Duel requests settings toggle so players can reject direct
/dueland/create inviterequests. - Added prepared generated Duel arena handling so flat arenas are pooled/reused and vanilla arena generation is opt-in instead of happening during match-found.
- Added
SELL-MENU.AUTO-SELLsupport to control whether the Sell GUI sells deposited items automatically. - Added configurable Orders item selection modes: curated select menu, inventory item template, and chat search.
- Added an optional Orders select-item catalog that browses orderable materials from the running server jar with category tabs.
- Added owner order editing for active orders with no delivered progress, including item, quantity, and price changes.
- Added location-radius shard regions with
SHARDS.CUBOIDS.REGIONS.<id>.LOCATIONandRADIUS, while existing cuboid shard regions still take priority. - Added automatic AFK shard region setup from
/uds setup setafk, so shard countdowns and rewards can work without manual/cuboid bind ... shard true. - Added a colorful ASCII art startup banner that displays in the server console when the plugin is enabled, showing the plugin title, version, author credit (BeestoXd), Discord link, and a donation appreciation note.
- Added
/godwith/godmodealias for session-only staff god mode, including/god <player>for online targets. - Added RTP failure diagnostics that report both safe-location attempts and chunk sample usage.
- Added RTP config cleanup for existing
rtp.ymlfiles with stale search comments, unsafe legacy values, or old failure message formatting. - Added shard admin balance commands:
/addshards,/removeshards, and/setshards.
Changed
- Existing config sync now merges bundled
# UDS setup:comments into server config files without replacing admin-written comments. CRASH-PROTECTIONis now kept near core settings during config sync instead of being appended after command toggles.- Item safety checks now use raw serialized item byte size instead of estimating size from Base64 output.
- Crash protection blocks unsafe storage actions while keeping the original item on the player, cursor, or inventory slot instead of stripping all metadata.
- Normal custom UDS items, enchantments, persistent data, and non-nested shulker/container contents remain allowed when they stay within configured limits.
- Nested containers such as shulker boxes inside shulker boxes are blocked by default, while regular single-depth shulker contents remain valid.
- Personal crate key holograms are now hidden from all players by default and only shown to their owner.
- Duel queue menu now uses centered paper/stats/selector/claims controls; the selector is hidden for flat/static-only arena modes.
- Duel queue paper lore now reflects the actual active arena mode, including static/custom map queues and flat generated arenas.
- Generated Duel worlds now keep starting player inventory intact while removing only items gained inside generated arenas from post-match carryout/claims.
- Generated Duel arenas now use smaller default borders and closer spawns so opponents are easier to find.
- Vanilla Duel biome mode no longer performs live vanilla world/chunk generation by default during queue match-found.
- Orders created from inventory items now require exact delivered item data, including shulker contents, custom names, lore, enchantments, and persistent data.
- Orders now store the actual delivered item for owner claims instead of recreating the requested template.
- Orders price edits now withdraw only the increased escrow difference or refund the lowered difference.
- Orders per-item price limit now defaults to the total budget cap so prices above
1Mcan be used when the total order budget allows it. - Paper/Spigot global combat logout punishment is now opt-in by default; players who leave during global combat are no longer killed unless
COMBAT-MANAGER.KILL-ON-LOGOUTis enabled. - RTP now treats RTP worlds as pregenerated by default; new terrain is not generated unless
SETTINGS.GENERATE-CHUNKSis explicitly enabled. - RTP search limits are now finite and clamped: attempts below 32 use 32, chunk samples below 64 use 64, and intervals below 8 ticks use 8.
- RTP direct lookups used by portals and RTP zones now follow the same sample budget and tick delay as normal RTP searches.
- RTP zone searches now count against the same active RTP player limit as command/menu RTP searches.
- Packaged RTP defaults now use
PLAYERS-IN-RTP: 1,MAX-ATTEMPTS: 64,MAX-CHUNK-SAMPLES: 128,ATTEMPT-INTERVAL-TICKS: 8, andGENERATE-CHUNKS: false. - RTP search actionbars no longer show attempt/check counters such as
(0/16)or(0 checks). /uds setup apply single-paper confirmnow keeps spawn and AFK menus enabled so setup-created locations open through/spawnand/afk.- Setup-created spawn and AFK menu areas now reuse the earliest available menu slot instead of creating unnecessary later entries.
- Sell GUI auto-processing now waits briefly for click and drag transfers to settle before selling and refreshing multiplier progress.
- When Sell GUI auto-sell is disabled, deposited items remain movable and are returned when the GUI closes instead of being sold.
- Shop price lore handling now recognizes both regular and small-caps price labels.
- God mode keeps visible and audible damage feedback, leaves damage events active for combat/tag systems, and prevents health loss from PvP, mobs, fall damage, fire/lava, suffocation, starvation, and drowning.
- God mode lets underwater air drain normally while preventing drowning health loss, and clears automatically when the player leaves the server.
- Totem purchases now allow quantity adjustment up to 36 instead of forcing one purchase at a time.
- Amount input now accepts comma/underscore separators and compact suffixes through
Q; amount tab suggestions now use compact uppercase values.
Improved
- Crate key hologram updates now reuse cached key balances and skip unchanged text refreshes to reduce repeated database and entity work.
- RTP checks several random block columns inside a loaded generated chunk before marking that chunk unsafe.
- RTP failure logs now include world, radius, attempts, samples, and chunk generation state for easier pregeneration diagnosis.
- Existing valid custom RTP values are preserved during config sync; only unsafe legacy values such as
0,1, and legacy attempt value16are repaired.
Fixed
- Unsafe stored items loaded from the database are skipped and logged instead of being restored into plugin storage flows.
- Unsafe items are blocked before creating or editing Auction House listings and Orders, editing crate rewards, saving custom Ender Chest contents, starting Duels, or storing Duel loot claims.
- Blocked unsafe item actions keep the item in the player's inventory or cursor instead of silently deleting it.
- Fixed unsafe items being able to enter custom Ender Chest storage through click, drag, hotbar swap, offhand swap, or shift-click paths.
- Fixed crate reward saves and reward grants accepting items whose serialized data or nested contents exceed the configured crash protection limits.
- Fixed Duel starts and Duel loot claims accepting unsafe inventory or loot items that could later be saved into plugin storage.
- Fixed personal crate key holograms scaling poorly by no longer hiding each player-owned display from every other online player.
- Fixed Duel claim menus closing from the barrier button instead of returning to the queue menu.
- Fixed flat generated Duel matches showing a biome name in match-found messaging.
- Fixed generated Duel cleanup deleting held or carried items that players already had before entering the arena.
- Fixed Duel queue lag caused by synchronous generated world or chunk creation in match-found paths.
- Fixed Orders search relevance so direct queries like
woolno longer mix in unrelated fuzzy results such as wood, oak logs, or wooden tools. - Fixed Orders search menus crashing after direct-result cleanup on modern Java immutable lists.
- Fixed legacy or corrupt Orders item data repeatedly logging
Material cannot be null; bad rows now repair to a safe material fallback when possible. - Fixed Orders config sync being skipped when bundled
messages.ymlhad invalid indentation underORDERS. - Fixed
/tpaand/tpahereincoming requests so players with TPA confirm menus enabled receive the clickable notification and the confirm GUI reliably opens shortly after while the request is still pending. - Fixed Paper/Spigot combat-tagged players rejoining with zero health and dying after disconnecting during combat.
- Fixed compact money suffixes rendering as lowercase in scoreboards and economy placeholders; compact money now displays uppercase
K,M,B,T, andQwhile amount input remains case-insensitive. - Fixed
/uds setup setspawnand/uds setup setafknot immediately creating usable/spawnand/afkmenu entries. - Fixed setup menu locations being saved under the broken small-caps location key; old broken saves are still read and cleaned up on future setup saves.
- Fixed AFK shard countdowns and rewards not starting after
/uds setup setafk. - Fixed spawn/AFK menu delete and recreate flows jumping to
#2or#3when an earlier slot should be reused. - Fixed
/cuboid bindand/cuboid deleteflows leaving stale spawn, AFK, or shard references that could recreate deleted areas in later slots. - Fixed several config message lookups using small-caps key names instead of the configured uppercase YAML keys.
- Fixed RTP zone world names saved with small-caps text resolving as missing worlds instead of the intended vanilla world names.
- Fixed RTP destinations, portal suggestions, and RTP zone searches failing when the configured world folder exists but the world is currently unloaded.
- Fixed RTP failing with misleading messages such as
after 1 attemptswhen old configs had very low attempt values. - Fixed ungenerated chunks consuming safe-location attempts while chunk generation is disabled.
- Fixed direct RTP and zone RTP searches scanning chunks as fast as futures completed, which could spike TPS and player ping.
- Fixed RTP fallback-to-loaded-chunks behavior so it only happens after the configured sample threshold and within the finite search budget.
- Fixed redundant shop price lore not being removed when the label used a regular text variant.
- Fixed god mode targets not receiving knockback from melee, sprint, Knockback, and Punch projectile hits.
- Fixed shop spawner purchases charging players without delivering the managed spawner item; failed reward delivery now refunds the purchase.
Removed
- Removed legacy unlimited RTP behavior for
MAX-ATTEMPTSandMAX-CHUNK-SAMPLESvalues such as0,16, and128.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:gmQWCJLh:p1FwVlMq"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:gmQWCJLh:p1FwVlMq"
}

