Discord bot permissions calculator
Tick what your bot needs to be able to do (each permission with a plain explanation of what it allows) and paste your application ID: out come the permissions number and the link to add it to your server. It works the other way round too: paste a number or an invite link and we'll tell you which permissions it grants.
Already have a number or a link?
Tick your bot's permissions
Shortcuts (added to whatever you've already ticked):
General server permissions 10
Members 6
Text channels 18
Voice and stage channels 12
Apps 3
Events 2
Advanced 1
Your permissions number
In hexadecimal: 0x0000000000000000
No permissions ticked: the bot would join without a role of its own and could only do what the @everyone role allows.
The invite link
Paste your application ID and the link to add the bot to your server shows up here.
Nothing you type leaves your browser.
What the permissions number is
Discord stores a bot's permissions (and any role's) in a single number. Each permission is a power of two: Add Reactions is 64, Send Messages 2048, Administrator 8. The number is the sum of the ones you choose, so 64 + 2048 = 2112 means “reactions and messages”, and nothing else. It's what goes after permissions= in the invite link, and what discord.js or discord.py give you back when you ask about someone's permissions.
The newer permissions have huge numbers (Bypass Slowmode is already over four quadrillion). If you work it out in your code, use your library's names (PermissionFlagsBits in discord.js, discord.Permissions in discord.py) instead of typing the numbers by hand: in JavaScript, regular numbers lose the high permissions when you combine them, which is why discord.js gives them as BigInt.
Why not just give it Administrator
It's the easiest option and what plenty of tutorials do, but with Administrator the bot can do anything: delete channels, ban anyone below it or change roles. If the token ever leaks (pushed to GitHub by accident, a computer with a virus), whoever has it controls your whole server.
With just the permissions it needs, a bug in your code or a stolen token does far less damage. And it builds trust: whoever adds a bot sees the list of what it asks for before accepting, and a short list gets accepted more than an “Administrator”. Start with one of the shortcuts above and add what your bot really uses.
What the applications.commands scope is
The scope says what you're asking access for. bot is the one that puts the bot on the server (without it, the link adds nothing), and applications.commands lets your app register its slash commands (/hello, /ban) on that server. Today Discord already includes it when you ask for bot, but adding it does no harm and it's what the discord.js and discord.py tutorials ask for: that's why it's ticked. If your bot has no slash commands, you can untick it.
Where to find the application ID
- Go to the Discord Developer Portal: discord.com/developers/applications.
- Click your application (the bot).
- Under “General Information”, the “Application ID” number: click “Copy”. It's the same as the “Client ID” in the “OAuth2” tab.
Don't confuse the ID with the token (“Bot” tab) or the “Client Secret”: those two are passwords and don't get pasted anywhere. If you paste something here that looks like a token, we warn you instead of putting it in a link. The link that comes out can be opened by anyone with permission to manage a server; if your bot is just for you, untick “Public Bot” in the “Bot” tab and only you will be able to add it.
Haven't built the bot yet? We have step-by-step guides for a Discord bot in Python and one in JavaScript (in Spanish); when you get to inviting it, come back here for the link.
Frequently asked questions
What does permissions=8 mean in an invite link?
That the bot asks for Administrator: permission 8 is that one, and it contains all the others. If the bot is yours, you can almost certainly swap it for the few it really uses.
And permissions=0?
That the bot joins without permissions of its own: no role with permissions is created for it, and it can only do what the @everyone role allows in each channel. Useful if you want to grant them yourself by hand later.
Which permissions does a music bot need?
View Channels, plus Connect and Speak in voice channels; and Send Messages and Embed Links if it posts what's playing. That's the “Music” shortcut above. Priority Speaker or Move Members won't make it sound better: it doesn't need them.
My bot has the permission but still can't kick someone or give a role. Why?
Because of the role hierarchy: a bot can only kick, ban or change the roles of people whose roles are below its own highest role. In Server Settings → Roles, move the bot's role above the ones it has to manage. And a specific channel's permissions can take away what the role gives.
How do I change the permissions of a bot that's already in?
When it joins, Discord creates a role with its name and the permissions from the link. You can change that role's permissions in Server Settings → Roles, or give it other roles, like any member.
Do I need to tick “Use Application Commands” for slash commands to work?
No. That permission is for someone to use apps' commands. What makes your bot's commands appear on the server is the applications.commands scope in the link.
And where does it run?
A bot only responds while its program is running: if it's on your computer, it goes off when you turn the computer off. At NapNodes you get a free Discord bot, no card needed: 256 MB of memory, always on, and every 7 days you renew it with one click in the panel. It works for Node.js (discord.js) or Python (discord.py): you choose in Settings → Language. If it falls short, there are Mini and Plus plans, with nothing to renew. How to upload the code is in hosting for your Discord bot (in Spanish).
More free tools
Is my Minecraft server online?
Type a Minecraft server address and see whether it responds, how many are playing, its version and its MOTD.
Is my Valheim server online?
Type a Valheim server's address and port and see whether it responds, how many are playing and its name.
Is my Project Zomboid server online?
Type a Project Zomboid server's address and port and see whether it responds, how many are playing and its name.
Minecraft RAM calculator
How many GB your Minecraft server needs for its plugins or mods, the players online at once and the view distance.
How much RAM do I need? (every game)
Minecraft, Hytale, Project Zomboid, Valheim or a Discord bot: pick the game, players and mods, and see the plan that fits.
server.properties editor
Paste your server.properties, change each option with a plain-English explanation and download it. It flags the ones that no longer work.
MOTD generator
The server list message with colours and styles, a live preview and the line ready for server.properties.
Chunky pre-generation calculator
How much disk and time pre-generating your world with Chunky takes for a given radius, with the console commands ready.
Nether portal calculator
Convert Overworld coordinates to the Nether and back to link portals without duplicates. Paste your F3 line.
Project Zomboid mod list
Paste Workshop links and Mod IDs and get WorkshopItems= and Mods= written correctly, with the Build 42 backslash.
Project Zomboid settings editor
Paste your .ini and SandboxVars.lua (or start from scratch), change their 400+ options with a search box, and download them.
Minecraft UUID lookup
Type a Minecraft Java username and get its UUID, the offline one and the lines for whitelist.json and ops.json.
/give command generator
Items with enchantments, a coloured name and lore: the /give command written right for your Minecraft version.
/summon command generator
Mobs with a coloured name, more health, another size, gear or standing still: the /summon command written right for your version.
Server name generator
Name ideas for your server by game and style, with your own word if you like, and what its address would look like.
/tellraw and /title generator
Messages with colours, bold and click actions in chat or across the screen: the /tellraw or /title command ready to copy.
Which Java do I need?
Type your Minecraft version or paste the Java error and we'll tell you which Java your server or your game needs.
Gradient text generator
Type some text, pick the colours and get the gradient in “&#”, MiniMessage or “&x” for chat, the MOTD or plugins.
Server icon maker
Upload an image (or type a few letters) and get the 64×64 server-icon.png Minecraft asks for, ready for Files.
Slime chunk finder
Enter the seed and your coordinates and see the slime chunks nearest to you on a map of your Minecraft Java world.
SteamID64 finder
Paste a Steam link, a username or a STEAM_0 ID and get every form of the ID and the adminlist.txt line for Valheim.
What does it cost in electricity?
What it costs in electricity to keep the server running on your PC at home, side by side with a plan and the free server.
start.bat generator
The start.bat or start.sh for your Minecraft server with the RAM set right and Aikar's flags, ready to download.