Home›Java›Mods›UltimateDonutSMP-V2
UltimateDonutSMP-V2
ModsJava

UltimateDonutSMP-V2

Java mod listed for Minecraft 26.x. Download on the author's site.

by BeestoXd · on Hangar

⬇ Download on Hangar

UltimateDonutSmp V2

Free Paper, Purpur, Pufferfish, Spigot, and Folia plugin for DonutSMP-style Minecraft servers. Economy, PvP, marketplace, staff tools, menus, and network utilities in one production-focused plugin.

[![Discord](https://img.shields.io/discord/1496469771510878328?style=for-the-badge&logo=discord&label=Discord&color=5865F2)](https://discord.gg/WDn9QvQVEa) [![Support me on PayPal](https://img.shields.io/badge/Support%20me%20on-PayPal-003087?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/suryapratamaa) [![Ko-fi](https://img.shields.io/badge/Support%20me%20on-Ko--fi-FF5E5B?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/beestooxd) [![GitHub](https://img.shields.io/badge/GitHub-Repository-181717?style=for-the-badge&logo=github)](https://github.com/BeestoXd/UltimateDonutSMP-V2)

UltimateDonutSMP V2 Showcase
▶️ Click the image above to watch the UltimateDonutSMP V2 showcase video

## Overview UltimateDonutSmp V2 is a complete Paper Minecraft server plugin built for DonutSMP-style survival networks. It combines player economy, teams, homes, warps, random teleport, shop, sell, worth, crates, shards, PvP systems, staff utilities, network communication, and GUI-driven workflows into one plugin. The goal is to reduce the number of separate plugins required for a modern SMP server while keeping configuration, player data, permissions, placeholders, and staff operations consistent across the entire server experience. ## Highlights | Area | Included systems | | --- | --- | | Platforms | Separate Paper/Purpur/Pufferfish/Spigot and Folia builds with compatibility checks against the latest published APIs | | Economy | Money, shards, player payments, Vault provider, shop, sell workflows, sell multipliers, worth browser, and sell history | | Marketplaces | Auction House, Orders board, category filters, claims, delivery, and search | | Player systems | Teams, friends/follows, homes, warps, private messages, ignore lists, profiles, settings, and custom Ender Chests | | Progression | Stats, playtime, leaderboards, scoreboards, tablists, bounties, and PlaceholderAPI expansions | | Teleportation | Spawn, AFK areas, TPA, RTP, portals, cuboid triggers, teleport areas, and safe-location checks | | PvP | Duels, private invites, map queues, FFA instances, arena rollback, fast crystals, and combat handling | | Custom content | Crates, virtual keys, Donut-style spawners, amethyst tools, enchantment GUI, filters, and configurable menus | | Staff and moderation | Staff mode, freeze, vanish, hide/disguise, invsee, ecsee, punishments, alts, reports, helpop, and anvil moderation | | Detection tools | Spawn-stash bait, fake-player bait, alerts, bypass permissions, and crash protection | | Network | Redis staff chat and alerts, server-status menus, maintenance routing, Discord webhooks, and Lunar/Apollo support | | Operations | Automatic configuration sync and backups, feature toggles, setup tools, optimization controls, stats wipe, and guarded server wipe | | Localization | English, Spanish, Indonesian, Portuguese, German, French, Russian, and Simplified Chinese language packs | ## Screenshots Feature comparisons (UltimateDonutSMP V2 vs Original DonutSMP): | UltimateDonutSMP V2 | Original DonutSMP | | :---: | :---: | | TAB - UltimateDonutSMP V2 | TAB - Original DonutSMP | | Scoreboards - UltimateDonutSMP V2 | Scoreboards - Original DonutSMP | | Dialogues - UltimateDonutSMP V2 | Dialogues - Original DonutSMP | | Auction House - UltimateDonutSMP V2 | Auction House - Original DonutSMP | | Bounty - UltimateDonutSMP V2 | Bounty - Original DonutSMP | | Friends - UltimateDonutSMP V2 | Friends - Original DonutSMP | | Homes - UltimateDonutSMP V2 | Homes - Original DonutSMP | | Leaderboards - UltimateDonutSMP V2 | Leaderboards - Original DonutSMP | | Orders - UltimateDonutSMP V2 | Orders - Original DonutSMP | | Pay - UltimateDonutSMP V2 | Pay - Original DonutSMP | | Quick Buy - UltimateDonutSMP V2 | Quick Buy - Original DonutSMP | | Rank Menu - UltimateDonutSMP V2 | Rank Menu - Original DonutSMP | | RTP Queue - UltimateDonutSMP V2 | RTP Queue - Original DonutSMP | | Sell - UltimateDonutSMP V2 | Sell - Original DonutSMP | | Settings - UltimateDonutSMP V2 | Settings - Original DonutSMP | | Shard Shop - UltimateDonutSMP V2 | Shard Shop - Original DonutSMP | | Spawners - UltimateDonutSMP V2 | Spawners - Original DonutSMP | | Stats - UltimateDonutSMP V2 | Stats - Original DonutSMP | | Teleport - UltimateDonutSMP V2 | Teleport - Original DonutSMP | Feature panels and in-game menus: | | | | | :---: | :---: | :---: | | UltimateDonutSmp V2 feature panel 2 | UltimateDonutSmp V2 feature panel 3 | UltimateDonutSmp V2 feature panel 4 | | UltimateDonutSmp V2 feature panel 5 | UltimateDonutSmp V2 feature panel 6 | UltimateDonutSmp V2 feature panel 7 | | UltimateDonutSmp V2 feature panel 8 | UltimateDonutSmp V2 feature panel 9 | UltimateDonutSmp V2 feature panel 10 | | UltimateDonutSmp V2 feature panel 11 | UltimateDonutSmp V2 feature panel 12 | UltimateDonutSmp V2 feature panel 13 | | UltimateDonutSmp V2 feature panel 14 | UltimateDonutSmp V2 feature panel 15 | UltimateDonutSmp V2 feature panel 16 | | UltimateDonutSmp V2 feature panel 17 | UltimateDonutSmp V2 feature panel 18 | UltimateDonutSmp V2 feature panel 19 | Gameplay clips: | | | | :---: | :---: | | UltimateDonutSmp V2 gameplay clip 1 | UltimateDonutSmp V2 gameplay clip 2 | | UltimateDonutSmp V2 gameplay clip 3 | UltimateDonutSmp V2 gameplay clip 4 | | UltimateDonutSmp V2 gameplay clip 5 | UltimateDonutSmp V2 gameplay clip 6 | ## Requirements | Requirement | Notes | | --- | --- | | Plugin version | `1.0` | | Java | Bytecode targets Java 21. The supported Minecraft versions (26.1.2 and newer) require a Java 25 server runtime. | | Paper / Purpur / Pufferfish / Spigot | Minecraft `26.1.2` through `26.2` | | Folia | Minecraft `26.1.2` through `26.2` | | Hard dependencies | PlaceholderAPI and ProtocolLib (declared under `depend` in `plugin.yml`; the plugin will not load without them) | | Default storage | SQLite, bundled through the shaded JDBC driver | | Alternative storage | MySQL or MongoDB | | Optional network layer | Redis for cross-server staff chat, alerts, maintenance, reports, helpop, and server status | | Build environment | Maven available as `mvn`, internet access, and a JDK 21 or newer toolchain (CI builds on JDK 25) | Required plugins (the server will not enable UltimateDonutSmp V2 without them): - PlaceholderAPI - ProtocolLib Optional integrations: - LuckPerms - Vault - Apollo - SkinsRestorer - Multiverse-Core - floodgate - Simple Voice Chat (`voicechat`) The plugin starts without the optional integrations. Their related permission, economy, client, skin, world, voice chat, and Bedrock features activate only when the corresponding plugin is installed. ## Installation 1. Stop the Minecraft server. 2. Place the plugin jar into the server `plugins/` directory. 3. Start the server once so the default configuration files are generated. 4. Configure storage in `database.yml`. 5. Review the core gameplay files such as `config.yml`, `menus.yml`, `shop.yml`, `worth.yml`, `rtp.yml`, and `languages/.yml`. 6. Restart the server after first setup. For production networks, MySQL plus Redis is recommended. For a single-server setup, SQLite is usually enough. > [!WARNING] > Do not share private customer files, database credentials, Discord tokens, Redis passwords, or other sensitive server data. ## Configuration | File | Purpose | | --- | --- | | `config.yml` | Language selection, feature toggles, locations, portals, chat, AFK, cuboid binds, combat, crystals, shards, tablist, optimization, and general gameplay | | `languages/*.yml` | Player-facing command, gameplay, moderation, economy, teleport, menu, and system text | | `death-messages.yml` | Death-message rules and message templates | | `menus.yml` | Shared GUI layouts for teams, homes, profiles, settings, leaderboards, shops, staff tools, rules, servers, and other menus | | `dialog.yml` | 1.21.6+ dialog screens: the main menu grid, settings categories, pay, stats, leaderboards, homes, friends, teleport, the RTP queue prompt, and the generated ESC-screen datapack | | `scoreboard.yml` | Modern and legacy sidebar layouts, title, lines, refresh behavior, and display rules | | `shop.yml` | Money and shard shop categories, items, prices, permissions, currencies, and command rewards | | `sounds.yml` | Sound effects for menus, commands, teleportation, shops, shards, boosters, and custom systems | | `pvp.yml` | Ranked PvP arena, Elo rating, kits, boundary, broadcasts, and schematic reset | | `rtp.yml` | Random teleport worlds, radius, cooldowns, safety checks, denied worlds, messages, and GUI | | `worth.yml` | Sell values, worth display, container handling, browser categories, and blocked items | | `amethyst-tools.yml` | Amethyst tool types, durations, permissions, effects, items, actions, and messages | | `ender-chest.yml` | Custom Ender Chest size, behavior, ecsee access, layout, and messages | | `invsee.yml` | Inventory inspection behavior, layout, permissions, and messages | | `freeze.yml` | Freeze behavior, permissions, alerts, inventory handling, and messages | | `auction-house.yml` | Listing limits, pricing, claims, restrictions, sorting, categories, and Auction House GUI | | `orders.yml` | Order limits, pricing, delivery, matching, filters, sorting, Bedrock input, network behavior, and GUI | | `enchantments.yml` | Enchantment GUI and item-specific enchantment options | | `filter.yml` | Item category filters used by marketplace and inventory workflows | | `duels.yml` | Duel maps, world borders, queues, countdowns, cross-server options, arena settings, rules, and GUI | | `ffa.yml` | FFA queue, arena rules, rollback, player-state handling, and arena definitions | | `crates.yml` | Crate definitions, keys, rewards, animations, holograms, particles, and settings | | `spawners.yml` | Donut-style spawner types, drops, storage, and GUI | | `spawn-stash.yml` | Temporary bait-stash types, detection rules, alerts, cleanup, and messages | | `network.yml` | Redis network identity, staff chat, reports, helpop, server status, and maintenance routing | | `staff-mode.yml` | Staff-mode permissions, hotbar items, vanish, better view, staff list, fake players, and menus | | `hide.yml` | Identity scrambling, aliases, disguises, skins, cooldowns, bypass rules, GUI, and messages | | `database.yml` | SQLite, MySQL, MongoDB, and Redis connection settings | | `server-wipe.yml` | Guarded wipe targets, protected worlds, confirmation token lifetime, backups, and messages | | `discord.yml` | Discord webhook endpoints and event-specific webhook controls | | `anvil-moderation.yml` | Banned anvil words, punishments, and per-player moderation data | | `offenses.yml` | Preset offense rules, punishment types, and durations used by `/offend` | Language files are stored under `languages/`: - `en_US.yml` - `es_ES.yml` - `id_ID.yml` - `pt_BR.yml` - `de_DE.yml` - `fr_FR.yml` - `ru_RU.yml` - `zh_CN.yml` On startup and reload, missing bundled configuration paths are merged into existing files. Existing files are backed up under `config-backups/` before an automatic update. Live crate definitions, duel/FFA arenas, and deployment-specific network server entries are treated as user-managed data and are not restored after removal. ## Commands Commands can be disabled through their related feature toggle. Arguments in `` are required; arguments in `[square brackets]` are optional. Every command has a dedicated permission node registered in `plugin.yml`. Most follow the `ultimatedonutsmp2.command.` pattern; a few staff commands use a `ultimatedonutsmp2.staff.*` node instead, as listed below. | Command | Aliases | Usage | Permission Node | | --- | --- | --- | --- | | `/addmoney` | - | `/addmoney ` | `ultimatedonutsmp2.command.addmoney` | | `/addshards` | - | `/addshards ` | `ultimatedonutsmp2.command.addshards` | | `/afk` | - | `/afk` | `ultimatedonutsmp2.command.afk` | | `/alts` | - | `/alts ` | `ultimatedonutsmp2.command.alts` | | `/amethysttool` | - | `/amethysttool give [duration]` or `/amethysttool reload` | `ultimatedonutsmp2.command.amethysttool` | | `/amod` | - | `/amod ` | `ultimatedonutsmp2.command.amod` | | `/arena` | `/duelarena` | `/arena ` | `ultimatedonutsmp2.command.arena` | | `/auctionhouse` | `/ah` | `/auctionhouse [sell\|my\|claims\|cancel\|limit\|fastbuy\|fastsell\|reload]` | `ultimatedonutsmp2.command.auctionhouse` | | `/balance` | `/bal`, `/money` | `/balance [player]` | `ultimatedonutsmp2.command.balance` | | `/ban` | - | `/ban [reason]` | `ultimatedonutsmp2.command.ban` | | `/billford` | - | `/billford` | `ultimatedonutsmp2.command.billford` (no Java handler; inactive) | | `/blacklist` | - | `/blacklist [reason]` | `ultimatedonutsmp2.command.blacklist` | | `/bounty` | - | `/bounty [player] [amount]` | `ultimatedonutsmp2.command.bounty` | | `/chat` | - | `/chat ` | `ultimatedonutsmp2.command.chat` | | `/chatlog` | - | `/chatlog [player]` | `ultimatedonutsmp2.command.chatlog` | | `/clearlag` | - | `/clearlag` | `ultimatedonutsmp2.command.clearlag` | | `/crate` | - | `/crate ` | `ultimatedonutsmp2.command.crate` | | `/crates` | - | `/crates` | `ultimatedonutsmp2.command.crates` | | `/create` | - | `/create [map]` | `ultimatedonutsmp2.command.create` | | `/cuboid` | - | `/cuboid \|reload>` | `ultimatedonutsmp2.command.cuboid` | | `/delhome` | - | `/delhome ` | `ultimatedonutsmp2.command.delhome` | | `/delwarp` | - | `/delwarp ` | `ultimatedonutsmp2.command.delwarp` | | `/discord` | - | `/discord` | `ultimatedonutsmp2.command.discord` | | `/disguise` | - | `/disguise [player-name\|url]` or `/disguise ` | `ultimatedonutsmp2.command.disguise` | | `/draw` | - | `/draw` | `ultimatedonutsmp2.command.draw` | | `/duel` | - | `/duel [player\|accept\|deny\|claims\|reload]` | `ultimatedonutsmp2.command.duel` | | `/ecsee` | - | `/ecsee ` | `ultimatedonutsmp2.command.ecsee` | | `/enderchest` | `/ec` | `/enderchest [reload]` | `ultimatedonutsmp2.command.enderchest` | | `/fakeplayer` | `/fplayer` | `/fakeplayer` | `ultimatedonutsmp2.command.fakeplayer` | | `/feed` | - | `/feed [player]` | `ultimatedonutsmp2.command.feed` | | `/ffa` | - | `/ffa [join\|reload\|arena ...]` | `ultimatedonutsmp2.command.ffa` | | `/ffaarena` | - | `/ffaarena ` | `ultimatedonutsmp2.command.ffaarena` | | `/ffastats` | - | `/ffastats [player]` | `ultimatedonutsmp2.command.ffastats` | | `/findplayer` | `/fp` | `/findplayer ` | `ultimatedonutsmp2.command.findplayer` | | `/fly` | - | `/fly [player]` | `ultimatedonutsmp2.command.fly` | | `/flyspeed` | `/fs` | `/flyspeed <1-10> [player]` | `ultimatedonutsmp2.command.flyspeed` | | `/freeze` | - | `/freeze ` or `/freeze reload` | `ultimatedonutsmp2.command.freeze` | | `/friend` | - | `/friend` | `ultimatedonutsmp2.command.friend` | | `/friends` | - | `/friends [list\|follow\|remove\|search\|following\|followers\|friends]` | `ultimatedonutsmp2.command.friends` | | `/gamemode` | `/gm`, `/gmc`, `/gms`, `/gma`, `/gmsp` | `/gamemode [player]` | `ultimatedonutsmp2.command.gamemode` | | `/god` | `/godmode` | `/god [player]` | `ultimatedonutsmp2.staff.god` | | `/heal` | - | `/heal [player]` | `ultimatedonutsmp2.command.heal` | | `/help` | - | `/help` | `ultimatedonutsmp2.command.help` | | `/helpop` | - | `/helpop ` | `ultimatedonutsmp2.command.helpop` | | `/hide` | - | `/hide [status\|scramble\|remove\|check \|list]` | `ultimatedonutsmp2.command.hide` | | `/home` | - | `/home [name]` | `ultimatedonutsmp2.command.home` | | `/homes` | - | `/homes` | `ultimatedonutsmp2.command.homes` | | `/ignore` | - | `/ignore ` | `ultimatedonutsmp2.command.ignore` | | `/invsee` | `/inventorysee` | `/invsee ` or `/invsee reload` | `ultimatedonutsmp2.command.invsee` | | `/keys` | - | `/keys` | `ultimatedonutsmp2.command.keys` | | `/kick` | - | `/kick [reason]` | `ultimatedonutsmp2.command.kick` | | `/kill` | - | `/kill` | `ultimatedonutsmp2.command.kill` | | `/leaderboard` | `/lb`, `/top`, `/leaderboards`, `/baltop` | `/leaderboard [type]` | `ultimatedonutsmp2.command.leaderboard` | | `/leave` | - | `/leave` | `ultimatedonutsmp2.command.leave` | | `/logs` | - | `/logs` | `ultimatedonutsmp2.command.logs` | | `/maintenance` | - | `/maintenance ` | `ultimatedonutsmp2.command.maintenance` | | `/menu` | `/donut`, `/dialog` | `/menu` | `ultimatedonutsmp2.command.menu` | | `/meta` | `/farmingmeta` | `/meta` | `ultimatedonutsmp2.command.meta` | | `/msg` | `/message`, `/tell`, `/whisper`, `/w` | `/msg ` | `ultimatedonutsmp2.command.msg` | | `/mute` | - | `/mute [reason]` | `ultimatedonutsmp2.command.mute` | | `/nightvision` | `/nv` | `/nightvision` | `ultimatedonutsmp2.command.nightvision` | | `/offend` | - | `/offend [time]` | `ultimatedonutsmp2.staff.punishments.offend` | | `/orders` | - | `/orders [my\|collect\|reload\|search query]` | `ultimatedonutsmp2.command.orders` | | `/pay` | - | `/pay ` | `ultimatedonutsmp2.command.pay` | | `/phantom` | - | `/phantom` | `ultimatedonutsmp2.command.phantom` | | `/ping` | - | `/ping [player]` | `ultimatedonutsmp2.command.ping` | | `/playerunwipe` | `/punwipe`, `/unwipe` | `/playerunwipe [confirm]` | `ultimatedonutsmp2.command.playerunwipe` | | `/playerwipe` | `/pwipe`, `/wipe` | `/playerwipe [confirm]` | `ultimatedonutsmp2.command.playerwipe` | | `/playtime` | `/pt` | `/playtime [player]` | `ultimatedonutsmp2.command.playtime` | | `/pm` | `/togglepm`, `/privatemessages` | `/pm` | `ultimatedonutsmp2.command.pm` | | `/portalmanager` | - | `/portalmanager ` | `ultimatedonutsmp2.command.portalmanager` | | `/profileviewer` | `/pv` | `/profileviewer ` | `ultimatedonutsmp2.command.profileviewer` | | `/punishments` | `/phistory` | `/punishments ` | `ultimatedonutsmp2.command.punishments` | | `/pvp` | - | `/pvp [join\|leave\|kit\|stats\|top\|queue\|leaderboard\|history\|assign\|wand\|create\|setspawn\|setspawn2\|setlobby\|setboundary\|schematic\|reset\|reload]` | `ultimatedonutsmp2.command.pvp` | | `/queue` | - | `/queue [join\|leave] [map]` | `ultimatedonutsmp2.command.queue` | | `/randomteleport` | `/randomtp` | `/randomteleport` | `ultimatedonutsmp2.command.randomteleport` | | `/ranks` | `/rank` | `/ranks` | `ultimatedonutsmp2.command.ranks` | | `/removemoney` | - | `/removemoney ` | `ultimatedonutsmp2.command.removemoney` | | `/removeshards` | - | `/removeshards ` | `ultimatedonutsmp2.command.removeshards` | | `/rename` | - | `/rename ` | `ultimatedonutsmp2.command.rename` | | `/renamehome` | - | `/renamehome ` | `ultimatedonutsmp2.command.renamehome` | | `/reply` | `/r` | `/reply ` | `ultimatedonutsmp2.command.reply` | | `/report` | - | `/report ` | `ultimatedonutsmp2.command.report` | | `/rtp` | - | `/rtp [world]` | `ultimatedonutsmp2.command.rtp` | | `/rtpq` | `/rtpqueue` | `/rtpq [join\|leave]` | `ultimatedonutsmp2.command.rtpq` | | `/rules` | - | `/rules` | `ultimatedonutsmp2.command.rules` | | `/safety` | - | `/safety [reload\|add [player]]` | `ultimatedonutsmp2.command.safety` | | `/seehomes` | `/homesee` | `/seehomes ` | `ultimatedonutsmp2.command.seehomes` | | `/sell` | - | `/sell` | `ultimatedonutsmp2.command.sell` | | `/sellall` | - | `/sellall` | `ultimatedonutsmp2.command.sellall` | | `/sellhand` | - | `/sellhand [amount]` | `ultimatedonutsmp2.command.sellhand` | | `/sellhistory` | - | `/sellhistory` | `ultimatedonutsmp2.command.sellhistory` | | `/sellmulti` | - | `/sellmulti [category]` | `ultimatedonutsmp2.command.sellmulti` | | `/sellmultiplier` | - | `/sellmultiplier [category]` | `ultimatedonutsmp2.command.sellmulti` | | `/sellprogress` | - | `/sellprogress [category]` | `ultimatedonutsmp2.command.sellprogress` | | `/servers` | - | `/servers` | `ultimatedonutsmp2.command.servers` | | `/serverwipe` | - | `/serverwipe ` | `ultimatedonutsmp2.command.serverwipe` | | `/setafk` | - | `/setafk` | `ultimatedonutsmp2.command.setafk` | | `/sethome` | - | `/sethome [name]` | `ultimatedonutsmp2.command.sethome` | | `/setmoney` | - | `/setmoney ` | `ultimatedonutsmp2.command.setmoney` | | `/setshards` | - | `/setshards ` | `ultimatedonutsmp2.command.setshards` | | `/setspawn` | - | `/setspawn` | `ultimatedonutsmp2.command.setspawn` | | `/settings` | - | `/settings` | `ultimatedonutsmp2.command.settings` | | `/setwarp` | - | `/setwarp ` | `ultimatedonutsmp2.command.setwarp` | | `/shardpay` | - | `/shardpay ` | `ultimatedonutsmp2.command.shardpay` | | `/shards` | - | `/shards [player]` or `/shards everywhere [player]` | `ultimatedonutsmp2.command.shards` | | `/shardshop` | - | `/shardshop` | `ultimatedonutsmp2.command.shardshop` | | `/shop` | - | `/shop [reload]` | `ultimatedonutsmp2.command.shop` | | `/social` | `/media` | `/social` | `ultimatedonutsmp2.command.social` | | `/spawn` | - | `/spawn` | `ultimatedonutsmp2.command.spawn` | | `/spawner` | `/spawners` | `/spawner [give\|info\|panel\|reload\|remove\|split]` | `ultimatedonutsmp2.command.spawner` | | `/spawnstash` | `/stash` | `/spawnstash [type\|spawn\|list\|remove\|reload]` | `ultimatedonutsmp2.command.spawnstash` | | `/staffchat` | `/sc` | `/staffchat ` | `ultimatedonutsmp2.command.staffchat` | | `/stafflist` | - | `/stafflist` | `ultimatedonutsmp2.command.stafflist` | | `/staffmode` | `/staff` | `/staffmode [player\|reload]` | `ultimatedonutsmp2.command.staffmode` | | `/stats` | - | `/stats [player]` | `ultimatedonutsmp2.command.stats` | | `/store` | - | `/store` | `ultimatedonutsmp2.command.store` | | `/team` | - | `/team ` | `ultimatedonutsmp2.command.team` | | `/teleport` | `/tp`, `/tphere`, `/tpall` | `/teleport \|all\|top\|x y z [world]>` | `ultimatedonutsmp2.command.teleport` | | `/tempban` | - | `/tempban [reason]` | `ultimatedonutsmp2.command.tempban` | | `/tempmute` | - | `/tempmute [reason]` | `ultimatedonutsmp2.command.tempmute` | | `/topsell` | `/sellstats` | `/topsell [gui\|items\|volume\|sellers\|export]` | `ultimatedonutsmp2.command.topsell` | | `/tpa` | - | `/tpa ` | `ultimatedonutsmp2.command.tpa` | | `/tpacancel` | - | `/tpacancel` | `ultimatedonutsmp2.command.tpacancel` | | `/tpaccept` | - | `/tpaccept [player]` | `ultimatedonutsmp2.command.tpaccept` | | `/tpadeny` | - | `/tpadeny [player]` | `ultimatedonutsmp2.command.tpadeny` | | `/tpahere` | - | `/tpahere ` | `ultimatedonutsmp2.command.tpahere` | | `/tpahereauto` | - | `/tpahereauto` | `ultimatedonutsmp2.command.tpahereauto` | | `/tpauto` | - | `/tpauto` | `ultimatedonutsmp2.command.tpauto` | | `/twitter` | - | `/twitter` | `ultimatedonutsmp2.command.twitter` | | `/ultimatedonutsmp2` | `/uds`, `/udsmp` | `/ultimatedonutsmp2 ` | `ultimatedonutsmp2.command.ultimatedonutsmp2` | | `/unban` | `/pardon` | `/unban [reason]` | `ultimatedonutsmp2.command.unban` | | `/unblacklist` | - | `/unblacklist [reason]` | `ultimatedonutsmp2.command.unblacklist` | | `/unignore` | - | `/unignore ` | `ultimatedonutsmp2.command.unignore` | | `/unmute` | - | `/unmute [reason]` | `ultimatedonutsmp2.command.unmute` | | `/vanish` | - | `/vanish` | `ultimatedonutsmp2.command.vanish` | | `/vcmute` | - | `/vcmute [reason]` | `ultimatedonutsmp2.staff.vcmute` | | `/vcunmute` | - | `/vcunmute [reason]` | `ultimatedonutsmp2.staff.vcunmute` | | `/voicechatconsent` | `/vcconsent`, `/voiceconsent` | `/voicechatconsent [revoke]` | `ultimatedonutsmp2.command.voicechatconsent` | | `/warn` | - | `/warn [reason]` | `ultimatedonutsmp2.command.warn` | | `/warp` | - | `/warp [name]` | `ultimatedonutsmp2.command.warp` | | `/warpmanager` | - | `/warpmanager [name]` | `ultimatedonutsmp2.command.warpmanager` | | `/worth` | `/prices` | `/worth [hand\|reload]` | `ultimatedonutsmp2.command.worth` | Temporary punishment durations accept combined values such as `30s`, `15m`, `2h`, `5d`, or `5d 15m 30s`. Running `/baltop` with no arguments opens the money leaderboard directly instead of the leaderboard type menu. ## Permissions `true` means the permission is granted by default to all players, `op` means it defaults to server operators, and `false` means it must be granted explicitly. `ultimatedonutsmp2.admin` is the main admin parent node, and `ultimatedonutsmp2.command.*` grants access to all plugin commands. ### Main Parent Nodes | Permission Node | Default | Description | | --- | --- | --- | | `ultimatedonutsmp2.admin` | `op` | Main admin parent node giving access to administrative commands, reload, wipe, and management systems | | `ultimatedonutsmp2.command.*` | `op` | Grants access to execute all UltimateDonutSmp V2 commands | | `ultimatedonutsmp2.staff.mode` | `op` | Staff moderation mode parent node (vanish, betterview, randomtp, staff list, tools) | | `ultimatedonutsmp2.staff.alerts.receive` | `op` | Parent node for receiving staff alerts (`helpop` and `report`) | | `ultimatedonutsmp2.staff.punishments.create` | `op` | Parent node for issuing punishments (`warn`, `kick`, `ban`, `mute`, `blacklist`) | | `ultimatedonutsmp2.staff.punishments.remove` | `op` | Parent node for removing active punishments (`unban`, `unmute`, `unblacklist`) | ### System & Staff Permissions | Permission | Default | Description | | --- | --- | --- | | `anvilmod.admin` | `op` | Admin access for anvil word moderation | | `safety.add` | `op` | Add players to safety check bypass list | | `safety.reload` | `op` | Reload safety configuration | | `safety.use` | `true` | Standard safety system permission | | `ultimatedonutsmp2.admin.addmoney` | `op` | Add money to player balances | | `ultimatedonutsmp2.admin.amethysttool` | `op` | Give and reload amethyst tools | | `ultimatedonutsmp2.admin.auctionhouse` | `op` | Reload and manage Auction House settings | | `ultimatedonutsmp2.admin.chatlog` | `op` | Browse logged public chat messages | | `ultimatedonutsmp2.admin.clearlag` | `op` | Trigger lag clear manually | | `ultimatedonutsmp2.admin.crate` | `op` | Manage crate balances, chest bindings, and settings | | `ultimatedonutsmp2.admin.crate.keyall` | `op` | Trigger key-all rewards manually | | `ultimatedonutsmp2.admin.crate.reload` | `op` | Reload crate configuration | | `ultimatedonutsmp2.admin.cuboid` | `op` | Create, bind, and manage cuboid regions | | `ultimatedonutsmp2.admin.delwarp` | `op` | Delete public warp points | | `ultimatedonutsmp2.admin.duels` | `op` | Manage duel settings and arenas | | `ultimatedonutsmp2.admin.ecsee` | `op` | View other players' Ender Chest contents | | `ultimatedonutsmp2.admin.enderchest` | `op` | Reload Ender Chest settings | | `ultimatedonutsmp2.admin.features` | `op` | Access and toggle runtime feature switches | | `ultimatedonutsmp2.admin.ffa` | `op` | Manage FFA arenas and settings | | `ultimatedonutsmp2.admin.freeze` | `op` | Reload freeze settings | | `ultimatedonutsmp2.admin.invsee` | `op` | Reload Invsee settings | | `ultimatedonutsmp2.admin.logs` | `op` | View command log history | | `ultimatedonutsmp2.admin.maintenance` | `op` | Manage maintenance mode | | `ultimatedonutsmp2.admin.maintenance.bypass` | `op` | Join server while maintenance mode is enabled | | `ultimatedonutsmp2.admin.optimize` | `op` | Access runtime optimization controls | | `ultimatedonutsmp2.admin.orders` | `op` | Manage and reload Orders board settings | | `ultimatedonutsmp2.admin.playerunwipe` | `op` | Preview and restore a wiped player's stored data | | `ultimatedonutsmp2.admin.playerwipe` | `op` | Preview and wipe a single player's stored data | | `ultimatedonutsmp2.admin.portalmanager` | `op` | Create, display, and manage RTP portals | | `ultimatedonutsmp2.admin.punishments.exempt` | `op` | Cannot be punished by staff who lack the exempt bypass | | `ultimatedonutsmp2.admin.punishments.exempt.bypass` | `op` | Punish players who are exempt from being punished | | `ultimatedonutsmp2.admin.pvp` | `op` | Manage the ranked PvP arena and its kits | | `ultimatedonutsmp2.admin.reload` | `op` | Reload all UltimateDonutSmp V2 configurations | | `ultimatedonutsmp2.admin.removemoney` | `op` | Remove money from player balances | | `ultimatedonutsmp2.admin.sellstats` | `op` | View top sell statistics and economy metrics | | `ultimatedonutsmp2.admin.serverwipe` | `op` | Execute guarded server wipe operations | | `ultimatedonutsmp2.admin.setmoney` | `op` | Set player money balances | | `ultimatedonutsmp2.admin.setup` | `op` | Use interactive setup status and tools | | `ultimatedonutsmp2.admin.setwarp` | `op` | Set public warp points | | `ultimatedonutsmp2.admin.shards` | `op` | Inspect Shards Everywhere status | | `ultimatedonutsmp2.admin.shop` | `op` | Reload shop settings | | `ultimatedonutsmp2.admin.spawner` | `op` | Give and manage Donut-style spawners | | `ultimatedonutsmp2.admin.spawnstash` | `op` | Manage bait spawn stashes | | `ultimatedonutsmp2.admin.staffmode` | `op` | Reload Staff Mode settings | | `ultimatedonutsmp2.admin.statswipe` | `op` | Execute player stats wipe | | `ultimatedonutsmp2.admin.teleportareas.delete` | `op` | Delete configured teleport areas | | `ultimatedonutsmp2.admin.warpmanager` | `op` | Manage public warps | | `ultimatedonutsmp2.admin.worth` | `op` | Reload sell/worth settings | | `ultimatedonutsmp2.command.flyspeed` | `op` | Use `/flyspeed` | | `ultimatedonutsmp2.command.offend` | `op` | Use `/offend` (parent of `ultimatedonutsmp2.staff.punishments.offend`) | ### Staff Moderation & Alert Permissions | Permission | Default | Description | | --- | --- | --- | | `ultimatedonutsmp2.staff.alerts.bypass-cooldown` | `op` | Bypass report and helpop cooldowns | | `ultimatedonutsmp2.staff.alerts.receive` | `op` | Receive helpop and report staff alerts | | `ultimatedonutsmp2.staff.alts` | `op` | Check IP history and alt accounts | | `ultimatedonutsmp2.staff.chat.bypass.delay` | `op` | Bypass global chat delay | | `ultimatedonutsmp2.staff.chat.bypass.filter` | `op` | Bypass global chat filter | | `ultimatedonutsmp2.staff.chat.bypass.mute` | `op` | Bypass global chat mute | | `ultimatedonutsmp2.staff.chat.clear` | `op` | Clear chat screen visually | | `ultimatedonutsmp2.staff.chat.delay` | `op` | Set global chat delay | | `ultimatedonutsmp2.staff.chat.mute` | `op` | Mute global chat | | `ultimatedonutsmp2.staff.chat.unmute` | `op` | Unmute global chat | | `ultimatedonutsmp2.staff.chat.use` | `op` | Send and receive staff chat | | `ultimatedonutsmp2.staff.fakeplayer` | `op` | Spawn fake player bait entities | | `ultimatedonutsmp2.staff.fakeplayer.alert` | `op` | Receive fake player bait attack alerts | | `ultimatedonutsmp2.staff.fakeplayer.bypass` | `op` | Bypass fake player bait triggers | | `ultimatedonutsmp2.staff.feed` | `op` | Feed players | | `ultimatedonutsmp2.staff.fly` | `op` | Toggle flight mode | | `ultimatedonutsmp2.staff.flyspeed` | `op` | Adjust flying speed for yourself or another player | | `ultimatedonutsmp2.staff.freeze` | `op` | Freeze/unfreeze players for inspection | | `ultimatedonutsmp2.staff.freeze.alert` | `op` | Receive player freeze alerts | | `ultimatedonutsmp2.staff.freeze.exempt` | `op` | Exempt from being frozen by staff | | `ultimatedonutsmp2.staff.gamemode` | `op` | Change own gamemode | | `ultimatedonutsmp2.staff.gamemode.others` | `op` | Change other players' gamemodes | | `ultimatedonutsmp2.staff.god` | `op` | Toggle god mode | | `ultimatedonutsmp2.staff.heal` | `op` | Heal players | | `ultimatedonutsmp2.staff.helpop.receive` | `op` | Receive helpop request alerts | | `ultimatedonutsmp2.staff.invsee` | `op` | Inspect player inventories | | `ultimatedonutsmp2.staff.invsee.modify` | `op` | Modify player inventories in invsee | | `ultimatedonutsmp2.staff.mode.betterview` | `op` | Toggle better view in staff mode | | `ultimatedonutsmp2.staff.mode.others` | `op` | Toggle staff mode for other players | | `ultimatedonutsmp2.staff.mode.randomtp` | `op` | Random teleport in staff mode | | `ultimatedonutsmp2.staff.mode.seevanished` | `op` | See vanished staff members | | `ultimatedonutsmp2.staff.mode.stafflist` | `op` | Open online staff list | | `ultimatedonutsmp2.staff.mode.vanish` | `op` | Toggle vanish in staff mode | | `ultimatedonutsmp2.staff.profileviewer` | `op` | View player profiles and homes | | `ultimatedonutsmp2.staff.seehomes` | `op` | Browse any player's homes and teleport to them | | `ultimatedonutsmp2.staff.punishments.ban` | `false` | Apply ban and tempban punishments | | `ultimatedonutsmp2.staff.punishments.blacklist` | `false` | Apply blacklist punishments | | `ultimatedonutsmp2.staff.punishments.delete` | `op` | Delete punishment logs from GUI | | `ultimatedonutsmp2.staff.punishments.mute` | `false` | Apply mute and tempmute punishments | | `ultimatedonutsmp2.staff.punishments.offend` | `op` | Apply preset offense punishments from `offenses.yml` | | `ultimatedonutsmp2.staff.punishments.unban` | `false` | Remove active bans | | `ultimatedonutsmp2.staff.punishments.unblacklist` | `false` | Remove active blacklists | | `ultimatedonutsmp2.staff.punishments.unmute` | `false` | Remove active mutes | | `ultimatedonutsmp2.staff.punishments.view` | `op` | View punishment history | | `ultimatedonutsmp2.staff.rename` | `op` | Rename items | | `ultimatedonutsmp2.staff.report.receive` | `op` | Receive player report alerts | | `ultimatedonutsmp2.staff.spawnstash` | `op` | Place and inspect spawn stash bait | | `ultimatedonutsmp2.staff.spawnstash.alert` | `op` | Receive spawn stash trigger alerts | | `ultimatedonutsmp2.staff.spawnstash.bypass` | `op` | Bypass spawn stash detection | | `ultimatedonutsmp2.staff.teleport` | `op` | Access staff teleport tools | | `ultimatedonutsmp2.staff.vcmute` | `false` | Apply voice chat mute punishments | | `ultimatedonutsmp2.staff.vcunmute` | `false` | Remove voice chat mute punishments | ### Player & Feature Permissions | Permission | Default | Description | | --- | --- | --- | | `donutauction.use` / `ultimatedonutsmp2.auctionhouse.use` | `true` / `false` | Open Auction House GUI | | `donutauction.buy` / `ultimatedonutsmp2.auctionhouse.buy` | `true` / `false` | Buy items on Auction House | | `donutauction.sell` / `ultimatedonutsmp2.auctionhouse.sell` | `true` / `false` | Sell items on Auction House | | `donutauction.my` / `ultimatedonutsmp2.auctionhouse.my` | `true` / `false` | View own listings on Auction House | | `donutauction.claims` / `ultimatedonutsmp2.auctionhouse.claims` | `true` / `false` | Collect claims from Auction House | | `donutauction.cancel` / `ultimatedonutsmp2.auctionhouse.cancel` | `true` / `false` | Cancel own listings on Auction House | | `donutauction.limit` / `ultimatedonutsmp2.auctionhouse.limit` | `true` / `false` | Check listing limits on Auction House | | `donutauction.fastbuy` / `ultimatedonutsmp2.auctionhouse.fastbuy` | `false` / `op` | Fast buy command access | | `donutauction.fastsell` / `ultimatedonutsmp2.auctionhouse.fastsell` | `false` / `op` | Fast sell command access | | `ultimatedonutsmp2.command.friend` | `true` | Use `/friend` | | `ultimatedonutsmp2.command.sellmulti` | `true` | Open the sell multiplier menu (`/sellmulti`, `/sellmultiplier`) | | `ultimatedonutsmp2.command.sellprogress` | `true` | Open the sell multiplier progress menu (`/sellprogress`) | | `ultimatedonutsmp2.enderchest` | `true` | Open custom Ender Chest | | `ultimatedonutsmp2.friends` | `true` | Friends and follow system | | `ultimatedonutsmp2.helpop` | `true` | Use `/helpop` to request staff help | | `ultimatedonutsmp2.hide.admin` | `op` | Manage and inspect player disguises | | `ultimatedonutsmp2.hide.bypass` | `op` | Bypass disguise restrictions | | `ultimatedonutsmp2.hide.disguise` | `op` | Change skin and disguise alias | | `ultimatedonutsmp2.hide.scramble` | `op` | Scramble public username | | `ultimatedonutsmp2.ignore` | `true` | Ignore and unignore players | | `ultimatedonutsmp2.ignore.bypass` | `op` | Bypass private message ignore filter | | `ultimatedonutsmp2.message` | `true` | Send and reply to private messages | | `ultimatedonutsmp2.message.bypass-disabled` | `op` | Bypass recipient disabled PMs | | `ultimatedonutsmp2.message.toggle` | `true` | Toggle private messages on/off | | `ultimatedonutsmp2.report` | `true` | Report players to online staff | | `ultimatedonutsmp2.servers` | `false` | View network server status GUI | | `ultimatedonutsmp2.shards.everywhere` | `false` | Receive passive Shards Everywhere rewards | | `ultimatedonutsmp2.shardshop` | `true` | Open Shard Shop GUI | | `ultimatedonutsmp2.spawner.bypass` | `false` | Break spawners without a Silk Touch pickaxe while `REQUIRE_SILK_TOUCH` is enabled | | `media` | `false` | Display configurable Media tablist badge (requires explicit LuckPerms assignment, not auto-granted to OP) | | `rank.media` | `false` | Display configurable Media tablist badge legacy alias | | `rank.media.plus` | `false` | Display configurable Media+ tablist badge (requires explicit LuckPerms assignment, not auto-granted to OP) | | `rank.media.include` | `false` | Include player in media badge handling (requires explicit LuckPerms assignment, not auto-granted to OP) | ## Placeholders UltimateDonutSmp V2 includes built-in [PlaceholderAPI](https://placeholderapi.com/) expansion modules for player economy, statistics, locations, countdowns, leaderboards, player ranks, and disguise states. Placeholder expansion identifiers supported: `%economy_*%`, `%uds_*%`, `%ultimatedonutsmp2_*%`, `%economylb_*%`, `%economyrank_*%`, and `%hide_*%`. ### Economy & Player Placeholders (`%economy_*%` / `%uds_*%` / `%ultimatedonutsmp2_*%`) | Placeholder | Description | Example Output | | --- | --- | --- | | `%economy_money%` | Raw money balance | `12500.50` | | `%economy_money_formatted%` | Formatted money with currency symbol | `$12,500.50` | | `%economy_money_short%` / `%economy_nicestMoney%` | Compact formatted money amount | `12.5k` | | `%economy_money_short_formatted%` | Formatted compact money with symbol | `$12.5k` | | `%economy_shards%` | Raw shards balance | `500` | | `%economy_shards_formatted%` | Formatted shards balance | `500 Shards` | | `%economy_shards_short%` / `%economy_nicestShards%` | Compact formatted shards amount | `1.2k` | | `%economy_shards_short_formatted%` | Formatted compact shards with symbol | `1.2k Shards` | | `%economy_kills%` | Total player kill count | `42` | | `%economy_deaths%` | Total player death count | `10` | | `%economy_killstreak%` | Current active killstreak | `5` | | `%economy_highestkillstreak%` | Highest recorded killstreak | `12` | | `%economy_playtime%` | Total formatted playtime duration | `3d 14h 22m` | | `%economy_blocksplaced%` | Total blocks placed count | `15400` | | `%economy_blocksbroken%` | Total blocks broken count | `48200` | | `%economy_mobskilled%` | Total mob kills count | `1280` | | `%economy_moneyspent%` | Total money spent in shop/marketplaces | `50000.00` | | `%economy_moneymade%` | Total money earned from selling/markets | `120000.00` | | `%economy_team%` | Player's team name | `TITANS` or `none` | | `%economy_username%` | Public display username (respects `/hide` disguise) | `Steve` | | `%economy_ping%` | Player ping latency in ms | `24` | | `%economy_x%` / `%economy_coord_x%` | Player X coordinate (respects coordinate obfuscation) | `120` | | `%economy_y%` / `%economy_coord_y%` | Player Y coordinate (respects coordinate obfuscation) | `64` | | `%economy_z%` / `%economy_coord_z%` | Player Z coordinate (respects coordinate obfuscation) | `-350` | | `%economy_coords%` / `%economy_location%` | Formatted X, Y, Z coordinates string | `120, 64, -350` | | `%economy_randomized_coords%` | Returns `true`/`false` if coordinate obfuscation is active | `false` | | `%economy_donutplus%` | Displays Donut+ badge if player has permission | `&d&lDonut+ &r` | | `%economy_keyall_countdown%` | Formatted countdown until automatic key-all reward | `05:32` | | `%economy_booster_countdown%` | Formatted countdown for active shard booster | `14:20` or `inactive` | | `%economy_rtp_countdown%` | Formatted countdown for RTP zone cooldown | `00:45` or `disabled` | | `%economy_billford_countdown%` | Formatted countdown for Billford rotation | `02:15:00` or `disabled` | | `%economy_shard_cuboid_display%` | Shard cuboid display status indicator | `[Inside Zone]` | | `%economy_shard_cuboid_status%` | Shard cuboid status | `inside` or `outside` | | `%economy_shard_cuboid_name%` | Name of active shard cuboid region | `MainShardArea` or `none` | | `%economy_money_symbol%` | Currency symbol for money | `$` | | `%economy_money_symbol_colored%` | Colored currency symbol for money | `&$` | | `%economy_shards_symbol%` | Currency symbol for shards | `⬟` | | `%economy_shards_symbol_colored%` | Colored currency symbol for shards | `&d⬟` | ### Leaderboard Placeholders (`%economylb_*%` / `%economy_top_*%`) Syntax: `%economylb___%` or `%economy_top___%` - **Leaderboard Types (``)**: `money`, `shards`, `kills`, `deaths`, `killstreak`, `highestkillstreak`, `playtime`, `blocksplaced`, `blocksbroken`, `mobskilled`, `moneyspent`, `moneymade` - **Positions (``)**: Rank index starting from `1` (e.g. `1`, `2`, `3`, `10`) - **Properties (``)**: - `name`: Username of the player at position - `value`: Full un-truncated value of the player at position - `value_short` / `short`: Compact formatted value (e.g. `15.4M`) - `rank`: Rank number index - `display`: Pre-formatted entry line e.g. `#1 Notch: $15.4M` Examples: ``` %economylb_money_1_name% -> Notch %economylb_money_1_value% -> $15,400,000.00 %economylb_money_1_value_short% -> 15.4M %economylb_kills_3_display% -> #3 Alex: 450 %economy_top_shards_1_name% -> EnderKing ``` ### Rank Leaderboard Placeholders (`%economyrank_*%`) Syntax: `%economyrank_%` Returns the player's personal rank position number on the specified leaderboard type (e.g. `1`, `15`, or `0` if unranked). Examples: - `%economyrank_money%` -> `5` - `%economyrank_kills%` -> `1` ### Hide & Disguise Placeholders (`%hide_*%`) Syntax: `%hide_%` | Placeholder | Description | Example Output | | --- | --- | --- | | `%hide_active%` | Returns `true` or `false` if player has an active disguise or alias | `true` | | `%hide_name%` / `%hide_public_name%` | Player's formatted public display name | `ShadowNinja` | | `%hide_plain_name%` | Player's plain unformatted public display name | `ShadowNinja` | | `%hide_mode%` | Active disguise mode (`NONE`, `SCRAMBLE`, `ALIAS`, `DISGUISE`) | `ALIAS` | | `%hide_alias%` | Active custom alias string | `ShadowNinja` | | `%hide_skin%` | Active custom skin username | `CustomSkin123` | ## Support | Channel | Use it for | | --- | --- | | [GitHub Issues](https://github.com/BeestoXd/UltimateDonutSMP-V2/issues) | Bug reports, feature requests, and documentation problems | | [Discord](https://dsc.gg/hellstarr) | Setup help, configuration questions, and general discussion | | [Wiki](https://github.com/BeestoXd/UltimateDonutSMP-V2/wiki) | Guides, configuration reference, and the FAQ | When reporting an issue, include: - Plugin version and jar file name - Server software and version (Paper, Purpur, Pufferfish, Spigot, or Folia) - Java version - Relevant configuration snippets with secrets removed - Console errors or stack traces - Steps to reproduce the issue Do not share database credentials, Redis passwords, Discord webhook URLs, or other sensitive server data in public channels.
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

UltimateDonutSMP-V2 is a free Minecraft Java mod. Compatible with Minecraft 26.1, 26.1.1, 26.1.2, 26.2. Downloaded 280 times (via Hangar). Download it and open it directly in the game.

Explore more