Discord Permissions Explained

Discord permissions are stored as a single number: a bitfield where each permission is one bit. Understanding it stops you from handing out Administrator every time something does not work.

Discord · 6 min read · By Chris Lenga · Updated

The bitfield

Each permission has a bit position. The value of a permission is 1 shifted left by that position, so Administrator (bit 3) is 8, and a role’s permissions are all its bits added together. The newest permissions sit above bit 50, so the API sends the total as a string rather than a number that would overflow. The Discord Permissions Calculator turns a set of checkboxes into that integer and a ready-to-use invite URL.

Administrator overrides everything

The Administrator permission grants every permission and bypasses all channel-level restrictions, including private channels. The server owner has every permission too, whatever their roles say. Give Administrator only to roles you fully trust, and grant everyone else the specific permissions they need.

How channel overwrites stack

A role sets server-wide permissions, and each channel can allow or deny permissions for a role or a single member. Discord applies them in a fixed order: the channel’s @everyone overwrite, then every role overwrite, then overwrites for that member, with the denies at each step applied before the allows.

Two rules fall out of that order. A channel deny beats a server-wide allow. And between roles, an allow wins: if one of your roles is denied View Channel in a channel and another is allowed, you can see it, whatever order the roles sit in. Denying View Channel also makes the channel’s other permissions irrelevant, since nobody can act in a channel they cannot see.

Role hierarchy

Role order does not decide permissions, but it does limit moderation. A bot or member can only assign, edit, or reorder roles below their own highest role, and can only kick, ban, or change the nickname of members whose highest role is lower. When a bot says it cannot do something it clearly has permission for, drag its role higher in Server Settings, Roles.

Building a bot invite

A bot invite carries the permissions it asks for as that same integer: https://discord.com/oauth2/authorize?client_id=APP_ID&scope=bot+applications.commands&permissions=INTEGER. Ask only for what the bot uses. Whoever adds the bot can untick permissions on the invite screen anyway, and a bot that asks for Administrator gets turned away by careful server owners.

FAQ

Why can my bot not give a role even though it has Manage Roles?+

The role is above the bot’s own highest role. Move the bot’s role above every role it needs to hand out, in Server Settings under Roles.

What does the permissions number in an invite link mean?+

It is every permission the bot asks for, each one a bit, added together. 8 alone is Administrator, and the permissions calculator decodes any value back into the list.

Try the tools

All guides →