Commands++ | Next-Level Command Management Plugin

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

262

Quick challenge

How far can you run before the mobs catch you?

Commands++ | Next-Level Command Management Plugin

Commands++

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.

---

What is Commands++

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.

---

Why server owners pick it

- Plug-and-play. Don't want homes? `modules.homes.enabled: false`. Don't want chat formatting? Turn off the module. Most plugins force everything on. - Plug-and-play. Mute blocks chat *and* `/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. - Plug-and-play. `/cmds reload` actually unregisters listeners. Most plugins quietly leak handlers and double-fire events after reload. - Plug-and-play. Region scheduler, async scheduler, entity scheduler — used appropriately throughout. `teleportAsync` everywhere. No legacy `Bukkit.getScheduler()` anywhere. - Plug-and-play. Gradients, hover, click, rainbow. Legacy `&`-codes still work — auto-detected. Zero MiniMessage knowledge required to start. - Plug-and-play. Every admin action targeting another player appends to `audit.log` with timestamp + actor + target. Most essentials plugins have nothing equivalent. - Plug-and-play. Ships with branded gradient prefix, working defaults, animated rainbow welcome title, and a Discord CTA wired through `/support`, the welcome message, and `/cmds version`. Useful on boot with zero edits.

---

Modules — one primitive for everything

```yaml 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.

Toggle at runtime

| 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 |

---

Cross-cutting enforcement

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.

---

Visual presets

Per-permission gradient styles for chat AND nicknames. Players run `/chatcolor list` or `/nick list` to see a click-to-apply gallery.

```yaml 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.

---

Branding in two lines

```yaml 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.

---

Commands

124 across 23 modules.

| Module | Commands | | --- | --- | | Plugin | `/tpa` `/tpahere` `/tpaccept` `/tpdeny` `/tpcancel` `/tptoggle` `/tphere` `/tpall` `/tppos` `/tp` `/back` `/jumpto` `/top` | | Plugin | `/home` `/sethome` `/delhome` `/homes` `/warp` `/setwarp` `/delwarp` `/warps` `/spawn` `/setspawn` `/randomtp` | | Plugin | `/msg` `/r` `/ignore` `/unignore` `/msgtoggle` `/socialspy` `/realname` `/me` `/mail` `/helpop` | | Plugin | `/heal` `/feed` `/fly` `/god` `/afk` `/nick` `/speed` `/clearinventory` `/whois` `/near` `/getpos` `/exp` `/suicide` `/ext` | | Plugin | `/gmc` `/gms` `/gma` `/gmsp` `/gamemode` | | Plugin | `/enderchest` `/workbench` `/anvil` `/repair` `/more` `/skull` `/i` `/give` `/trash` `/enchant` `/condense` `/hat` `/recipe` `/invsee` | | Plugin | `/mute` `/unmute` `/jail` `/unjail` `/setjail` `/jails` `/kick` `/ban` `/unban` `/tempban` `/banhistory` `/freeze` `/sudo` `/clearchat` | | Plugin | `/vanish` `/vanishlist` | | Plugin | `/kit` `/kits` | | Plugin | `/world` `/worlds` `/time` `/weather` `/sun` `/rain` `/thunder` `/pweather` `/ptime` | | Plugin | `/staff add|remove|info|list|roles` | | Plugin (Vault) | `/pay` `/payconfirm` `/balance` `/baltop` `/eco` | | Plugin | `/burn` `/lightning` `/firework` `/info` | | Plugin | `/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.

---

Permissions

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.

---

Integrations

Every integration is a soft-depend. Commands++ runs cleanly with all of them missing.

| Plugin | Used for | | --- | --- | | LuckPerms | `commandsplus_*` placeholders — homes count, AFK, vanish, mute / jail remaining, mail unread, ping, uptime | | LuckPerms + economy provider | `/pay`, `/balance`, `/baltop`, `/eco`, `/payconfirm` | | LuckPerms | Chat-format prefix + suffix injection, group-aware permissions |

---

Update notifier

Async Modrinth poll on enable + every 6 hours. When a newer release is detected:

- Console banner with installed → latest version + download URL - Clickable in-game banner sent to anyone with `commandsplus.update.notify` on join + every 30 minutes - `/cmds update` for a manual check

All cadences and the slug live under `modules.update.*`.

---

Platform support

| Platform | Support | Notes | | --- | --- | --- | | Spigot 1.21+ | ✅ Full | Native Adventure | | Spigot 1.21+ | ✅ Full | Region-aware throughout, `teleportAsync` everywhere | | Spigot 1.21+ | ✅ Full | | | Spigot 1.21+ | ⚠ Limited |

Java 21+ required.

---

Install

1. Download the jar from the Versions page. 2. Drop it into your server's `plugins/` folder. 3. Start the server. `config.yml` and `messages.yml` generate with sane defaults. 4. Open `config.yml`, set `support.discord_invite:` to your community link. 5. `/cmds reload`.

Optional: install PlaceholderAPI for chat prefix integration, PlaceholderAPI for the placeholder set.

---

Links

- Companion pluginCompanion plugin - Companion plugin — %%MD1%% - Companion plugin — %%MD2%% - Companion plugin — %%MD3%% for full-featured server announcements

ADS