Discord Permissions Calculator
Tick the permissions your bot or role needs to get the permission integer, ready-to-use discord.js code and a bot invite link. Paste an integer to see which permissions it contains.
Permissions
9 / 51 selectedGeneral server
Membership
Text channels
Voice channels
Apps and events
Advanced
Permission integer
Edit or paste an integer to decode it.
discord.js code
const { PermissionFlagsBits, PermissionsBitField } = require('discord.js');
const permissions = new PermissionsBitField([
PermissionFlagsBits.ViewChannel,
PermissionFlagsBits.SendMessages,
PermissionFlagsBits.SendMessagesInThreads,
PermissionFlagsBits.EmbedLinks,
PermissionFlagsBits.AttachFiles,
PermissionFlagsBits.AddReactions,
PermissionFlagsBits.UseExternalEmojis,
PermissionFlagsBits.ReadMessageHistory,
PermissionFlagsBits.UseApplicationCommands,
]);
// permissions.bitfield === 277025770560nBot invite link
Developer Portal → your app → General Information → Application ID.
Enter a valid application ID and pick at least one scope to get the link.
How to calculate Discord permissions
- 1
Start from a preset
Pick Basic, Moderation or Music bot, or start from None.
- 2
Adjust permissions
Tick or untick individual permissions, or search for the one you need.
- 3
Copy the result
Copy the permission integer or the discord.js code for your bot.
- 4
Build the invite
Add your application ID to get an invite link with those permissions.
All Discord permission flags
Each permission is a single bit. The integer value is 2 raised to the bit position, and a permission set is the sum of its values.
| General server | Flag (bit) |
|---|---|
| View Channels | ViewChannel (1 << 10) |
| Manage Channels | ManageChannels (1 << 4) |
| Manage Roles | ManageRoles (1 << 28) |
| Create Expressions | CreateGuildExpressions (1 << 43) |
| Manage Expressions | ManageGuildExpressions (1 << 30) |
| View Audit Log | ViewAuditLog (1 << 7) |
| View Server Insights | ViewGuildInsights (1 << 19) |
| View Server Subscription Insights | ViewCreatorMonetizationAnalytics (1 << 41) |
| Manage Webhooks | ManageWebhooks (1 << 29) |
| Manage Server | ManageGuild (1 << 5) |
| Membership | Flag (bit) |
|---|---|
| Create Invite | CreateInstantInvite (1 << 0) |
| Change Nickname | ChangeNickname (1 << 26) |
| Manage Nicknames | ManageNicknames (1 << 27) |
| Kick, Approve and Reject Members | KickMembers (1 << 1) |
| Ban Members | BanMembers (1 << 2) |
| Timeout Members | ModerateMembers (1 << 40) |
| Text channels | Flag (bit) |
|---|---|
| Send Messages and Create Posts | SendMessages (1 << 11) |
| Send Messages in Threads and Posts | SendMessagesInThreads (1 << 38) |
| Create Public Threads | CreatePublicThreads (1 << 35) |
| Create Private Threads | CreatePrivateThreads (1 << 36) |
| Embed Links | EmbedLinks (1 << 14) |
| Attach Files | AttachFiles (1 << 15) |
| Add Reactions | AddReactions (1 << 6) |
| Use External Emoji | UseExternalEmojis (1 << 18) |
| Use External Stickers | UseExternalStickers (1 << 37) |
| Mention @everyone, @here and All Roles | MentionEveryone (1 << 17) |
| Manage Messages | ManageMessages (1 << 13) |
| Pin Messages | PinMessages (1 << 51) |
| Bypass Slowmode | BypassSlowmode (1 << 52) |
| Manage Threads and Posts | ManageThreads (1 << 34) |
| Read Message History | ReadMessageHistory (1 << 16) |
| Send Text-to-Speech Messages | SendTTSMessages (1 << 12) |
| Send Voice Messages | SendVoiceMessages (1 << 46) |
| Create Polls | SendPolls (1 << 49) |
| Voice channels | Flag (bit) |
|---|---|
| Connect | Connect (1 << 20) |
| Speak | Speak (1 << 21) |
| Video | Stream (1 << 9) |
| Use Activities | UseEmbeddedActivities (1 << 39) |
| Use Soundboard | UseSoundboard (1 << 42) |
| Use External Sounds | UseExternalSounds (1 << 45) |
| Use Voice Activity | UseVAD (1 << 25) |
| Priority Speaker | PrioritySpeaker (1 << 8) |
| Mute Members | MuteMembers (1 << 22) |
| Deafen Members | DeafenMembers (1 << 23) |
| Move Members | MoveMembers (1 << 24) |
| Request to Speak | RequestToSpeak (1 << 32) |
| Apps and events | Flag (bit) |
|---|---|
| Use Application Commands | UseApplicationCommands (1 << 31) |
| Use External Apps | UseExternalApps (1 << 50) |
| Create Events | CreateEvents (1 << 44) |
| Manage Events | ManageEvents (1 << 33) |
| Advanced | Flag (bit) |
|---|---|
| Administrator | Administrator (1 << 3) |
Frequently asked questions
What is a Discord permission integer?
Discord stores permissions as a bitfield: each permission is one bit, and the integer is the sum of the bits you enable. Bots, invite links and the API use this number to describe exactly which permissions are granted.
How do I create a bot invite link?
Select the permissions your bot needs, enter your application ID from the Discord Developer Portal, keep the bot and applications.commands scopes checked, and copy the generated link. Anyone with Manage Server can use it to add the bot.
Which permissions does my bot need?
Only the ones it uses. Most bots need View Channels, Send Messages, Embed Links and Read Message History. Moderation bots add Kick, Ban, Timeout and Manage Messages; music bots add Connect and Speak. Avoid Administrator unless it is truly required.
Why is Administrator risky?
Administrator grants every permission and ignores channel overrides. If the bot’s token leaks, an attacker gets full control of the server, so specific permissions are always safer.
What does the 2FA badge mean?
When a server requires two-factor authentication for moderation, members and bot owners need 2FA enabled on their account to use these permissions.
How do I check permissions in discord.js?
Use PermissionFlagsBits with PermissionsBitField, for example member.permissions.has(PermissionFlagsBits.BanMembers). The code panel on this page lists the flags for your selection.
More free Discord tools
Let Strom Bot do it for you
Strom Bot handles moderation, welcome messages, leveling, tickets and social feeds with rich embeds. Browse the bot commands, read the guides or see what Premium adds.