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:
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.
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.
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.
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
Roles and permissions
(video guide 04:19) 2
@everyone and member roles
@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)
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
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.
(video guide 11:38) 2
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.
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.
(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!!
(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
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: http://botwinder.info
2) Please excuse my failing voice, I didn’t have my best day (I have vocal cord disability)