Understanding Discord — Permission Overwrites

One of the most daunting tasks as a new community builder on Discord is learning how the permission system really works. When initially creating roles and channels, setting up permissions feels quite simple at first, and this isn’t far from the truth. However, there is a lack of information on the different levels of permissions, and what takes priority when determining what a user can and cannot do.

In this article, I will try to address this lack of knowledge by going over these permission levels, the differences between Server Settings and Channel Settings, and how to properly set up an example “Mute” role.

Disclaimer: The contents of this article is based off the PC/Mac version, but the basics on setting up permissions and what permission levels apply to all versions of Discord.

I recommend that before you jump into this article please read over our Roles & Permissions and Channels & Categories articles. You’ll need to have basic knowledge on creating roles, channels, and categories to be able to work with Permission Overwrites, which these articles cover.

What a Permission Overwrite?

Before you run headlong into changing permissions, it’s best to understand what it means when I say, “Permission Overwrites”. In general, overwrite means to replace something with something else. In the case of a Discord server, one permission will replace another according to the individual settings of the server, categories, and channels. Permissions are first set by role in Server Settings, and from there set on channels and categories. However, this is not the order in which Discord determines what a user can and cannot do, and that’s where the different permission levels come in.

Terminology used in this article

The following is an explanation of some of the terms you will see in this article. These are by no means the official terms used by Discord; however, some of them are common among other Discord community builders.

  • Permission Level — Determines the priority of settings (server, category, or channel) in which the permissions are applied. Also includes role versus user settings which we will cover later in the article.
  • Server Level (a.k.a. Guild Level) — The role settings found in the server menu.
  • Category and Channel Level — The settings on the permission tab of a category or channel settings page. Includes role and user settings.
  • Member-specific— The permissions given per user on channel or category settings.
  • Permission Overwrites— The permission that replaces another. Also known as Permission Overrides as the two terms are interchangeable when it comes to Discord.

Permission Levels

Working with permissions requires a clear understanding of how the Discord client decides what the user has access to. This is where Permission Levels comes into play. The Permission Level determines the priority level of a certain permission setting and if it overwrites another. This can seem extremely complicated at first, but it’s a simple matter of remembering the priority order.

Furthermore, permissions on the channel and category level are additive when setting them by role. Role Hierarchy only applies at the Server Level. This means that the order of the roles on the permissions tab of channels does not hold any priority. Role Hierarchy is purely for Server Settings, controlling what can and cannot be done to another user, and display order on the Sidebar.

Next, I’ll explain each Permission Level in more detail before covering the priority order of them.

  • Server Level (a.k.a. Guild Level)— All permission settings that are set under the Roles tab of the Server Settings. These permissions include a lot of management settings that you will not get on categories and channels. The Role Hierarchy determines the order of importance of permissions at this level. This further controls what actions users in the server can do to others (give roles, change role settings, kick, ban, change nicknames).
  • Category and Channel Level — All permission settings that are set by role or user under the Permissions tab of a category or channel settings page. Order of roles and users does not matter here. All permissions are additive, which means the Discord Client counts all the permissions together.
  • Member-specific — This is the permissions set per member in the channel and category settings. This means that instead of an entire role, you can give specific members of your server access to the content within a channel. These permissions always overwrite everything else. For instance, you can deny the Read Messages permission to a role a user has but also allow it to them through a user-specific overwrite. The user-specific setting will “overwrite” the role setting, allowing the user to see the channel. The inverse is also true.

From the above, you can see there are multiple levels to how permissions are determined and that each level has side-effects. Now, I’ll go over the order of priority for Permission Levels. The below quote explains the order of how permissions are applied. Items lower in the list will overwrite items higher. (e.g. “Member-specific overwrites that allow permissions” will always be in effect. These can currently only be set at the channel level.)

1. Base permissions given to @everyone are applied at a guild level
2. Permissions allowed to a user by their roles are applied at a guild level
3. Overwrites that deny permissions for @everyone are applied at a channel level
4. Overwrites that allow permissions for @everyone are applied at a channel level
5. Overwrites that deny permissions for specific roles are applied at a channel level
6. Overwrites that allow permissions for specific roles are applied at a channel level
7. Member-specific overwrites that deny permissions are applied at a channel level
8. Member-specific overwrites that allow permissions are applied at a channel level
- Permission Overwrites from Discord Developer’s Documentation

As you can see from the quote there is a clear order in which Discord determines what a user can and cannot do. Note that there is no actual Category Level, but it is something I mentioned previously in the article. This level refers to the settings that is set on a category to be synced to all the channels grouped under it. In the end Category Level is the exact same as Channel Level.

The following is a quick breakdown of the priority order:

Server Level @everyone → Server Level Roles → Channel Level @everyone → Channel Level Roles → Channel Level Member-specific settings

Remembering this order allows us to properly set permissions at the level we need it without accidentally overwriting something we might not have wanted to overwrite.

Permission Settings

In the earlier Understanding Discord articles, I explained how to get to the settings menus for the server, categories, and channels along with listing what all the permissions do. This time I’ll go over how these settings work and the difference between settings in the server menu versus the settings in the category or channel menu.

To begin, let’s look at how the permission settings differ. In the images below you will see that the Server Settings (right) has toggles as where the Channel and Category Settings (left) have three options.

Channel Settings (Left) and Server Settings (Right)

For Server Settings, the toggles mean “on” or “off” (allow or deny respectively). The Channel and Category Settings have a bit more complex way of handling the settings, but never forget that the permissions for channels and categories are additive.

When changing settings on a channel or category, you must consider which of the three options do you need to use. Let’s look at what each option means.

  • Grey Slash [ / ] — This tells the settings to not override settings higher in the hierarchy. This is the default selected option when adding a role or user to a channel or category. You want to use this when you want the Server Level to take priority.
  • Green Check [ ✓ ] — This means enable for this channel or channels in this category. This will override the server settings. You want to use this when you want the Channel or Category Level to take priority.
  • Red Cross [ X ] — This means disable for this channel or channels in this category. This will override the server settings. You want to use this when you want the Channel or Category Level to take priority.

As you can see, there is a clear difference between Server Settings and Channel or Category settings. Server Settings are for broad permissions. From there, you can fine-tune with Channel and Category Settings.

There are two other major difference between these settings pages.

  • Server Settings contains permissions for managing different aspects of the server along with voice and text permissions, but Channel or Category Settings will only contain permissions related to text and voice channels
  • To give someone access to editing permissions on Server Settings they need the Manage Roles permission, but for channels and categories you can either give them Manage Roles at the Server Level or Manage Permissions at the Channel/Category Level.

Let’s have a quick look at how the permission settings can cause changes in the way a server member is able to use your server. In my test server I have my “Test Role” which has the Send Messages permission enabled at the Server Level. I have two text channels called “general” and “test”. I have not changed any settings on the general channel, so @everyone has all the permissions set to the Grey Slash which means that the server settings are in effect. On the test channel, I added the Test Role and denied the Send Messages permission (the red X). The image below shows the difference between the two channels’ settings.

General Channel
Test Channel

You can see that the test channel has the Sync Now button This is because its permissions settings are different from the category it is in.

I am not adding the Test Role to the general channel, because I want the Server Settings to take priority. At the Server Level, the Test Role will be prioritized over @everyone.

Then I gave this role to my Test Dummy account to demonstrate how the settings I set on my test channel will affect a member. In the following GIF you can see that my Test Dummy cannot send messages in the test channel.

Sending messages blocked at channel level

You should also notice that I can send messages in the test channel because I am the Server Owner. Server Owner overrides all permissions in the server and holds the highest priority. The Administrator permission acts in a similar way, but a user will have limited actions on users with roles that are the same or above their highest role (not the one with Administrator) as determined by Role Hierarchy in the Server Settings. This means a user can’t kick, ban or change the nickname of anyone who has the same or higher role than them.

Channel and Category Settings is the best way to fine-tune your server’s permissions, but use these settings sparingly as you can easily break your setup by giving the wrong permission a Red Cross (X) or Green Check (✓). You will want to leave all settings on the Grey Slash option unless you explicitly want a role or user to have a different setting on a channel from the settings in the server. It’s always good to test settings using a test server and an extra account.

Next, I’ll demonstrate one of the biggest reasons you might want to change settings directly on a channel or category, muting a user.

Muting users with Permission Overwrites

Most communities have a set of rules or guidelines they ask members to follow and sometimes members will break these rules. When this happens in your server, you might want a way to stop that member from chatting for some amount of time and this is where Permission Overwrites can help. Muting a user can mean two different things depending if it is in a voice channel or in a text channel.

Self Mute vs Server Mute

For voice it is a simple matter of right-clicking a user in a voice channel and choosing Server Mute. This will make it so that the user cannot speak in voice channels at all until you disable the Server Mute. If you want to give other people the option to do this, simply go into your server settings, head over to the Roles tab, and toggle on the Mute Members option on the role you want to give the permission to.

For text, it’s much different and requires a bit of fine-tuning using the different permission settings. There are two methods by which you can mute someone in text channels, by role or by user.

Text muting by User

You can mute a member of your server directly with the Member-specific settings on a channel or category. As we’ve learned, this method overrides every other permission in the entire server so there is no concern of a role overriding the text mute. The downside is that it can be a bit more tedious as you would have to add the user to each category or channel you want them to be muted in and then remove the setting again when you want to remove the mute.

In my test server I set all my settings back to default, added my Test Dummy account to my test channel, and then disabled Send Messages for it.

Doing this will give the exact same result as when I added the Test Role and removed the Send Messages permission with the difference that it will override any other settings no matter which Permission Level it is set at.

Member-specific settings like these can be quite handy but are not the ideal method unless you are using a Discord bot that can quickly go through all channels or categories to add or remove these overwrites.

Text muting by Role

Muting a member using a role takes a bit longer to set up but is a simpler method in the long run as it only requires the giving and taking of a role. The difficulty of using this method comes with channels that have multiple role overwrites. This is because of how “allow” permissions from other roles will overwrite your mute role’s “deny”. Your best bet when creating a mute role is to test it out in a test server before implementing it.

Once again, I have set everything in my test server back to default. I then created a role called “Muted” and toggled all permissions “off” so that the Server Level will not interfere with any channel settings. This step is not required, as simply disabling Send Messages will already give the desired outcome, but in my server I have the Test Role and it will override @everyone so I am ensuring that the Muted role has no permissions to avoid any kind of unintended side-effects from other permissions.

Muted role permissions

Next, I went to the Category Settings and added the Muted role to the category permissions so that it applies to all my synced channels. Then I disabled the Send Messages permission with the Red Cross (X). The GIF below shows this process.

Adding muted to category

Note: Remember to make sure your channels in the category are synced when setting it on the Category Settings like I did.

Now that I have my role all set up, I can go ahead and mute my Test Dummy account by giving it the role. This will deny it the ability to send messages in my test server.

Muting a user by Role

I find this to be a much easier method to quickly mute my Test Dummy account because I only need to set it up once unless I make major changes to my server. It’s also the most common method preferred by Community Builders.

As a reward for making it to this point in the article, you can use my test server template to try out the mute role yourself or if you would like a base to work off for your own mute role setup.

Muting a member is a simple matter of knowing how the Permission Overwrites will affect the Server Settings, choosing the best method for your setup, and then implementing your chosen method. A common occurrence across a lot of Discord servers is the usage of a moderation bot that has a command to mute or some form of auto-moderation system. There are many of these kinds of bots out there and it’s just a matter of searching the web for the one that suits your needs. In a future article I will cover some of my own favorite bots for managing a server and this will include some great moderation bots.

A good place to check for bots is the top.gg site which lists a lot of bots and there are searchable tags. We are by no means affiliated with this site, but it is currently the de facto place to find bots.

Final Words of Wisdom

The information in this article will allow you to efficiently use Permission Overwrites, allowing you to take control of your server on a whole new level with fine-tuned permissions settings to meet the needs of your community. The most important thing to remember is the different Permission Levels and the priority order of these levels. Make sure to test settings on a test server with a second account so that you can find the best setup for you and ensure that you do not override any permissions in your server unintentionally.

If you liked this article and publication, please consider leaving a 👏 applaud. It will let our authors know that you found this kind of information worthwhile.

If you want to continue discussing this article and other ideas in this blog or related topics, join the Community Builders Discord server where CBB conversations are occurring!

Our blog is sponsored by Statbot, the premier statistics and analytics Discord bot and dashboard for your community. It is an absolute must-have for any server that is serious about its growth and well-being. When a server has Statbot in it, you know it’s aiming to be the best of its kind! Statbot tracks member count, messages, minutes spent in voice, activity, and statuses. It offers many ways to view and use this data to help grow your community, such as, automatic role assignment according to users activity in your Discord server (A.K.A. Statroles), and channel counters that allow you to display all kinds of stats about your community to others as a channel (A.K.A. Statdocks). If you run a Discord server we highly recommend getting Statbot to help track your growth and augment your community.

Have ideas for content you’d like to see on the blog? Make a suggestion!

Think you have what it takes to write for CBB? We’re hiring authors! If you are interested, please fill out this application and join the Community Builders Guilded server where CBB operations are based. We look forward to seeing you!

--

--

--

Knowledge, stories, and data to help you run your successful online community. Community building is a daunting task, especially when you consider platforms that are literally named “Discord”. We’re here for you! Curated with love by our dedicated staff and support by Statbot!

Recommended from Medium

Spring Boot - Creating a Custom Annotation for Validation

Spring boot Annotations

7 Latest Java Application Development Trends to Know in 2021

Java Application Development Trends

10 Best Time Tracking Software to Grow Your Remote Business

SpringBoot: Generate OpenAPI Document During Test Phase

Apla DevTeam Report

Bootcamps: are they sustainable?

Cell-Based IC Design flow_Victor

Learning To Build A NodeJS Web Application Using AWS

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Lela Benet

Lela Benet

Community Manager for https://communitybuilders.blog/ and https://statbot.net/ | Content Creator on YT https://www.youtube.com/channel/UClXtD1WNfgzpQB1whIdHRtA

More from Medium

UIX Redesign — Campaign Mobile App: Gamification Feature.

IOS MetaWallet App store Release

Duelist King Joins Forces with Good Games Guild to Democratise NFT Gaming

How Mobile Apps Are Revolutionising The Future Of E-Learning