Cmdibuzz Commands
How to write custom commands with JSON configuration
Updated July 21, 2026
Command File Structure
Each command is a separate .json file in the commands/ directory. The filename (minus .json) becomes the command ID if not specified in the file.
config/cmdibuzz/commands/
├── discord.json
├── heal.json
└── welcome.json
Minimal Example
{
"id": "discord",
"command": "discord",
"type": "text",
"runcmd": ["text: <blue>Join our Discord: <aqua>discord.gg/example"]
}
This creates /discord that sends a message to the executor.
Full Command Definition
{
"id": "heal",
"command": "heal",
"type": "run_command",
"aliases": ["healme", "health"],
"register": true,
"override": false,
"permission": "cmdibuzz.heal",
"cost_money": 10.0,
"cost_items": [
{ "material": "minecraft:emerald", "amount": 2 }
],
"cooldown_seconds": 60,
"trigger": "",
"arguments": [
{ "name": "player", "type": "player", "optional": false }
],
"runcmd": [
"text: <green>Healing $arg1...",
"delay: 40",
"run_command: /effect give $arg1 minecraft:regeneration 5 2",
"run_console: /say $player_name healed $arg1!"
]
}
Fields Reference
| Field | Required | Description |
|---|---|---|
| id | Yes | Unique identifier for cooldown tracking and logs |
| command | Yes | The command name (what players type after /) |
| type | Yes | Action type when no runcmd is provided |
| aliases | No | Alternative command names |
| register | No | Whether to register this command (default true) |
| override | No | Replace an existing command with the same name (default false) |
| permission | No | Required permission node (empty = default allowed) |
| cost_money | No | Money cost to use the command |
| cost_items | No | Array of item costs |
| cooldown_seconds | No | Per-player cooldown in seconds |
| trigger | No | Bind to an event (see Event Triggers) |
| arguments | No | Argument definitions for the command |
| roulette_commands | No | Array of weighted commands for the roulette action |
| onetime_use | No | If true, each player can only use this once (default false) |
| runcmd | See note | Array of action strings to execute in order |
Splitting Commands Across Files
You can split commands across multiple files and subfolders. Each file should contain a single command object (not an array). The filename becomes the command ID if no id field is set.