Skip to main content
Discord’s permission system trips up almost everyone running a server, because it isn’t just “give a role a permission”, role hierarchy, channel overrides, and per-member overrides all stack together, and how they interact decides what a member can actually do. This guide walks through exactly how Discord’s roles and permissions system resolves, straight to the point, with worked examples for the parts that usually cause confusion. Discord calls a server a guild internally. This guide uses “server” throughout, matching Discord’s own app, but the two terms mean the same thing. Jump to a section:

How do Discord role permissions work?

  • @everyone role: when the @everyone role has a permission, every member in the server has it, unless a channel override denies it for them.
For example: @everyone having View Channels gives every member the ability to see the server’s channels by default.
  • Per-role permissions: work the same way as @everyone. If @everyone already has a permission, you don’t need to also grant it to another role. Though granting it anyway wouldn’t cause any harm.
  • A member has a given permission as long as at least one of their roles grants it.

Role hierarchy

Role hierarchy, also known as role position, plays a crucial part in Discord permissions. See Discord’s own permission hierarchy explainer for the short version. Here’s the long version, with an example.
  • If any of Member A’s roles has Ban Members permission, and their highest role is above Member B’s highest role, Member A can ban Member B.
  • It doesn’t matter which specific role grants the permission. Only whether Member A’s highest role outranks Member B’s highest role.
  • Example:
    • Server roles, ranked from highest to lowest: 0. Developer (Permissions: Ban Members only)
      1. Admin (Permissions: Administrator)
      2. Normal (Permissions: no permissions, or anything except Ban Members)
      3. Moderator (Permissions: no permissions)
      4. Support (Permissions: Ban Members)
      5. Member (Permissions: no permissions)
      6. @everyone (Permissions: no permissions)
    • Member A has the Support role.
    • Member B has the Moderator role.
    • Even though Support has the ban permission and Moderator doesn’t, Member A cannot ban Member B, because Support is ranked lower than Moderator.
    • Now flip it: if Member B only had the Member role instead of Moderator, Member A could ban them, because Support (Member A’s highest role) now outranks Member (Member B’s highest role). The permission still comes from Support. What changed is just where each member’s highest role sits in the ranking.
    • Now if Member B had the Moderator role and Member A had Support and Normal, even though Normal doesn’t have Ban Members permission, Member A can still ban Member B, because their highest role is above Member B’s.
    • This shows the permission and the highest role don’t need to be the same role. Discord only checks Member A’s highest role position, not which specific role granted the permission.
    • Hierarchy also applies to Administrator. If Member A had the Developer role and Member B had the Admin role, Member A would be able to ban Member B, but not the other way around.

How do Discord channel permissions and overrides work?

Discord has two types of channel overrides: role overrides and member overrides. This section covers both, plus how they interact with role hierarchy and @everyone. See Discord’s own permissions setup FAQ for their version. Role overrides
  • Role overrides: as covered above, a role with View Channels can see every channel by default, unless a specific channel overrides that.
  • Channel permissions: a member with View Channels in a given channel will be able to view that channel.
  • Channel and role overrides: if a role has View Channels allowed, but that role’s channel override denies it for a specific channel, members with only that role can’t view that channel. With a few exceptions covered below.
  • Channel permissions hierarchy: if a member has two roles, and one role has View Channels denied for that channel while the other has it allowed, the member can view that channel. Allow wins over deny when comparing role overrides against each other.
  • This does not mean allow always wins overall. Role overrides take priority over @everyone’s setting, regardless of which way they go:
    • If @everyone is denied View Channels, but one of the member’s roles allows it, the member can view the channel. The role’s allow overrides @everyone’s deny.
    • If @everyone is allowed View Channels, but one of the member’s roles denies it (and no other role explicitly allows it), the member cannot view the channel. The role’s deny overrides @everyone’s allow.
  • Neutral permissions: each permission in a channel override can be set to one of three states. Allow (green check), Deny (red X), or Neutral (grey slash). Neutral means this role or member has no explicit setting for that permission in this channel. It simply falls through to the next layer in the hierarchy (role override → role’s base permission → @everyone, same as a role’s base permission) instead of forcing an allow or deny.
    • Neutral is the default state for every permission on every channel override, until someone explicitly clicks Allow or Deny.
    • Because neutral doesn’t “win” or “lose” against anything, only explicit Allow/Deny settings affect the outcome. A neutral role override is effectively invisible in the hierarchy chain.
  • Member-management permissions can’t be set per channel: permissions that manage members at the server level, like Kick Members, Ban Members, Manage Nicknames, Manage Roles, Manage Server, and View Audit Log, don’t appear in the channel permissions editor at all. These only exist as role-level permissions and always apply server-wide. They can’t be allowed or denied for a specific channel, since actions like kicking or banning aren’t tied to any single channel.
Member overrides
  • Member overrides: as covered above for roles and channels, permissions for a channel are checked in this order: channel overrides for the member → channel overrides for the member’s roles → the member’s role permissions. Discord checks each layer in turn and stops at the first one with an explicit Allow or Deny set for that permission.
  • A member override is a permission set directly on one specific member for one specific channel, separate from any role. Since it’s checked first, it overrides everything below it, including channel overrides for roles.
    • If a member has an explicit Deny set on a permission for a channel, they will not have that permission there, even if a channel override for one of their roles allows it.
    • If a member has an explicit Allow set on a permission for a channel, they will have that permission there, even if a channel override for one of their roles denies it.
    • Like role overrides, a member override can also be left Neutral for any permission it doesn’t need to touch. Discord then moves on to check the next layer down (channel overrides for roles).
  • Example: Member A has the Support role, which is allowed View Channel in #staff-chat via a channel override for that role. But #staff-chat also has a channel override for Member A specifically that denies View Channel. Member A will not be able to view #staff-chat, because Discord checks the member override first and stops there.

The Administrator permission

  • Administrator: the most powerful permission in Discord. A member with Administrator on any of their roles bypasses every permission check entirely. Channel overrides, role overrides, and even @everyone denies don’t matter at all.
    • Administrator overrides the entire hierarchy just covered. It doesn’t just win at the top like a member override, it skips the check completely. Discord doesn’t even look at channel overrides for a member with Administrator.
    • This means a channel override that denies Administrator members View Channel (whether a role override or a member override) has no effect. Administrators can see and access every channel, always.
    • Administrator also implicitly grants every other permission (Ban Members, Kick Members, Manage Roles, Manage Server, etc.), even if none of those are individually enabled on the role.
  • What Administrator does not bypass: role position/hierarchy still applies for actions between members. An Administrator role still needs to be positioned above a target member’s highest role to kick, ban, or manage that member. Administrator doesn’t let you act on someone with an equal or higher role than yours.
    • The same applies role-to-role: an Administrator role can’t edit, delete, or reorder a role positioned above it. Even though it technically “has” every permission, hierarchy position still gates management actions.
  • Practical note: because Administrator can’t be restricted by channel overrides, it should only be given to fully trusted roles/members. There’s no way to hide a specific channel from an Administrator, even by accident-proofing it with overrides. The only way to limit an Administrator is to remove the permission itself.

Server owner permissions

The server owner sits above the entire permission system, including Administrator. Ownership isn’t granted by any role or permission, it’s a separate, single flag on the server itself.
  • The owner bypasses every permission check, the same as Administrator, but also bypasses role hierarchy itself. There’s no role position “above” the owner, because the owner isn’t ranked in the hierarchy at all.
  • The owner can be managed by no one, regardless of roles or permissions. Even a member whose highest role sits above the owner’s highest role cannot kick, ban, timeout, or change the nickname of the owner. Role position comparisons simply don’t apply to the owner.
  • The owner is the only member who can delete the entire server, and the only action requiring ownership specifically (not just Administrator) is transferring ownership to another member.
  • Ownership can only change by the current owner explicitly transferring it to someone else. It cannot be taken, voted away, or reassigned by any permission, bot, or role setup.

Every Discord permission explained

Role permissions:
  • Manage Permissions (channel-level): in a channel’s permission editor, this appears as its own toggle (separate from the server-wide Manage Roles). It lets a member change that specific channel’s permissions, but it can only ever be granted to a role or member by an Administrator or the server owner. It cannot be granted by someone who merely has Manage Roles or Manage Channels without also being an Administrator or the owner.

If you’re setting these permissions up for a support workflow specifically, better tickets builds on all of this directly: per-button role permissions for claim, unclaim, close and voice-channel requests from each ticket category’s settings, and server-wide command locking by role, channel or Discord permission from command permissions.