Discord Permissions Calculator
Paste a permissions number to see what it grants, compare it with another, or work out what a member can really do in a channel.
- 1Paste a number
- 2See what it grants
- 3Check a channel
ServerNone selected
MembersNone selected
Text channelsNone selected
Voice and stage channelsNone selected
EventsNone selected
AdvancedNone selected
import { PermissionsBitField } from "discord.js";
const permissions = new PermissionsBitField(0n);
console.log(permissions.toArray());import discord permissions = discord.Permissions(0) print([name for name, granted in permissions if granted])
This number is small enough for plain JavaScript numbers, but bits 31 and up aren't: 1 << 40 gives 256, which is Priority Speaker. Read every permissions value as a string or a BigInt.
What a member or bot can actually do in a channel
Enter the numbers from the server and the channel. The tool applies them in the order Discord documents and shows which step decided each permission.
Enter a number above, or try a setup, to see the result.
What this doesn't cover
- Role hierarchy. A bot can only act on members and roles below its highest role, whatever its permissions say.
- Threads. They inherit from the parent channel, except that posting needs Send Messages in Threads.
- Category sync. Enter the overwrites the channel has now, because a synced channel holds the same ones as its category.
- Other implicit rules. Discord says more cases may exist and that losing Connect removes other permissions such as Manage Channels, but it only names that one.
- Being connected to a voice channel, which Discord also counts as being able to view it.
- Slash command permissions, which are set separately from these numbers.
- The two-factor requirement on elevated permissions in servers that turn it on.
Compare two numbers
Paste the old value and the new one to see what changed, such as after a bot update or a role edit.
What this Discord permissions calculator answers
What a number grants, what changed between two numbers, and what someone can really do in a channel.
Discord permissions numbers: FAQ
It's one whole number that holds a full set of permissions, with one bit for each permission. Add Reactions is 1 << 6, or 64. Send Messages is 1 << 11, or 2048. Combine them with bitwise OR and you get 2112, which means those two permissions and nothing else.
Discord's API sends permissions as strings, including the allow and deny fields on overwrites. Its docs call the value a variable-length integer and recommend reading it with a big integer library. In JavaScript that matters for two reasons. Bitwise operators on plain numbers only keep 32 bits, so 1 << 40 gives 256 instead of Timeout Members. And plain numbers are only exact up to 9007199254740991, which is 2^53 - 1. Today's highest flag is bit 52, so current values still fit, but one flag at bit 53 would go past it. Use BigInt(value) and you avoid both problems.
Use bitwise AND with that permission's value. In Python, (permissions & 0x800) == 0x800 is true when Send Messages is set. In JavaScript, use (BigInt(permissions) & (1n << 11n)) !== 0n. That only reads the number itself. Administrator grants every permission even when the other bits are off, and channel overwrites can change the answer inside a channel.
Roles only add up: a member's server permissions are @everyone plus every role they hold, so one role can't take away what another gives. Administrator on any of those roles grants everything, and so does owning the server. In a channel, one role's allow beats another role's deny, whatever order the roles are in, and a member overwrite beats both. Enter the numbers in the effective permissions section and the step list shows which one gave it.
In a fixed order. Discord starts from the server permissions, then applies the @everyone overwrite's deny and its allow. Next it merges the overwrites of all the member's roles into one and applies that deny and allow. The member's own overwrite comes last, deny first and then allow, so it has the final word. Anyone with Administrator, or the server owner, skips all of this.
It works from the numbers you enter, so it can't see your server. It doesn't model role hierarchy, which stops a bot acting on anyone at or above its highest role. It doesn't work out threads, category sync or slash command permissions. Discord also says there may be other implicit rules, so a permission marked Yes can still fail in the app.
No. The calculator only does arithmetic on the numbers you type, so it needs no token, no login and no client ID. It makes no requests with them, and they aren't sent to Discord or Redact.
Try Redact for Free
We are frequently adding support to other social network services. You can receive direct updates from us in Redact's Discord Channel.
