Dispatch.IO Logo
Getting started

Permissions and roles

Who can use each command, which permissions the bot needs and how the owner and staff are protected.

Updated on October 15, 2026#permissions

Search the documentation

Type a keyword: a command, a module, a dashboard page…

This page explains how Dispatch.IO decides who can do what on your server: the Discord permission required by each command, the permissions the bot itself needs, the staff roles the bot recognises and the owner's special rights. It is meant for owners and administrators who organise their moderation team.

Tip

The simplest setup: invite the bot with the Administrator permission, put its role at the very top of the role list, and give your moderators the Discord permissions of the commands they use.

How the bot checks permissions

When a member uses a command, three checks run one after the other:

  1. Discord hides the command from members who lack its default permission (for example Ban Members for /ban). This default can be changed in the server settings (see below).
  2. The bot checks again the member's permission. It accepts the Discord permission or a staff role registered for the server (ADMIN and MODO types, see below). For commands that declare them, it also checks its own permissions.
  3. The command applies its own rules: for example, nobody can ban the server owner, or a member whose role is above their own.

Warning

If check 2 fails, the bot replies nothing: Discord just says the application did not respond. This mostly happens when a command was allowed for a role in the integration settings while that role lacks the matching Discord permission.

The bot checks permissions at server level (the roles' permissions), not channel by channel.

The bot's permissions

When inviting the bot

The official invite link (the Add Dispatch.IO™ to server button on the website) asks for the Administrator permission, plus the detailed permissions the bot uses: managing channels, roles, messages, nicknames, webhooks and expressions, banning, kicking, timing out, viewing the audit log, connecting and speaking in voice, and so on. Keep Administrator checked: the anti-raid, tickets and temporary voice channels need it.

Where the bot's role sits

On Discord, a role can only manage the roles and members placed below it. Put the bot's role above:

  • the roles it has to give (welcome roles, level and flame rewards, reaction roles, temporary voice channel roles);
  • the members it has to sanction or rename.

Permissions checked per command

Some commands check the bot's permissions before running. They then also check a common base: View Channel, Send Messages, Embed Links, Read Message History, Add Reactions, Use External Emojis and Manage Messages.

CommandPermission checked on the bot (on top of the common base)
/ban, /unbanBan Members
/kickKick, Accept, and Deny Members
/timeout, /end-timeout, /warn, /force-disconnectTimeout Members
/clearManage Messages
/nuke, /toggle-lockManage Channels
/role-allManage Roles
/renameManage Nicknames
/play, /play-radioConnect, Speak

Other commands check nothing beforehand: if a permission is missing, the action itself fails.

Permissions required by /config

Each category of /config checks what it needs and shows a warning when a permission is missing.

Antiraid screen when the bot lacks the Administrator permission
Without the Administrator permission, the Antiraid screen shows a warning and no buttons.
CategoryBot permissionWithout it
Main panelView Channel, Send MessagesWarning at the bottom of the panel
WelcomeManage RolesCategory menu hidden
Channels (and every channel picker)Manage ChannelsWarning only, no buttons
AntiraidAdministratorRead-only screen
TicketsAdministrator, plus Manage Channels to create ticketsMenu hidden
Word reactionAdd ReactionsButtons hidden
Temporary channelsManage Channels, Manage MessagesButtons hidden
Temporary Voice ChannelAdministratorWarning only, no buttons
BumpManage Server or AdministratorEnable button greyed out
LevelingManage Roles, Manage ChannelsEnable button greyed out
Daily Streak SystemManage ChannelsEnable button greyed out

Caution

If the bot loses a permission (for example when a role is edited), some modules turn themselves off: the anti-raid without Administrator, levels without Manage Roles or Manage Channels, flames without Manage Channels. Give the permission back to the bot, then turn the module on again.

Permission required for each command

This table gives the Discord permission required from the member for each command. It is what decides whether Discord shows the command.

CommandMember permissionDetails
/config, /say, /giveaway, /raid-mode, /banlist, /botlist, /clear, /nuke, /role-all, /create-banner, /create-embed, /edit-embed, /create-container, /edit-containerAdministrator—
/modify-xp, /reset-levelsAdministratorOnly present when the leveling system is on.
/emojiManage Expressions—
/toggle-lockManage Channels—
/ban, /unbanBan MembersProtection rules, see below.
/kickKick, Accept, and Deny MembersProtection rules, see below.
/timeout, /end-timeout, /warn, /force-disconnectTimeout MembersProtection rules, see below.
/snipeTimeout Members—
/infractionsNoneViewing another member's infractions: Timeout Members. Deleting one: the owner or Administrator.
/renameNoneRenaming another member: Manage Nicknames.
/pollNoneStopping a poll: its creator or an administrator.
/ticket-managerNoneInside an open ticket: its author, a responsible member or an administrator.
/play, /play-radio, /queue, /title, /volume, /stopNoneSee Music and radio.
/pause, /resume, /next, /previous, /loopNoneYou must be in the bot's voice channel. While the person who requested the current track is in that channel, only they (or a member with Administrator) can control it.
/rankNoneOnly present when the leveling system is on.
/bump, /gemini, /giphy, /hello, /help, /info, /ping, /premium, /profil, /report, /top, /upload-image, Translate thisNone—
/zulu, /metar, /frequenciesNoneOnly present when the aviation commands are enabled.

Commands reserved for the Dispatch.IO team are described in Internal commands. The full command list is in All commands.

The ADMIN and MODO staff roles

On top of Discord permissions, the bot knows two staff role types registered for each server: ADMIN and MODO. A member holding a role of one of these types passes the bot's checks as if they had the Discord permission:

Permission checked by the botAlso granted by a role
Administrator, Manage Server, Manage Channels, Manage Roles, Manage Webhooks, Manage Expressions, View Audit LogADMIN
Ban Members, Kick, Accept, and Deny Members, Timeout Members, Manage Messages, Manage Nicknames, Create InviteADMIN or MODO
View Channel, Send Messages, Add ReactionsNone (Discord permission only)

These types are also used by the protection rules: a member with an ADMIN role can only be sanctioned by the owner, and a member with a MODO role only by the owner or an administrator. ADMIN roles also get access to every ticket channel, and ADMIN and MODO roles get moderation rights in temporary voice channels (muting, moving members…).

Note

For now, neither /config nor the dashboard has a screen to designate your ADMIN and MODO roles. If your server has none, the bot relies only on Discord permissions: that is the normal case. The roles picked in Welcome are a different type (welcome roles) and grant no rights.

Who can sanction whom

The moderation commands protect the owner and the staff. Here is the full path of /ban:

Each refusal shows a clear message, for example "You cannot ban a member with a role higher than or equal to yours." or "Only the server owner can ban an administrator.".

The rules vary slightly from one command to another:

Rule/ban/kick/timeout/warn/end-timeout/force-disconnect/unban
The owner cannot be targetedYesYesYesNoNoNoYes
The target must be in the serverNoYesYesYesYesYesIt must be banned
The author's role must be above the target'sYesYesYesNoNoNoNo
The bot's role must be above the target'sYesYesYesNoNoNoNo
Target with the Administrator permissionOwner only—Always refused————
Target with an ADMIN roleOwner onlyOwner onlyOwner onlyOwner onlyOwner onlyOwner only—
Target with a MODO roleOwner or adminOwner or ADMIN roleOwner or ADMIN roleOwner or ADMIN roleOwner or ADMIN roleOwner or ADMIN role—

For /ban, "admin" means an ADMIN role or the Administrator permission. For the other commands, only an ADMIN role counts. The role position checks of /ban only apply to members present in the server: /ban can also ban a user who is not in the server.

The owner's rights

The server owner always has every Discord permission: they see and can use every command, and they can open the server dashboard. On top of that, the bot gives them these rights:

  • Protection: they cannot be targeted by /ban, /kick, /timeout or /unban.
  • Sanctioning staff: they are the only one who can sanction a member with an ADMIN role (and, with /ban, a member with the Administrator permission).
  • Anti-raid: the message filters always ignore them. For server protections (channels, bans, invites, webhooks, server changes), they are protected by a Global whitelist entry that the bot creates when it joins the server (and on an ownership transfer). /config can't remove it, but saving the whitelist from the website deletes it (see The whitelist): their own changes can then be undone. To create it again, see Whitelist.
  • Alerts: as long as no emergency mention is set on the website, they are the one mentioned on critical logs (anti-raid, sanctions).
  • Infractions: along with members who have the Administrator permission, they can delete an infraction with /infractions.
  • Nickname: flames never rename them.

Note

The owner is still bound by the role hierarchy for /ban, /kick and /timeout: their highest role must be above the target's.

Giving your team the right access

Access goes through the Discord permissions of your roles (Server Settings → Roles). Example for the Café des Devs server:

RolePermissions to giveBot commands available
@ModérateursTimeout Members, Kick, Accept, and Deny Members, Ban Members/warn, /timeout, /end-timeout, /force-disconnect, /snipe, /kick, /ban, /unban, /infractions on other members
An administration roleAdministratorEvery command, including /config
@MembresNo special permissionPublic commands (/profil, /top, /bump…)

To protect staff members from each other, mind the hierarchy: put @Modérateurs above @Membres, and the bot's role above them all.

Changing who sees a command

In Server Settings → Integrations → Dispatch.IO, you can allow or hide each command for given roles, members or channels. This setting only changes visibility: the bot still checks the permission. If you allow /ban for a role that lacks Ban Members, its members will see the command but get no reply.

Who can configure the bot

WhereWho
/config commandMembers with the Administrator permission (the owner always has it).
Website dashboardThe owner and members with Administrator or Manage Server. Menu entries are only shown to the owner and to members with Administrator.

Changes made with /config are recorded in the Server logs channel, with the name of their author. The website also has its own Configuration Logs page. Every setting is detailed in Bot configuration.

Website account roles (Dispatch.IO team, administration pages) are a separate system: see Managing permissions.

Common problems

ProblemLikely causeFix
A member does not see a commandThey lack the Discord permission required by the commandGive the permission to their role, or allow the command in Integrations (while also giving the permission).
Discord says the application did not respondThe member or the bot lacks the permission checked by the botCheck the member's permission (table above) and the bot role's permissions.
"I cannot ban this member because their role is higher than or equal to mine."The bot's role is below the target'sMove the bot's role up in Server Settings → Roles.
A /config screen shows "To continue the setup…"The bot lacks the listed permissionAdd the permission to the bot's role, then run /config again.
A module turned itself offThe bot lost a permissionGive the permission back, then turn the module on again in /config.

For other issues, see Troubleshooting.

Updated on October 15, 2026