The Manual

Setup

How to restrict Discord bot commands to roles or channels

Restrict Discord bot commands to specific roles or channels — per-command Enabled and Disabled lists, and how they differ from the Integrations page.

Time
5 min
Topic
Setup
Published
15 September 2026

Handing someone Manage Messages so they can run one moderation command also lets them delete any message anywhere, edit pins, and manage every thread — Discord’s permission model has no concept of “this one command, nothing else.” Vetox’s per-command settings exist specifically to close that gap: a role can be granted a command directly, independent of whether it holds the Discord permission that command would otherwise require.

Before you start: you need Administrator permission in the server, or to be the owner, to reach the Commands page. No bot permission changes here — this page governs who may invoke a command, not what Discord permission the bot itself needs to carry out the action.

1. Open the command you want to restrict

The Commands page lists all 70 top-level slash commands, grouped into five tabs — All, General, Moderation, Info, Leveling — with a search box. Selecting one opens its own settings, and a command with subcommands (/ticket, /starboard, /coins) exposes each subcommand as its own row with its own settings, addressable directly.

2. Grant it to specific roles without touching Discord permissions

Enabled Roles is the setting that does the actual work most servers are looking for: add a role here and members holding it can run the command even without the Discord permission it would normally require. This is how you give a Trial Moderator role /warn-add and /timeout without also handing out Moderate Members anywhere in the server — the command works for them, and nothing else does.

Disabled Roles is the reverse — block specific roles from a command regardless of what Discord permission they hold otherwise.

3. Restrict it to specific channels

Enabled Channels, when non-empty, confines a command to exactly those channels — set it on /rank, /top and /profile to keep bot-spam commands in one dedicated channel. Disabled Channels does the opposite: block a command from specific channels while leaving it open everywhere else — the standard use is keeping /roll and similar fun commands out of announcements or support channels.

4. Add a prefix-free alias, if you want one

Aliases let a member trigger a command by typing a plain word — no slash, no command menu — as long as the message does not start with the server’s configured prefix. No command ships with a built-in alias; every one is added per server. Set b as an alias for /ban and a moderator can type b @user spam as an ordinary message and have it run exactly like the slash command, subject to the same role, channel and cooldown checks.

This is a genuinely different mechanism from a slash-command rename — Discord’s own command picker still shows the original name. The alias is a second, independent way in.

5. Turn a command off entirely, if nobody should use it

Enabled off stops the command for everyone, including administrators — there is no override once a command is switched off at this level. This differs from restricting it to a role, which still lets someone use it.

6. Know what a subcommand row does and does not inherit

A subcommand’s settings — /ticket claim, /starboard force — are evaluated after the parent command’s own checks pass, and they carry a narrower field set: enabled, the four role and channel lists, and one auto-delete option. Aliases, the other auto-delete toggles and preset reasons are parent-command-only and do not apply at the subcommand level.

Common use cases

  1. Trial moderators without Discord permissions. Grant /warn-add and /timeout to a Trial Moderator role via Enabled Roles — no server permission required, and you can revoke it by removing the role, not by editing anyone’s Discord permissions.
  2. Splitting a support team. Leave /ticket close open to every support role; restrict /ticket merge to a senior role by setting Enabled Roles on that one subcommand specifically.
  3. Keeping fun commands serious-channel-free. Add your announcements and support channel IDs to Disabled Channels for /roll and similar.
  4. A shorthand for a command your team runs constantly. An alias like w for /warn-add saves a moderator the trip through the slash-command picker during a busy moment.

How this compares to Discord’s own command permissions

Discord itself has a native layer for this, reachable from Server Settings → Integrations → [the bot], which lets an administrator restrict which roles or channels can see and use a given application’s commands, independent of any bot-side configuration at all. It works on every bot that registers slash commands, Vetox included, and is worth knowing about because the two systems are not mutually exclusive — Discord’s layer can hide a command from the picker entirely, while Vetox’s layer additionally lets you grant a command to a role that would not otherwise have the underlying Discord permission, which Discord’s own settings cannot do on their own.

The practical difference: Discord’s native restriction is visibility and access at the platform level, and it is the same mechanism for every app you have installed. Vetox’s per-command settings are specifically about decoupling “can run this command” from “holds this Discord permission,” which is the harder problem a growing staff team actually runs into.

Common questions

Does restricting a command here also restrict the same action if a moderator does it manually? No — this only governs the command’s own invocation. A moderator with the Discord permission to ban directly through Discord’s member list is unaffected by a /ban restriction here.

Why does a command still not appear for someone I granted access to? Every Vetox command is guild-only — check they are testing in the server, not a DM — and Discord can take a few minutes to sync a newly changed command’s visibility after any change; a client restart usually forces it.

Can I set a cooldown from this page? No. Cooldowns are fixed per command in Vetox’s own registry and are not editable from the Dashboard.

A role I granted access to still can’t use the command. What’s left to check? Confirm the command itself is not switched off entirely — Enabled off overrides every role grant — and see why your bot is not responding if the issue turns out to be a channel permission rather than this page. For restricting whole pages of the Dashboard rather than individual commands, see how to set up dashboard access control.

Sources and verification

Checked

  1. Vetox docs — Command management (opens in a new tab)
  2. Vetox docs — Permissions overview (opens in a new tab)
  3. Discord developer docs — Permissions (opens in a new tab)

How we verify