Documentation menu

Docs/Plugins/Commands

Commands

How the command system works - prefix, slash opt-in, levels, overrides, and lockdowns.

Not a plugin - this page explains how commands themselves behave.

Prefix

Every command works as a prefix command (!ban @user reason); the prefix is per-server (commands.prefix). Mentioning the bot does not run commands - the text prefix is the only trigger.

Slash commands

Slash commands are opt-in per server: the dashboard's Slash Commands page lists every available command grouped by plugin, and only what you tick gets registered in your server. Changes deploy within seconds of saving. Commands whose plugin is unconfigured (or whose feature is not granted) are flagged on that page so you do not register dead entries.

Levels

Who can run what is decided by numeric levels from your levels: config (0 everyone, 10 trusted, 50 moderator, 100 admin). Each command has a default; overrides can change it per server.

Overrides and lockdowns

commands.overrides matches commands by name, group, plugin, or everything, and can disable them, change the required level, or set a per-user cooldown in seconds - handy for opening something like rank up in a busy general chat without the spam:

commands:
  overrides:
    - name: rank
      out: {cooldown: 30}

The cooldown counts per member per command; moderators (level 50 and up) are exempt, and a member still on cooldown gets told how long is left. commands.lockdown restricts where commands run: channel and category allow-lists, role allow/exclude lists. The channel and category allow-lists combine - a command runs in any channel you list AND anywhere under any category you list, so you can fence a plugin into a whole category plus a couple of stray channels outside it. Exclude lists always win over allow lists.

One limitation worth knowing: channel and category lockdown lists do not recognize threads - a thread is its own channel as far as Discord is concerned, so a command locked to a channel or category cannot be used inside threads or forum posts, even ones under an allowed channel. Role lists are unaffected.

A lockdown only ever narrows who and where - it never lowers a command's level. To let a role use a command above its level (say, tags create, which needs level 10), add an override that lowers the level, or give the role a level on the Access form.

The Setup → Access & Permissions page edits both structurally and includes a resolver: pick command + channel + member, and it answers "would this run?" with the exact rule that decided. The resolver knows every command's built-in level (shown next to each command in the picker), so its answer matches what the bot actually does.

Blacklists

commands.local_blacklist / commands.bot_blacklist block users from using the bot in your server; entries can carry reasons as YAML comments. The dashboard's Blacklist page manages the same lists.

The two blacklists

They are not the same:

  • bot_blacklist makes the bot ignore the member completely - commands, tags, custom-command triggers, XP, starboard stars, the lot.
  • local_blacklist blocks commands only; everything else still counts.

Cooldowns and denial behaviour

commands.dm_denied (on by default) deletes the command message and DMs the member the reason they could not run it. Turn it off and a denied command is ignored silently, with nothing posted in the channel either way. To switch a command off, give it an override with out: { disabled: true }. To switch a whole plugin off, remove its plugins.<name>: block.