For everyone · 3 min read
Channel overwrites and why Administrator ignores them
How Discord resolves a bot's effective permissions in a channel.
A bot's effective permissions in a channel are calculated in layers. Server owners use the later layers to keep bots out of places they should not be.
- Start with the permissions of @everyone plus every role the bot has.
- If the result includes Administrator, stop: the bot has everything, everywhere.
- Apply the channel's @everyone overwrite (deny, then allow).
- Apply role overwrites for the bot's roles (all denies, then all allows).
- Apply a member overwrite for the bot itself, if any.
Step 2 is the problem
Because Administrator is checked before overwrites, a server owner cannot hide #staff-chat or #tickets from a bot that has it.
For server owners
If you must add a bot that asks for Administrator, uncheck it on the invite screen and grant the permissions it actually uses instead. If the bot breaks, ask the developer which permission is missing.