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.