🎉 v4.0 — The Big One
Six new systems. One JAR. Zero breaking changes. Let's go.
v4.0 is huge. We added six entirely new systems that turn Command Maker from "that handy alias mod" into a full-blown server automation platform. And the best part? Nothing breaks. Your existing aliases, syntaxes, and permissions all keep working exactly like before. New stuff is totally opt-in.
🕐 1. Cooldowns — No More Spam
Ever had players spam /home or /heal? Yeah, us too. Now you can slap a cooldown on any alias.
- Per-player: each player has their own timer. Bob spamming
/homeonly affects Bob. - Global: one player uses it, everyone waits. Great for server-wide events.
- Custom messages: write whatever you want.
{remaining}shows seconds left. Colors work too.
Dropped in config/CommandMaker/cooldowns.json. Dead simple.
🔀 2. If/Else — Your Aliases Just Got Smarter
Real logic. Right in your alias. No config files, no scripting — just type it inline.
if:xp(30) give @s diamond else say Come back when you're level 30!
You can check 9 different things: XP level, health %, permissions, items in inventory, custom variables, cooldowns, player name, dimension, or whether someone's an op.
The else part is optional. If the condition fails and there's no else, nothing happens — no errors, no crashes.
📡 3. Event Triggers — Set It and Forget It
Stuff happens on your server. Now your mod can respond to it.
Player joins? Auto-welcome message. Player dies? Broadcast it. Someone breaks a diamond ore? Give 'em a bonus. First time someone connects? Roll out the red carpet.
Eight event types: join, leave, death, respawn, first join, chat, kill, block break. All in config/CommandMaker/events.json.
Each event can have its own cooldown. You can even filter block breaks to specific blocks — only fire when someone mines diamond ore, for example.
All the events →📊 4. Custom Scoreboards — Pretty Sidebars, Zero Effort
Define a scoreboard in JSON. It shows up. It updates itself. That's it.
Put ${player_count} in a line and it'll always show the right number. ${tps} for server performance. Full color support with & codes. Position it in the sidebar, tab list, or below player names.
And here's the thing: scoreboards are off by default. The example config has "enabled": false so nothing appears until you're ready. No surprise sidebars.
🔤 5. Placeholders — The Glue
Remember ${player} and ${x}? Meet their cooler cousins.
%player_health% tells you how much HP someone has. %player_world% says which dimension they're in. %server_online% tells you how many people are on.
Fifteen built-in. They work everywhere — aliases, events, scoreboards, cooldown messages. Same %name% format as PlaceholderAPI, so if you've used PAPI before, this feels familiar.
📦 6. Shareable Packages — One File, Everything
Spent hours setting up the perfect alias system? Package it up and share it.
A .cmk file is just a ZIP with all your stuff inside: aliases, functions, events, scoreboards, cooldowns — the works. Two commands and you're done:
/cmd package MyCoolSetup ← bundles everything into a .cmk
/cmd import MyCoolSetup ← installs it on another server
Importing is safe — it won't overwrite your existing stuff unless you say --overwrite. Conflicts are reported, not silently replaced.
Think of it like a modpack, but for Command Maker content. Drop the file in config/CommandMaker/packages/ and you're golden.
✨ Also New: Quick Commands
/cmd help now shows all 20+ subcommands. We added /cmd package and /cmd import as simpler alternatives to the module commands. Same functionality, fewer keystrokes.
📋 Platform Status
| Platform | v4.0 Status |
|---|---|
| Fabric 1.21.9 | ✅ Ready to go — all 6 features |
| Fabric 26.1 | 🟡 Ported, needs final polish |
| Paper / Bukkit / Spigot | ⏳ Coming after Fabric 26.1 |
| Forge / NeoForge | ⏳ Coming after Paper |
| Rift | ⏳ Coming after Forge |
false or empty. Your old stuff keeps working. No migration needed. 🎉