Discord Permission Calculator
Tick permissions → live integer • Decode any value • Build a bot invite URL
Paste this into a bot library, API call, or role config.
Quick role presets
Paste any permissions integer to tick the matching boxes.
Add your bot Client ID to build an authorize URL with the selected permissions.
⚠️ Administrator overrides every other permission and bypasses all channel-level overrides. Grant it only to fully trusted roles.
From checkboxes to a permissions integer
Discord stores a role's powers as one big number, not a list. This calculator turns the familiar permission checkboxes into that number and back again. Here is how the bitfield works, how presets speed up common roles, how the integer plugs into a bot invite, and why Administrator is in a class of its own.
Each permission is a single bit
Discord does not store a role's powers as a checklist — it stores one integer. Every permission owns a fixed bit position: Create Invite is bit 0 (value 1), Kick Members is bit 1 (value 2), Ban Members is bit 2 (value 4), Administrator is bit 3 (value 8), and so on up past bit 50 today. A permission is granted when its bit is set to 1. To combine several, you take the bitwise OR of their values, which for non-overlapping bits is the same as adding them: Kick (2) plus Ban (4) plus Manage Messages (8192) gives the integer 8198.
That is exactly what the checkboxes above do. Tick a permission and its bit value is OR-ed into the running total shown in the output field; untick it and the bit clears. Because the flags now exceed what a 32-bit number can hold, the value is assembled with BigInt so nothing overflows at high bit positions. The reverse decoder reads a pasted integer bit by bit and re-checks the matching boxes, which makes it a fast way to audit a role or a mystery number from an API response.
Start from a sensible baseline
Most servers reuse the same handful of role shapes, so the presets load a vetted set of permissions in one click. Administrator is the single all-powerful switch. Moderator gathers the enforcement tools — Kick, Ban, Timeout, Manage Messages and Threads, plus Move, Mute, and Deafen in voice — without the god-mode of Administrator. Member is a friendly default for verified humans: talk, post, react, use external emoji, join voice, and create threads. Read-only strips things back to viewing channels and history.
Presets are a starting point, not a rule. After loading one, tick or untick individual permissions to fit your server, then copy the resulting integer. This mirrors Discord's own recommendation to give each role the least privilege it needs — start narrow, add deliberately, and keep dangerous permissions like Manage Server, Manage Roles, and Administrator on as few roles as possible.
The integer rides in the invite link
When you add a bot to a server, the permissions it requests are baked into its OAuth2 authorize URL as a permissions query parameter. The builder above takes your bot's Client ID (its Application ID from the Developer Portal) and the permissions you tick, then assembles the full link: discord.com/oauth2/authorize with client_id, a scope of bot plus applications.commands, and the calculated permissions integer. Share that link with a server owner and Discord pre-selects exactly those permissions on the bot's managed role.
Requesting only what the bot needs is both good security and good UX — server owners are far more likely to approve a bot asking for Send Messages and Embed Links than one demanding Administrator. If your bot only posts messages, the integer stays small and readable. You can always paste an existing bot's permission number into the decoder to see precisely what it asked for before you approve it.
Why Administrator sits apart
Administrator (bit 3, value 8) is not just another permission — it is an override of the entire system. A role with it is treated as having every permission, and it ignores channel-level allow/deny overrides completely. A private channel that denies View Channel to everyone is still fully visible to an admin. That power is why the calculator flags it: granting Administrator to a public or self-assignable role is one of the most common ways a server gets compromised.
For everyone below the owner, prefer explicit permissions. A moderator does not need Administrator to remove rule-breakers; Kick, Ban, Timeout, and Manage Messages cover it while keeping them out of server settings and role management. Remember too that the integer this tool produces is the base role permission — the real access in any given channel is that base layered with the channel's own overrides, and only Administrator escapes that layering.
Frequently Asked Questions
What is a Discord permission calculator and how do I use it?
A Discord permission calculator turns the on/off permission checkboxes of a role into the single number Discord actually stores, called the permissions integer. Tick the permissions you want a role or bot to have and the calculator ORs their bit values together into one integer you can paste into a bot library, an API call, or a role configuration. It also runs in reverse — paste an existing integer and the matching boxes light up so you can audit what a role can already do.
What is the Discord permissions integer and why is it so large?
Every Discord permission is a single bit in a bitfield, and the permissions integer is those bits added together. Because Discord now has more than fifty distinct permissions, the flags run past bit 50, so a full-permission integer is a number with sixteen or more digits. That is why the value is computed with BigInt rather than a normal number — a standard 32-bit integer cannot hold flags above bit 30 without overflowing, which is a common source of wrong values in home-grown calculators.
What does the Administrator permission actually do?
Administrator is the master switch. A role with Administrator is granted every other permission automatically and, critically, bypasses all channel-level permission overrides — so a channel set to hide messages from everyone will still be fully visible to an admin. Its integer value is 8 (bit 3). Because it overrides everything, you should grant it only to roles you completely trust; for moderators, prefer an explicit set of permissions like Kick, Ban, and Manage Messages instead.
How do I use the permissions integer in a bot invite link?
A bot's invite (OAuth2 authorize) URL carries the requested permissions as a query parameter: https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot&permissions=INTEGER. Paste your application's Client ID into the builder above, tick the permissions your bot needs, and it assembles the full URL with the correct integer. When a server owner opens that link, Discord pre-checks exactly those permissions on the bot's role, following the principle of least privilege.
What is the difference between server permissions and channel overrides?
Server (guild) permissions are the base set granted by a member's roles and apply everywhere. Channel overrides then add or remove specific permissions on a single channel or category, layering on top of the role permissions. This calculator produces the base role integer; the final access a member has in a given channel is that base combined with any allow/deny overrides on the channel — except for Administrator, which ignores overrides entirely.