
Commands++ | Next-Level Command Management Plugin
modAdds an extensive list of heavily customizable and programmable commands and features to modern minecraft servers.
Compatibility
Supported Loaders
Game Versions
Gallery




Adds an extensive list of heavily customizable and programmable commands and features to modern minecraft servers.



The modern essentials replacement for Minecraft servers. One YAML file controls every utility — homes, warps, teleport requests, vanish, jail, mute, mail, kits, economy, chat formatting — toggleable per-module on Paper, Folia, and Purpur.
A single primitive — modules — runs every feature on the server. Each module is a self-contained feature with its own commands, listeners, config section, and data files. Toggle a module in config.yml, hot-flip it with /cmds enable|disable <module>, or /cmds reload to apply edits. No restart, no listener leaks, no half-Adventure half-legacy output.
23 modules ship by default. 124 commands. Drop the jar in, set your Discord invite, /cmds reload, done.
modules.homes.enabled: false. Don't want chat formatting? Turn off the module. Most plugins force everything on./msg, /r, /me, /mail. Jail blocks every teleport command (and re-checks at TPA delay execute). Vanish hides from /players, /lastseen, /whois, /getpos, join/quit broadcasts, and lastseen updates. Most plugins half-implement this./cmds reload actually unregisters listeners. Most plugins quietly leak handlers and double-fire events after reload.teleportAsync everywhere. No legacy Bukkit.getScheduler() anywhere.&-codes still work — auto-detected. Zero MiniMessage knowledge required to start.audit.log with timestamp + actor + target. Most essentials plugins have nothing equivalent./support, the welcome message, and /cmds version. Useful on boot with zero edits.modules:
homes:
enabled: true
default_max_homes: 3
default_home_name: home
teleport:
enabled: true
request_timeout_seconds: 60
teleport_delay_seconds: 3
cancel_on_movement: true
cancel_on_damage: true
randomtp:
enabled: true
cooldown_seconds: 60
max_attempts: 12
worlds:
world: { center_x: 0, center_z: 0, radius: 5000, min_y: 64, max_y: 256 }
economy:
enabled: true
confirm_threshold: 1000.0 # /pay above this requires /payconfirm
chat:
enabled: true
format: "<prefix><white><displayname></white><suffix> <dark_gray>»</dark_gray> <message>"
luckperms_prefix: true
Every module has the same shape: enabled plus its own keys. New defaults from plugin upgrades merge in without overwriting your edits.
| Command | Effect |
|---|---|
/cmds modules | List every module + its current state |
/cmds enable <module> | Turn it on, run its onEnable immediately |
/cmds disable <module> | Turn it off, unregister its listeners + cancel its tasks |
/cmds reload | Re-read config + messages, re-enable modules |
/cmds update | Manual Modrinth check |
Where Commands++ goes deeper than per-command Essentials checks.
Mute — blocks chat, /msg, /r, /me, /mail send. Every text path checks PlayerStatus.isMuted from a single helper, so adding a new command picks up muting for free.
Jail — blocks /spawn, /home, /warp, /tpa, /tpahere, /back, /randomtp, /jumpto, /top, /tphere, /tppos, /world. The TPA delay re-checks at execute time, so jailing during the countdown actually stops the teleport.
Vanish — hides from /players, /list, /lastseen, /whois, /getpos, /near. Suppresses join/quit broadcasts. Skips lastseen.yml updates on quit. Cancels item pickups + entity targeting. Persists through rejoins.
AFK — auto-detected from movement and chat. Optional auto-kick after configurable idle. [AFK] tag prepends to the chat that breaks the idle, not the next one.
Per-permission gradient styles for chat AND nicknames. Players run /chatcolor list or /nick list to see a click-to-apply gallery.
modules:
chat:
permission_styles:
- { name: rainbow, permission: commandsplus.chat.style.rainbow, style: "<rainbow><message></rainbow>" }
- { name: fire, permission: commandsplus.chat.style.fire, style: "<gradient:#ff5555:#ffaa00:#ffff55><message></gradient>" }
- { name: vip_gold, permission: commandsplus.chat.style.vip_gold, style: "<bold><gradient:#ffd700:#fff8a0><message></gradient></bold>" }
- { name: mvp_diamond, permission: commandsplus.chat.style.mvp_diamond, style: "<bold><gradient:#00ffff:#00aaff:#a855f7><message></gradient></bold>" }
playerstate:
nick_max_length: 16
nick_presets:
- { name: rainbow, permission: commandsplus.nick.preset.rainbow, style: "<rainbow><message></rainbow>" }
- { name: ocean, permission: commandsplus.nick.preset.ocean, style: "<gradient:#0088ff:#00ffff><message></gradient>" }
13 chat presets and 13 matching nick presets ship enabled. Add your own — it's just a YAML row.
prefix: "<bold><gradient:#00ffd5:#00aaff:#a855f7>[Commands++]</gradient></bold> <gray>"
support:
discord_invite: "https://discord.gg/your-invite"
discord_label: "discord.gg/your-invite"
show_in_welcome: true
The Discord propagates everywhere — /support command, welcome message CTA, /cmds version, broadcast messages that reference %discord%. One field, every surface.
Need a custom prefix? Replace the MiniMessage above with &8[&bMyServer&8] &7 and the parser falls back to legacy codes.
124 across 23 modules.
| Module | Commands |
|---|---|
| Teleport | /tpa /tpahere /tpaccept /tpdeny /tpcancel /tptoggle /tphere /tpall /tppos /tp /back /jumpto /top |
| Homes / Warps / Spawn | /home /sethome /delhome /homes /warp /setwarp /delwarp /warps /spawn /setspawn /randomtp |
| Communication | /msg /r /ignore /unignore /msgtoggle /socialspy /realname /me /mail /helpop |
| Player state | /heal /feed /fly /god /afk /nick /speed /clearinventory /whois /near /getpos /exp /suicide /ext |
| Gamemode | /gmc /gms /gma /gmsp /gamemode |
| Inventory | /enderchest /workbench /anvil /repair /more /skull /i /give /trash /enchant /condense /hat /recipe /invsee |
| Moderation | /mute /unmute /jail /unjail /setjail /jails /kick /ban /unban /tempban /banhistory /freeze /sudo /clearchat |
| Vanish | /vanish /vanishlist |
| Kits | /kit /kits |
| World | /world /worlds /time /weather /sun /rain /thunder /pweather /ptime |
| Staff | /staff add|remove|info|list|roles |
| Economy (Vault) | /pay /payconfirm /balance /baltop /eco |
| Admin | /burn /lightning /firework /info |
| Chat / Nick | /chatcolor (list / preset / reset), /nick (list / preset / set / clear) |
| Plugin | /cmds reload|modules|enable|disable|version|update |
Run /help for a paginated, click-to-suggest in-game menu. /cmds help for the admin equivalent.
Single hierarchy: commandsplus.<module>.<command>[.other|.bypass|.list|.see]. Defaults match intent.
| Node | Default | Grants |
|---|---|---|
commandsplus.admin | op | Wildcard — every operator-level node, including all gradient presets |
commandsplus.<utility> | true | /home, /spawn, /msg, /help, /randomtp, etc. |
commandsplus.<admin> | op | /heal, /mute, /jail, /vanish, /sudo, etc. |
commandsplus.<command>.other | op | Target another player |
commandsplus.<command>.bypass | op | Skip cooldown / restriction |
commandsplus.homes.limit.<n> | false | Tiered home cap — grant commandsplus.homes.limit.10 for ten homes |
commandsplus.chat.style.<name> | false | Per-preset chat gradient |
commandsplus.nick.preset.<name> | false | Per-preset nickname gradient |
Grant commandsplus.admin to your staff LuckPerms group — every operator command works, every gradient preset unlocks.
Every integration is a soft-depend. Commands++ runs cleanly with all of them missing.
| Plugin | Used for |
|---|---|
| PlaceholderAPI | commandsplus_* placeholders — homes count, AFK, vanish, mute / jail remaining, mail unread, ping, uptime |
| Vault + economy provider | /pay, /balance, /baltop, /eco, /payconfirm |
| LuckPerms | Chat-format prefix + suffix injection, group-aware permissions |
Async Modrinth poll on enable + every 6 hours. When a newer release is detected:
commandsplus.update.notify on join + every 30 minutes/cmds update for a manual checkAll cadences and the slug live under modules.update.*.
| Platform | Support | Notes |
|---|---|---|
| Paper 1.21+ | ✅ Full | Native Adventure |
| Folia | ✅ Full | Region-aware throughout, teleportAsync everywhere |
| Purpur 1.21+ | ✅ Full | |
| Spigot 1.21+ | ⚠ Limited |
Java 21+ required.
plugins/ folder.config.yml and messages.yml generate with sane defaults.config.yml, set support.discord_invite: to your community link./cmds reload.Optional: install LuckPerms for chat prefix integration, PlaceholderAPI for the placeholder set.