How to correctly set up Discord server and channel permissions?
This guide assumes at least basic knowledge of Discord and server configuration.

You can watch a video guide here 2 or continue reading this written guide.
(Edit: I now have another video guide with complete basics that you should go through first, before going through this one, if you’ve never created a server before. Check this playlist 2)

Good channel structure

(video guide 00:00) 2

I’ll start with basic channel structure that will help keep things nice and clear on your server.

Channel types as shown in the Fig.1:

  • Separators
  • Information
  • News
  • Logs
  • Staff
  • Discussion
  • Spam
Channel structure

Figure 1: Channel structure

You can of course structure your server differently, but this should give you basic idea of what works well. I personally usually list discussion channels first and info/news channels in the bottom, Jefi’s Nest is a little bit of an exception to that.

Channel Separator

In the l-------info-------l channel separator you can see a list of public info and news channels and brief description of each, similar list can also be found in the l------chat------l separator. I also added a list of roles here, to not clutter the #info channel too much. Less information and better structure often mean that the user will actually read it, although they very rarely do.

Channel separator

Figure 2: Example channel separator


Info channel should contain:

  • Brief description of the server - This would be just one or two sentences what the place is.
  • Rules - Depending on the type of the community you might want to explicitly list all the insane ones. See Fig.4 for example of something more than just “don’t be an ass.”
  • More detailed description of the activities the user can participate in - In our case this would be some information about Botwinder 1 and Overwatch. If you have a bot with Public Roles, just like our Overwatch, this is the place to list all of them, or any other services your bots provide.
  • Permanent invite link - this is to prevent people from accidentally generating only temporary invite links and hanging those in public places. Simply take away their permission to do that and give them a nice permanent link.
Info channel

Figure 3: Example info channel


Figure 4: Example rules


Another read-only type of channels for public, where you or your staff will post the news about the server, community, activities and events, in case of gaming community maybe patchnotes and game updates, etc… In our case we have github updates with a bit of spam for instant updates about our project, and more importantly, #botwinder-diary which contains important news and notices.


Often hidden, sometimes public channels to be used by bots. There are all kinds of logs: edited/deleted messages, user joining/leaving the channel, moderation events like mute, kick or ban, and even administration events like editing or assigning roles. (This will change sooner or later - see my article about upcoming Discord update: Audit logs)


Hidden staff channels


Discussion channels can be themed, for example in our case #botwinder-help is a dedicated channel for questions about Botwinder 1 or other kinds of help with it, then we’ve got #teh_code_-wat- which is for code related discussions. Themed channels should be obvious what’s the purpose form its name, and topic if necessary.


A simple spam-type of channel often called #bot-playground, #memes or #offtopic.

Roles and permissions

(video guide 04:19) 2

@everyone and member roles

The @everyone role is what everyone has. This role should contain permissions that you want everyone to have, such as reading messages and message history, sending messages, connecting and speaking on voice chat. (Fig.5)

If you use some kind of member or verified role that you assign to people when they speak up, or agree to rules, or maybe you use automated verification system for this, then I recommend not giving embedding, voice activation, reactions, nicknames, and other similar permissions to the @everyone, but instead save it for members only. (Fig.6)

Role permissions

Figure 5: @everyone role permissions

Role permissions

Figure 6: Member or verified role permissions

Tag roles

Roles that serve as tags only, should have no permissions at all. See example Overwatch tag role in Fig.7. Tags are often available to public via bot command, aka Public Roles, and as such you do not want people to be able to grab any permissions at all, not even the ones that are on the @everyone role.

Role permissions

Figure 7: Permissions of a tag role Overwatch

Staff roles

Staff roles should be treated as more fancy tags that are not available to public, and should have no permissions, or only permissions needed for the staff. See example moderator role in Fig.8 which doesn’t even have ban permissions, because we use a bot for that.

Role permissions

Figure 8: Moderator permissions

Channel permissions

(video guide 11:38) 2

Discussion channels

Standard random discussion channels should have no permission overrides at all. You can create some Spam (refer to channel types) channels where you want everyone to be able to upload files and not just verified members, etc… but other than that, you should not explicitly give people permissions if they don’t need them, if they already have them from server role permissions.

Read-only (info/news) channels

For read only channels you should just deny Send Messages permission on @everyone and then allow a staff role to post there (unless you want to handle this yourself, in which case you don’t need anything else.)
See Fig.9 for an example.

Channel permissions

Figure 9: Read-only info channel permissions

Hidden channels

Hidden channels, such a channel for moderators or staff, would have only a single permission denied from @everyone, which is to Read Messages, and then the Staff (or any other) role that you want to give access, should have the Read Messages permission explicitly allowed.
See Fig.10 and Fig.11 for examples.

Channel permissions

Figure 10: Staff channel permissions - blocked @everyone

Channel permissions

Figure 11: Staff channel permissions - Allowed role


(video guide 13:42) 2

Wallpapering is an act of making the whole channel permissions red, or green.
It is extremely wrong! Do Not Do That!!

If you have staff role, set up permissions as explained above. Do not wallpaper it as shown in the Fig.12 and Fig.13!

Channel permissions

Figure 12: Staff channel permissions - incorrectly blocked @everyone - red wallpaper

Channel permissions

Figure 13: Staff channel permissions - incorrectly allowed role - green wallpaper

Voice channels

(video guide 15:25) 2

The last bit I would like to mention is voice channel for music bots. All you need is to simply apply already explained principle of minimal permissions necessary. I assume that the @everyone role has connect and speak permissions. All we need to do now, is to block this role from being able to speak, and adding a music bot (or its role) and allowing the Speak permission.


Thank you for your patience, you made it this far! :D
I hope that this guide was useful for it, feel free to ask questions or share your opinions and experiences in the comments below.


Read my other article On the topic of Moderation.

1) Botwinder:
2) Please excuse my failing voice, I didn’t have my best day (I have vocal cord disability)