CookieSMPCore
CookieSMPCore is a combined Paper plugin that replicates multiple DonutSMP features in a single JAR. Every feature is a self-contained module with its own YAML config file, and most modules can be reloaded or fully enabled/disabled at runtime without restarting the server.
This plugin is not publicly available and is exclusive to the Atomatrix DonutSMP Replica Server Setup.
Features
Economy & Trading
- Pay: Economy features with
/pay,/paytoggle, and/bal, plus configurable tax, formatting, and limits. - Worth: Opens an item price-list GUI, or toggles a
Worth: $Xlore line on the items in your own inventory. Item values live in the shareditemworths.yml. - Auction House: A paginated player-to-player auction house with category filtering, sorting, sign search, shulker preview, buy/sell confirmation GUIs, a "My Items" page, and full transaction history. A per-player Quick Buy toggle (
/ah toggle) skips the buy confirmation screen. Expired items are auto-returned to sellers. - Sell: A 5-row sell GUI with nine item categories, each with independent multipliers that level up (up to 20 levels) as you earn. Includes
/sellworth,/sellhistory, and/selltop. - Shard Shop: A 6-row GUI shop where players spend Shards (PlayerPoints) on items. Each entry either hands over a built item or runs a console command, and clicking an item opens a 3-row confirm screen before the shards are taken. Opened with
/shardshop.
Movement & Teleportation
- Homes: A homes screen rendered as a native Minecraft Custom Menu (Paper Dialog) on Java and a Cumulus form on Bedrock, with teleport (countdown), set, rename, change-icon, and confirm-delete. Home slot count is granted by the
donuthome.<n>permission (up to 90). Admin visit/delete commands included. - TPA: A teleport request system with
/tpa,/tpahere, an optional confirmation screen (/teleportgui), accept/deny/cancel commands, and several per-player toggles. - First Join: The first time a player ever joins, they are randomly teleported into the wilderness — a safe surface spot a configurable distance from spawn, with destinations pre-cached in the background. Players with
firstjoin.bypassare skipped. - Jump: DonutSMP-style double-jump inside allowed WorldGuard regions, with configurable boost, cooldown, and sound.
Social & Communication
- Msg: Private messaging with
/msgand/reply, plus/msgtoggleand per-player blocking. State persists across restarts. - Friends: A follow-based friends system — follow players, and mutual follows become friends. Six per-friend toggles (See Activity, See Transactions, Can Message, Can Teleport Request, Auto-Accept TPA, Can Pay) are enforced across Pay, Msg, and TPA. Activity notifications (join/leave/kill/home/auction) fan out to your followers. Native Dialog menu on Java, Cumulus form on Bedrock; opened with
/friends. - PlayerToggle: Hides every other player from your client only, with per-world and per-region opt-outs.
Interface & Cosmetic
- Main Menu: A native Minecraft Custom Menu (delivered via a generated datapack) that also adds a button to the pause/ESC screen, with shortcuts to Homes, Auction, Friends, Sell, Leaderboards, Settings, and more. Opened with
/menu; Bedrock players get a Cumulus form. - Settings: A personal settings screen (native Dialog on Java, Cumulus form on Bedrock) with collapsible categories. Toggles cover chat, notifications, PvP, visuals, privacy, and the scoreboard; some are simple ON/OFF, others are 3-state (Off / Friends / Anyone) controlling who may message, pay, or TPA you. Can optionally suppress totem and explosion particles/sounds via ProtocolLib.
- Scoreboard: A per-player sidebar scoreboard showing stats such as money, shards, kills, deaths, and playtime. The whole board and each individual line are toggled from the Settings menu — there is no separate command.
- Leaderboards: Native Custom Menu (Dialog) / Cumulus leaderboards with seven ranked categories (Money, Deaths, Playtime, Blocks Placed, Blocks Broken, Mobs Killed, /Sell). Each leaderboard entry is clickable and opens that player's individual stats screen;
/statsopens a player's profile directly. - Baltop: A paginated money leaderboard of player heads with a personal head, refresh, and sign-based search.
- Night Vision:
/nightvisiontoggles permanent night vision on or off. Also toggleable from the Settings menu.
Gameplay & Utility
- Combat: Combat tagging with an actionbar timer, combat-log inventory drop + reconnect kill, blockable commands while tagged, and WorldGuard PvP-zone border enforcement.
- Tools: Time-limited tools handed out for a set duration that break when the timer expires: Tree Axe, Sell Axe, Drill Pick (Silk Touch or Fortune), Drill Shovel (Silk Touch or Fortune), and a Haste Potion.
- Region: Coarse IP-based region detection (e.g.
NA East) exposed through a PlaceholderAPI placeholder, with an admin bypass override (/donutregion bypass).
Commands & Permissions
Most player commands default to true (available to everyone); admin commands
default to op. Passive permissions (no command) are marked (passive).
Core
| Command | Description | Permission | Default |
|---|---|---|---|
/donutcore reload [module] | Reload all modules, or a single module config. | donutcore.admin | op |
/donutcore status | Print the colored module status banner. Alias: /adc. | donutcore.admin | op |
Pay
| Command | Description | Permission | Default |
|---|---|---|---|
/pay <player> <amount> | Send money to another player. | donutpay.pay | true |
/paytoggle | Toggle whether you receive payments. | donutpay.paytoggle | true |
/bal [player] | View a balance. Aliases: /balance, /money. | donutpay.bal | true |
/donutpay | AtomatrixDonutPay info banner. Alias: /adp. | donutpay.admin | op |
PlayerToggle / Worth / Night Vision
| Command | Description | Permission | Default |
|---|---|---|---|
/playertoggle [toggle] | Toggle other players' visibility for yourself only. Aliases: /donutplayertoggle, /ptoggle. | playertoggle.use | true |
/worth [toggle] | Open the item price-list GUI, or toggle the worth lore on your own items. Alias: /donutworth. | donutworth.use | true |
/nightvision | Toggle permanent night vision. Alias: /nv. | nightvision.use | true |
Jump (passive)
| Permission | Description | Default |
|---|---|---|
donutjump.use | Allows the player to double-jump in allowed regions. | true |
donutjump.ignore | Excludes the player from the double-jump feature entirely. | false |
First Join (passive)
| Permission | Description | Default |
|---|---|---|
firstjoin.bypass | Exempts the player from the first-join random teleport. | false |
Baltop
| Command | Description | Permission | Default |
|---|---|---|---|
/baltop | Open the Baltop leaderboard menu. Alias: /donutbaltop. | donutbaltop.use | true |
Msg
| Command | Description | Permission | Default |
|---|---|---|---|
/msg <user> <message> | Send a private message. Aliases: /tell, /whisper, /w. | donutmsg.use | true |
/reply <message> | Reply to the last player who messaged you. Alias: /r. | donutmsg.use | true |
/msgtoggle | Toggle whether you receive private messages. | donutmsg.use | true |
/msgblock <user> | Block a player from messaging you. | donutmsg.block | true |
/msgunblock <user> | Unblock a previously blocked player. | donutmsg.block | true |
Friends
| Command | Description | Permission | Default |
|---|---|---|---|
/friends | Open the Friends menu. Aliases: /friend, /follow. | friends.use | true |
/friends follow <player> | Follow a player (also /follow <player>). | friends.use | true |
/friends unfollow <player> | Unfollow a player. | friends.use | true |
/friends list | List your friends, following, and followers in chat. | friends.use | true |
Region / Settings
| Command | Description | Permission | Default |
|---|---|---|---|
/donutregion bypass [region] | Override (or clear) the IP-based region detection. | donutregion.admin | op |
/settings | Open the personal settings GUI. Alias: /donutsettings. | donutsettings.use | true |
Main Menu
| Command | Description | Permission | Default |
|---|---|---|---|
/menu | Open the Main Menu. Aliases: /donutmenu, /mainmenu. | donutmenu.use | true |
Homes
| Command | Description | Permission | Default |
|---|---|---|---|
/home [name|number] | Teleport to a home. Opens the homes menu when you have multiple homes and no argument is given. | donuthome.use | true |
/homes | Open the homes menu. | donuthome.use | true |
/sethome [name] | Set a home at your current location. | donuthome.use | true |
/renamehome <old> <new> | Rename a home via command. | donuthome.use | true |
/home-admin delhome <player> <home> | Delete any player's home. | donuthome.admin | op |
/home-admin visithome <player> <home> | Teleport to any player's home. | donuthome.admin | op |
| (passive) | Allow the player to have N homes (donuthome.1–.5, .10, .27, .90). | donuthome.<n> | false |
| (passive) | Bypass blocked-world restriction when setting homes. | donuthome.bypass.world | op |
| (passive) | Bypass blocked-region restriction when setting homes. | donuthome.bypass.world.guard | op |
Leaderboards & Stats
| Command | Description | Permission | Default |
|---|---|---|---|
/leaderboard | Open the leaderboards hub. Aliases: /leaderboards, /lb. | leaderboards.use | true |
/leaderboard <category> | Jump directly to a category (money, deaths, playtime, mobs-killed, blocks-broken, blocks-placed, sell). | leaderboards.use | true |
/stats [player] | Open the player stats screen — search a player and view their stats. Aliases: /profile, /playerstats. | leaderboards.stats | true |
| (passive) | Reserved for future Leaderboards admin actions. | leaderboards.admin | op |
Auction House
| Command | Description | Permission | Default |
|---|---|---|---|
/ah | Open the Auction House GUI. Alias: /auctionhouse. | donutauction.use | true |
/ah sell <price> | List the held item at the given price (opens confirm GUI). | donutauction.use | true |
/ah fastbuy | Instantly buy the cheapest listing for the held item type. | donutauction.fastbuy | true |
/ah fastsell <price> | List the held item at the given price without confirmation. | donutauction.fastsell | true |
/ah toggle | Toggle Quick Buy mode (skip the buy confirmation screen). | donutauction.toggle | true |
/ah info | Show active listing count and expiry statistics. | donutauction.use | true |
/ahadmin block <player> | Block a player from using the Auction House. | donutauction.admin | op |
/ahadmin unblock <player> | Unblock a previously blocked player. | donutauction.admin | op |
/ahadmin clearcurrent <player> | Cancel all active listings for a player (items returned). | donutauction.admin | op |
/ahadmin clearhistory <player> | Wipe a player's transaction history. | donutauction.admin | op |
/ahadmin clearall <player> | Cancel listings, clear history, and unblock a player. | donutauction.admin | op |
| (passive) | Allow N concurrent listings — any positive integer, e.g. donutauction.sell.50. The base limit without this permission is set by max-listings-default (18). | donutauction.sell.<n> | false |
| (passive) | Unlimited concurrent listings. | donutauction.sell.unlimited | op |
| (passive) | List items even when the Auction House is closed. | donutauction.sell.bypass | op |
| (passive) | Buy items even when the Auction House is closed. | donutauction.buy.bypass | op |
| (passive) | Bypass all Auction House restrictions. | donutauction.emergency.bypass | op |
Combat
| Command | Description | Permission | Default |
|---|---|---|---|
| (passive) | Bypass combat tagging and PvP border restrictions (admin). | combat.admin | op |
| (passive) | Bypass combat tagging and PvP border restrictions. | combat.bypass | false |
Sell
| Command | Description | Permission | Default |
|---|---|---|---|
/sell | Open the sell GUI to place items and sell on close. | sell.use | true |
/sellworth [item] | Check the sell price of the held item or a named key. Alias: /sw. | sell.worth | true |
/sellhistory | Open the paginated sell transaction history GUI. Alias: /sh. | sell.history | true |
/selltop | Open the sell leaderboard GUI. Alias: /st. | sell.top | true |
/selladmin reset <player> | Reset a player's sell data (progress, history, totals). | sell.admin | op |
/selladmin save | Force-save all sell data to disk. | sell.admin | op |
/selladmin reload | Reload the sell module config. | sell.admin | op |
Shard Shop
| Command | Description | Permission | Default |
|---|---|---|---|
/shardshop | Open the Shard Shop. Aliases: /sshop, /shardstore. | shardshop.use | true |
TPA
| Command | Description | Permission | Default |
|---|---|---|---|
/tpa <player> | Request to teleport to another player. | donuttpa.tpa | true |
/tpahere <player> | Request another player to teleport to you. | donuttpa.tpahere | true |
/tpaccept [player] | Accept a pending teleport request (most recent if no arg). | donuttpa.tpaccept | true |
/tpdeny [player] | Deny a pending teleport request (most recent if no arg). | donuttpa.tpdeny | true |
/tpacancel | Cancel your own outgoing teleport request. | donuttpa.tpacancel | true |
/tpatoggle | Toggle whether others can send you /tpa requests. | donuttpa.tpatoggle | true |
/tpaheretoggle | Toggle whether others can send you /tpahere requests. | donuttpa.tpaheretoggle | true |
/tpaauto | Toggle auto-accepting all incoming teleport requests. | donuttpa.tpaauto | true |
/tpaguitoggle | Toggle the confirmation GUI on or off for yourself. | donuttpa.tpaguitoggle | true |
/teleportgui | Open the Teleport Request screen. Aliases: /tpagui, /tpgui. | donuttpa.gui | true |
/tp <player> | Teleport yourself to another player. | donuttpa.tp | op |
/tp <player1> <player2> | Teleport player1 to player2 (admin). | donuttpa.admin | op |
Tools
| Command | Description | Permission | Default |
|---|---|---|---|
/tools give <player> <tool> <time> | Give a time-limited tool to a player. Aliases: /dt, /donuttools. | tools.admin | op |
/tools list | List the available tools. | tools.use | true |
/tools toggle | Toggle tool sounds and particles for yourself. | tools.use | true |
/tools help | Show the Tools command list. | tools.use | true |
Placeholders
Requires PlaceholderAPI.
| Placeholder | Description |
|---|---|
%donutregion_playerregion% | The viewing player's coarse region label (e.g. NA East). |
%friends_friends% | Number of mutual friends the viewing player has. |
%friends_following% | Number of players the viewing player is following. |
%friends_followers% | Number of players following the viewing player. |
%sell_me_name% | The viewing player's name. |
%sell_me_made% | The viewing player's total sell earnings (formatted, e.g. 1.23M). |
%sell_me_item% | The viewing player's total items sold. |
%sell_position_me% | The viewing player's rank in the sell leaderboard, or ? if unranked. |
%sell_item_<n>% | Rank label for the nth leaderboard entry, e.g. 1. PlayerName. |
%sell_name_<n>% | Player name for the nth sell leaderboard entry. |
%sell_made_<n>% | Total earnings for the nth sell leaderboard entry (formatted). |
%sell_totalsold_server% | Total money earned from sells across all players (formatted). |
%sell_totalsolditemscount_server% | Total items sold across all players. |
Dependencies
Required:
Optional:
- PlaceholderAPI - for the placeholders listed above.
- Vault - optional economy bridge.
- PlayerPoints - required for the Shard Shop's Shards currency.
- CoinsEngine - optional alternative currency provider.
- Floodgate - enables Bedrock (Cumulus) forms for the menu-based modules.
- ProtocolLib - enables the Settings totem/explosion particle & sound suppression.
Companion Plugins
Some DonutSMP features are provided by separate plugins:
- Punishments: AdvancedBan
- Bounty: BetterBounty