HomeRoles and permissions
Guide

How to make roles in a Discord server and set permissions

Creating a role takes a minute. Getting the order and permissions right is what stops raids, broken bots and moderators who can't moderate.

Quick answer: open Server Settings → Roles, select Create Role, give it a name and colour, set its permissions in the Permissions tab and press Save Changes. Assign it to people from the Members tab. Then drag roles into the right order, because a member (or bot) can only manage roles that sit below their own highest role.

Create and assign a role

  1. Select the server name in the top-left and open Server Settings.
  2. Go to Roles and select Create Role. New roles are added at the bottom of the list, just above @everyone.
  3. Name the role and pick a Role Color. A member shows the colour of their highest role.
  4. Open the Permissions tab and switch on only what the role needs. New roles start from the same permissions as @everyone, so check what @everyone already allows first.
  5. Press Save Changes.
  6. Assign it in Server Settings → Members by selecting the + next to a member, or from a member's profile.
  7. Drag the role up or down the Roles list to set its place in the hierarchy.

The steps are the same in the mobile app, but a few bulk tools are desktop-only. For example, the Clear Role Permissions button doesn't exist on mobile, so you untick permissions one by one there.

How the role hierarchy works

Roles run top-down. Discord's rules for who can do what:

  • Members can only affect people whose highest role is lower than theirs. A moderator can't kick, ban or rename someone with an equal or higher role, even with the permission switched on.
  • With Manage Roles, a member can create and edit roles below their own, and can only grant permissions they have themselves.
  • Administrator grants every permission and ignores all channel restrictions. Give it to as few people as possible, and to bots only if the bot truly needs it.
The most common bug I fix: a reaction-role or verification bot "doesn't work" because its own role sits below the roles it's meant to hand out. Move the bot's role above them and it starts working.

A starting structure that works for most community servers, top to bottom:

Role order · top to bottom
Owner (you, not a role)
Admin            – trusted co-owners. Avoid the Administrator permission if you can.
Moderator        – timeouts, kicks, bans, message management
Support          – sees and answers tickets
Bots             – sits above every role a bot needs to hand out
Event Host       – can manage events and post in event channels
Verified         – full member access after verification
Ping roles       – Announcements, Events, Giveaways (no permissions at all)
@everyone        – unverified: sees welcome, rules and verify only

Which permissions each role needs

Server-wide permissions are the sum of everything a member's roles allow, plus @everyone. Keep the risky ones on as few roles as possible.

Permission@everyone (unverified)VerifiedSupportModeratorAdmin
View ChannelsOnly start-here channels✓✓✓✓
Send MessagesVerify channel only✓✓✓✓
Embed links / attach files✗✓✓✓✓
Mention @everyone✗✗✗✗✓
Manage Messages✗✗Ticket channels✓✓
Timeout Members✗✗✗✓✓
Kick / Ban Members✗✗✗✓✓
Manage Channels✗✗✗✗✓
Manage Roles✗✗✗✗✓
Manage Server✗✗✗✗✓
Administrator✗✗✗✗Owner's call

Ping roles (Announcements, Events, Giveaways) get no permissions. They exist only so people can be mentioned.

Channel permissions and private channels

Channel settings start from the server-wide permissions and then apply overrides in this order. Later steps win:

OrderWhat Discord applies
1Denies for @everyone on the channel
2Allows for @everyone on the channel
3All denies from the member's roles, at once
4All allows from the member's roles, at once
5Denies set for that specific member
6Allows set for that specific member

That's why one role allowing View Channel beats another role denying it: role allows are applied after role denies.

Make a channel visible to one role only

  1. Right-click the channel and choose Edit Channel → Permissions.
  2. Turn on Private Channel. Discord removes View Channel from @everyone for you.
  3. Select Add members or roles and add the roles that should see it, for example Moderator and Admin for a staff chat.

To lock a whole server so new joiners see nothing until they get a role, clear the @everyone permissions and give access through a member role. The setup guide covers that.

Mistakes that break permissions

  • Bot role too low. Bots follow the same hierarchy as people.
  • Channel out of sync with its category. A channel you edited separately stops following the category's permissions. Check both when something looks wrong.
  • Too much on @everyone. Every new role inherits those defaults, and every unverified joiner has them.
  • Administrator handed out casually. It bypasses every channel lock, including staff and log channels.
  • Ping roles with permissions. Self-assignable roles should never grant anything except a mention.

Check it before members arrive

Discord has a View Server As Role option in role settings that shows the server as a given role sees it. I still finish every build by joining with a fresh alt account, because that also catches verification and onboarding steps a role preview skips.

Sources

Checked on 12 November 2026. Discord changes menus from time to time, so if a step looks different, the linked article is the reference.