DonutSMP Core puts a whole DonutSMP-style server into one jar: auction house, orders, shop, sell, crates, spawners, homes, teams, RTP, TPA, shards, scoreboard and more. Each part is a module you switch on or off in config.yml, and all of them save to one storage backend, so a network can share everything through MySQL or Redis.
Several modules are the same systems sold as separate BlazeZ plugins. Their sections below link to those plugins' pages for the full details.
Permissions#
Commands a player uses without a permission are marked None in Commands. Everything below is OP-only by default, so grant the player nodes you want your members to have.
| Module | Permission | Lets a player |
|---|---|---|
| Core | donutcore.admin | Use /donutcore reload and /statsreset. |
| Auction | donutcore.auction.use | Use the auction house. |
| Auction | donutcore.auction.fastbuy | Use /ah fastbuy. |
| Auction | donutcore.auction.admin | Inspect, force-sell, lock and reload. |
| Billford | billford.admin | Open /billford admin. |
| Bounty | donutbounty.use | Use /bounty. |
| Bounty | donutbounty.admin | Use /bountyadmin. |
| ClearLag | donutclearlag.admin | Use /clearlag. |
| Crates | donutcrates.admin | Use /crates. |
| Ender Chest | donutenderchest.use | Open their ender chest. |
| Ender Chest | donutenderchest.others | Open another player's ender chest. |
| Hider | gangstahide.use, gangstahide.use.other, gangstahide.command.bypass, hider.admin | See Hider. |
| Homes | home.teleport.<number>, litehome.visit, litehomes.admin | See LiteHome. |
| Leaderboards | donutleaderboards.admin | Move holograms. |
| LiteCrystal | donutcrystal.use, donutcrystal.use.other, donutcrystal.admin, powerguard.admin | See FasterCrystal. |
| Order | order.leftovers, orders.history, order.admin, orders.admin, order.limit.<number> | See Order. |
| RTP | donutrtp.rtpforce, donutrtp.1v1.use, donutrtp.1v1.accept, donutrtp.1v1.toggle, donutrtp.cooldown.bypass, donutrtp.wait.bypass, donutrtp.rtpqueue.cooldown.bypass | See FastRTP. |
| Scoreboard | donutscoreboard.admin | Use /scoreboard reload. |
| Sell | donutsell.admin.reload, donutsell.admin, sellplugin.admin | Reload, the global worth toggle, and sell events. |
| Shards | shard.use | Use /shard. |
| Shards | shard.admin | Manage balances and set the AFK warp. |
| Shards | shard.gennodes.<name>, shard.killnodes.<name> | Earn extra shards, see Shards. |
| Shop | donutshop.sell | Use /sell and /sellgui from the shop module. |
| Shop | donutshop.admin, shop.admin, shop.reload | /shopitem, the shop editor, and reload. |
| Spawn | donutspawn.admin | Set and remove spawns. |
| Spawn | donutspawn.warmup.bypass, donutspawn.cooldown.bypass | Skip the warm-up or cooldown. |
| Spawners | donutspawners.admin | Give spawners and manage corruption. |
| Tools | mythictools.admin | Use /mythictool. |
| TPA | donuttpa.tpa, donuttpa.tpahere, donuttpa.accept, donuttpa.deny, donuttpa.cancel, donuttpa.tpatoggle, donuttpa.gui, donuttpa.auto, donuttpa.setting, donuttpa.tpaall, donuttpa.tphereall, donuttpa.admin, donuttpa.cooldown.bypass, tpa.admin | See CrossTPA. |
| Warp | donutwarp.admin | Set and delete warps. |
| Warp | donutwarp.warmup.bypass, donutwarp.cooldown.bypass | Skip the warm-up or cooldown. |
Warning
Several everyday player commands need a permission that is OP-only until you grant it: donutcore.auction.use, donutbounty.use, donutenderchest.use, shard.use, the TPA nodes and the duel nodes. Give them to your default group, for example /lp group default permission set donutcore.auction.use true.
Commands#
| Module | Command | What it does | Permission |
|---|---|---|---|
| Core | /donutcore reload | Reloads the plugin and every module. | donutcore.admin |
| Core | /statsreset | Opens the full data wipe menu. The wipe is finished from the console with /statsreset confirm <token>. | donutcore.admin |
| Auction | /ah [search] [stack|shulker] | Opens the auction house, optionally searched and limited to full stacks or shulker boxes. Alias /auction. | donutcore.auction.use |
| Auction | /ah sell <price> | Lists the item in your hand. | donutcore.auction.use |
| Auction | /ah fastbuy [on|off] | Turns fast buying on or off for you, which skips the confirm step. | donutcore.auction.fastbuy |
| Auction | /ah inspect <player>, /ah force-sell <player> <price>, /ah lock, /ah reload | Admin tools. | donutcore.auction.admin |
| Billford | /billford | Opens the current trade. | None |
| Billford | /billford admin | Lists every configured trade. | billford.admin |
| Bounty | /bounty [player] | Opens the bounty menu, or shows a player's bounty. Alias /bounties. | donutbounty.use |
| Bounty | /bounty add <player> <amount> | Puts money on a player's head. | donutbounty.use |
| Bounty | /bountyadmin <add|remove|reset|history|reload> | Manages bounties. Alias /zelbounty. | donutbounty.admin |
| ClearLag | /clearlag [clear|reload] | Shows the next sweep, runs one now, or reloads. Aliases /lagg, /clearlagg. | donutclearlag.admin |
| Crates | /crates ... | Crate admin, see EasyCrates. Aliases /crate, /donutcrates. | donutcrates.admin |
| Ender Chest | /enderchest [player] | Opens your ender chest, or another player's. Aliases /ec, /echest. | donutenderchest.use, donutenderchest.others |
| Help, Media, Rules | /help, /media, /rules | Open the info menus. /guide works for /help. | None |
| Hider | /hide, /show, /unhide, /hider | See Hider. | See Hider |
| Homes | /home, /sethome, /delhome, /visit, /publichomes, /homelanguage, /litehome, /homeadmin | See LiteHome. | See LiteHome |
| Leaderboards | /leaderboards, /stats [player], /leaderboards movehere <name> | See EasyBoard. | None, donutleaderboards.admin to move |
| LiteCrystal | /fastercrystal, /fastcrystal, /donutcrystal | See FasterCrystal. | See FasterCrystal |
| Message | /msg <player> <message> | Sends a private message. Also /message. | None |
| Message | /r <message> | Replies to your last conversation. Also /reply. | None |
| Message | /ignore <player> | Blocks or unblocks a player's messages. Also /block. | None |
| Order | /order, /orders, /orderhistory | See Order. | See Order |
| RTP | /rtp, /rtpqueue, /rtpforce, /duel, /1v1 | See FastRTP. | See FastRTP |
| Scoreboard | /scoreboard | Turns your sidebar off or on. Aliases /sb, /board. | None |
| Scoreboard | /scoreboard reload | Reloads the scoreboard. | donutscoreboard.admin |
| Sell | /sell, /sellall, /sellhand, /sellhistory, /worth, /sellevent, /donutsell reload | See LiteSell. | See LiteSell |
| Shards | /shard [balance|pay|leaderboard|shop] | Your shards. Alias /shards. | shard.use |
| Shards | /shard <see|set|give|take> <player> [amount], /shard setafk, /shard reload | Admin tools. | shard.admin |
| Shards | /afk | Teleports to the AFK area. | None |
| Shop | /shop, /shopitem, /sellgui | See FastShop. | See FastShop |
| Spawn | /spawn | Opens the spawn menu. | None |
| Spawn | /setspawn <id>, /delspawn <id>, /donutspawn reload | Manage spawns. | donutspawn.admin |
| Spawners | /donutspawners ... | See DonutSpawners. | See DonutSpawners |
| Teams | /team | Opens your team menu. Alias /teams. | None |
| Teams | /team <create|invite|join|leave|kick|disband> [name] | Manage team members. | None |
| Teams | /team <info|chat|pvp|sethome|home|delhome> | Team info, team chat, team PvP and the team home. | None |
| Tools | /mythictool ..., /booster | See Mystic Tools. | See Mystic Tools |
| TPA | /tpa, /tpahere, /tpaccept, /tpdeny and the rest | See CrossTPA. | See CrossTPA |
| Warp | /warp [name] | Lists warps, or teleports to one. | None |
| Warp | /setwarp <name>, /delwarp <name>, /donutwarp reload | Manage warps. | donutwarp.admin |
A module's commands only exist while that module is on.
Configuration#
| File | What it controls |
|---|---|
config.yml | Which modules are on, and the storage backend. |
license.yml | Your license key. |
modules/<module>/ | Each module's own config, menus and messages, plus a README.md listing every key. |
Modules#
Every module is on by default. Set one to false and restart to turn it off.
modules:
auction: true
billford: true
bounty: true
clearlag: true
crates: true
enderchest: true
help: true
hider: true
homes: true
leaderboard: true
litecrystal: true
media: true
message: true
order: true
rtp: true
rules: true
scoreboard: true
sell: true
shards: true
shop: true
spawn: true
spawner: true
teams: true
tools: true
tpa: true
warp: trueStorage#
storage:
type: h2
thread-pool-size: 4
mysql:
host: localhost
port: 3306
database: donut
username: root
password: ''
redis:
host: localhost
port: 6379
password: ''type | Use it for |
|---|---|
h2 (default) | One server. Data is kept in a local file, no setup. |
mysql | A network, with the mysql block filled in. |
redis | A network, with the redis block filled in. |
mysql+redis | A network, with both filled in. |
The three network types need the DonutBridge cross-server addon installed next to DonutSMP Core on every server. It keeps balances, homes and player profiles in sync, and /donutbridge <status|nodes|reload> (permission donutbridge.admin) shows the link between servers.
Install#
- Put the DonutSMP Core jar in
plugins/. Your server must run Java 25 or newer. - Install Vault and an economy plugin if you use the auction, bounty, order, sell or shop modules, and WorldGuard for RTP zones and shard AFK regions.
- Start the server once. It creates
plugins/DonutCore/withconfig.yml,license.ymland a folder per module. - Paste your license key into
license-keyinlicense.yml. Your key is under My Licenses on the BlazeZ portal; licenses linked to your Discord account show up there automatically. If yours is missing, open a License Key ticket in the BlazeZ Discord. - Turn off the modules you don't want, pick a storage type and restart.
- Grant your players the permissions from Permissions.
DonutSMP Core loads before Essentials, so its /home, /spawn, /warp, /msg and other commands win over Essentials' versions.
Auction#
/ah opens a paged auction house. Players list the item in their hand with /ah sell <price>, and prices take shorthand like 10k or 1.5m. /ah <search> filters listings, and adding stack or shulker at the end shows only full stacks or shulker boxes. Players with fast buy on skip the confirm step when buying. Staff can /ah inspect a player's listings, force-sell for them, or lock the auction house.
Billford#
Billford is a trader who offers one trade at a time. Players open /billford, bring the required items and get the reward. The trade switches to the next one in trades every change-trade-internal seconds (default 3600).
trades:
1:
requirements:
1:
material: SAND
amount: 64
reward:
material: GLASS
amount: 32Bounty#
Players put money on another player's head with /bounty add <player> <amount>. Whoever kills that player gets the money. /bounty lists every open bounty, and staff can add, remove or reset bounties and view the history with /bountyadmin.
ClearLag#
Every interval-seconds (default 900, 15 minutes), ClearLag removes dropped items, animals and monsters, as set under clear. It warns players at each number of seconds in warnings. Tamed, named and leashed mobs are kept, and bosses like the Ender Dragon and Wither are never removed. automatic: false stops the timer, and /clearlag clear runs a sweep by hand.
Ender Chest#
/ec opens an ender chest of rows rows (default 6) that saves through the core storage, so on a network it follows players between servers. Lowering rows later hides the extra rows without deleting their items.
Help, Media and Rules#
/help, /media and /rules open simple menus you design in each module's config.yml. Each icon under inventory.icons has a material, name, lore and slot. A /help icon can also run a command as the player or send messages in chat when clicked.
Scoreboard#
A sidebar in the classic DonutSMP layout. Players hide it with /scoreboard. These placeholders work without PlaceholderAPI:
| Placeholder | Shows |
|---|---|
%donut_sb_money% | Balance, shortened (25.70K). |
%donut_sb_shards% | Shards. |
%donut_sb_kills%, %donut_sb_deaths% | Kills and deaths. |
%donut_sb_keyall% | Time until the next crate key-all. |
%donut_sb_playtime% | Playtime. |
%donut_sb_team% | Team name. |
%donut_sb_ping%, %donut_sb_region% | Ping, and your sources.server-region text. |
%donut_sb_player%, %donut_sb_world%, %donut_sb_online%, %donut_sb_max% | Name, world, online count and slots. |
With PlaceholderAPI installed, any other placeholder works too. update-interval sets the refresh in ticks, and title.frames can list several titles to animate.
Shards#
Shards are a second currency. Players earn them every Shard-Delay seconds while standing in a WorldGuard region from AFK-Regions, and Shard-Kill shards per kill. /afk takes them to the AFK area you set with /shard setafk. They spend shards in /shard shop and compare in /shard leaderboard.
Extra earnings come from Gen-Nodes and Kill-Nodes. The defaults give shard.gennodes.extra_two +2 per generation and shard.killnodes.extra_ten +10 per kill, and you can add your own node names. Kill-Nodes.prevent_abuse stops rewards for killing the same player again.
Spawn#
/setspawn <id> saves a spawn area where you stand, and /spawn opens a menu of every area. The lowest id is the main spawn used for teleport-on-first-join, teleport-on-every-join and respawn-at-spawn. warmup-seconds and cooldown-seconds apply to teleports from the menu.
Teams#
/team create <name> starts a team, and the leader invites players with /team invite. The team menu shows every member, and the leader sets what each one may do: edit or visit the team home, kick, invite, switch team PvP and use team chat. /team pvp sets whether teammates can hurt each other.
Warp#
/setwarp <name> saves a warp where you stand, and players use /warp <name>. warmup-seconds and cooldown-seconds apply, and moving during the warm-up cancels the warp.