When setting up your moderation channels, it’s important to keep in mind what works best for your team. Think about what the team needs and be sure to accommodate that accordingly. While most public-facing channel categories consist of an average of three to five channels to not overwhelm users, moderation channels are private to moderators only and should be as large as necessary to serve all purposes needed by your moderation team. With a little bit of community building expertise and permissions wizardry, you can ensure that your moderation hub is a welcoming place that serves all of your teams’ requirements. Before reading this article, we recommend taking a peek at DMA 201: Permissions on Discord to learn what permissions are necessary to create private moderation channels.
Once confident in channel permissions that lock the access to your private moderation channels, it’s important to think about what you want your moderation channels to look like. The larger the server the more channels you may need to accommodate everything.
An important rule of thumb is to make sure that your moderation channels are an exception to any auto-moderated actions your moderation bot may be taking, or that the automoderator is configured not to act on messages from moderators. No blacklists should be in effect in these channels to ensure proper discussion of punishments and happenings in the server can be discussed truthfully and respectfully. It’s also important to ensure that any message logging is configured to ignore channels that not all moderators have access to. For example, if all of your moderators can see a general action log channel, but you have a separate channel for a lead chat, deleted and edited messages from that channel should not be logged for privacy reasons. More about this can be found below.
Structurally, it is recommended to have informational channels at the top of your moderation channel category to make sure everyone sees them. Anything that should be easily viewable by the team follows, such as an update channel and moderation/action logging based channels. Channels restricted to smaller groups of moderators should be closer to the bottom as less people have access to these, and partnership channels meant to maintain relations as opposed to direct moderation connections can be on the bottom. A sample of a large staff channelset can be found below.
We’ll now begin to outline a variety of channels that are often useful for moderation purposes. The below list is for your consideration when building your own moderation channel category, but by no means should you feel obligated to add every channel discussed below to your server. This is all about recognizing your needs and making sure they are met!
Every moderation team should have a developed moderation handbook that is easily accessible to all team members and updated regularly. However, some moderation teams like to have an overview channel for rule enforcement for quick referencing. This channel can contain information such as how you categorize punishments, an overview of popular commands for easy referencing after returning from a moderation break, and links to all guidelines and moderation forms for easy coordination.
We recommend that this channel is viewable to all moderators, but Send Message permissions for informational channels like this should be limited to the server owner or administrators to ensure only important and select information is fed into the channel. Additionally, denying Manage Message permissions to everyone but the administrators is also recommended to ensure that these informational messages aren’t deleted.
Action logs are the most important moderation channels out there, but also the busiest. Moderation action logs exist for a variety of purposes, and you can configure them however you see fit. Some recommended actioning channels include, but are not limited to:
*Unless you are using the channel description for verification instructions rather than an automatic greeter message.
If you want to use the remove unverified role method, you will need a bot that can automatically assign a role to a user when they join.
Verification Actions
Once you decide whether you want to add or remove a role, you need to decide how you want that action to take place. Generally, this is done by typing a bot command in a channel, typing a bot command in a DM, or clicking on a reaction. The differences between these methods are shown below.
In order to use the command in channel method, you will need to instruct your users to remove the Unverified role or to add the Verified role to themselves.
Like your server, your moderation team can have a general channel. While it is important for your moderators to moderate, it’s also important for your team to bond. This is best achieved by having a space that is not dedicated to moderation. It exists to talk to each other, get to know each other, and build rapport in your team environment. Moderation can be stressful, and this is where you can go to take a break with your teammates. However, it is important to maintain the same set of moderation expectations here as you would in public channels. An occasional vent is understood and acceptable, but you should avoid speaking negatively of server members that can taint a moderation experience. While it’s important to bond with your teammates, it is also important to bond with your server members as well. Chatting in the server itself is just as encouraged as getting to know your fellow moderators.
Markdown is also supported in an embed. Here is an image to showcase an example of these properties:
Example image to showcase the elements of an embed
An important thing to note is that embeds also have their limitations, which are set by the API. Here are some of the most important ones you need to know:
An important thing to note is that embeds also have their limitations, which are set by the API. Here are some of the most important ones you need to know:
If you feel like experimenting even further you should take a look at the full list of limitations provided by Discord here.
It’s very important to keep in mind that when you are writing an embed, it should be in JSON format. Some bots even provide an embed visualizer within their dashboards. You can also use this embed visualizer tool which provides visualization for bot and webhook embeds.
If you enable the community server option for your server, you’ll have updates fed to a chosen channel. As these will be major community-based updates for moderation purposes, it is often recommended to have them feed to a moderation update or memo based channel for ease of viewing. Channels that serve this purpose can be used for a variety of reasons including announcing extended absences from the team for vacations or mental health purposes to avoid burnout, taking team-wide votes, and making announcements for moderator removals, departures, promotions, and initiatives the team is pursuing. Many servers use a single channel as a catch-all update arena as it serves a very specific purpose and will not be used daily.
Although there are a variety of ways to organize your team hierarchy, in addition to regular moderators most mod teams also have administrators who are responsible for overseeing the regular moderators. Some mod teams also make a distinction between regular moderators and moderators-in-training, who may have different permissions compared to regular moderators or otherwise be subject to additional scrutiny during their training period. If these distinctions exist within your own mod team, it may be wise to create separate administrator channels and training channels.
Administrator Channels - An administrator chat is necessary to speak about private matters on the team. This is to judge general moderation performance, handle punishments for problematic actions internally, and it also serves as a place to handle any reports against moderators to ensure privacy. Please remember, it is important that these messages are not caught up in bot logging so moderators are not made aware of the fact that they are being discussed privately before leads connect with them.
Training Channels - General permissions granted to all moderators will not yet be accessible to moderator trainees, and thus some teams consider locking their access to select channels. There will need to be a space for all moderators and leads to privately discuss the growth of the trainees without them gaining access even after promotion. Some teams may go as far as to establish a unique action log channel used during training periods before giving them access to the full history of the moderation team once they prove their ability to be unbiased moderators. Again, it is important to ensure that discussion channels for trainees are exceptions to basic bot logging to avoid awkward occurrences with trainees seeing commentary about them that they should not see yet.
Even though this comparison is important for better understanding of both bots and webhooks, it does not mean you should limit yourself to only picking one or the other. Sometimes, bots and webhooks work their best when working together. It’s not uncommon for bots to use webhooks for logging purposes or to distinguish notable messages with a custom avatar and name for that message. Both tools are essential for a server to function properly and make for a powerful combination.
*Unconfigurable filters, these will catch all instances of the trigger, regardless of whether they’re spammed or a single instance
**Gaius also offers an additional NSFW filter as well as standard image spam filtering
***YAGPDB offers link verification via google, anything flagged as unsafe can be removed
****Giselle combines Fast Messages and Repeated Text into one filter
Anti-Spam is integral to running a large private server, or a public server. Spam, by definition, is irrelevant or unsolicited messages. This covers a wide base of things on Discord, there are multiple types of spam a user can engage in. The common forms are listed in the table above. The most common forms of spam are also very typical of raids, those being Fast Messages and Repeated Text. The nature of spam can vary greatly but the vast majority of instances involve a user or users sending lots of messages with the same contents with the intent of disrupting your server.
There are subsets of this spam that many anti-spam filters will be able to catch. If any of the following: Mentions, Links, Invites, Emoji, and Newline Text are spammed repeatedly in one message or spammed repeatedly across several messages, they will provoke most Repeated Text and Fast Messages filters appropriately. Subset filters are still a good thing for your anti-spam filter to contain as you may wish to punish more or less harshly depending on the spam. Namely, Emoji and Links may warrant separate punishments. Spamming 10 links in a single message is inherently worse than having 10 emoji in a message.
Anti-spam will only act on these things contextually, usually in an X in Y fashion where if a user sends, for example, 10 links in 5 seconds, they will be punished to some degree. This could be 10 links in one message, or 1 link in 10 messages. In this respect, some anti-spam filters can act simultaneously as Fast Messages and Repeated Text filters.
Sometimes, spam may happen too quickly for a bot to catch up. There are rate limits in place to stop bots from harming servers that can prevent deletion of individual messages if those messages are being sent too quickly. This can often happen in raids. As such, Fast Messages filters should prevent offenders from sending messages; this can be done via a mute, kick or ban. If you want to protect your server from raids, please read on to the Anti-Raid section of this article.
Text Filters
Text filters allow you to control the types of words and/or links that people are allowed to put in your server. Different bots will provide various ways to filter these things, keeping your chat nice and clean.
*Defaults to banning ALL links
**YAGPDB offers link verification via google, anything flagged as unsafe can be removed
***Setting a catch-all filter with carl will prevent link-specific spam detection
A text filter is integral to a well moderated server. It’s strongly, strongly recommended you use a bot that can filter text based on a blacklist. A Banned words filter can catch links and invites provided http:// and https:// are added to the word blacklist (for all links) or specific full site URLs to block individual websites. In addition, discord.gg can be added to a blacklist to block ALL Discord invites.
A Banned Words filter is integral to running a public server, especially if it’s a Partnered, Community or Verified server, as this level of auto moderation is highly recommended for the server to adhere to the additional guidelines attached to it. Before configuring a filter, it’s a good idea to work out what is and isn’t ok to say in your server, regardless of context. For example, racial slurs are generally unacceptable in almost all servers, regardless of context. Banned word filters often won’t account for context, with an explicit blacklist. For this reason, it’s also important a robust filter also contains whitelisting options. For example, if you add the slur ‘nig’ to your filter and someone mentions the country ‘Nigeria’ they could get in trouble for using an otherwise acceptable word.
Filter immunity may also be important to your server, as there may be individuals who need to discuss the use of banned words, namely members of a moderation team. There may also be channels that allow the usage of otherwise banned words. For example, a serious channel dedicated to discussion of real world issues may require discussions about slurs or other demeaning language, in this exception channel based Immunity is integral to allowing those conversations.
Link filtering is important to servers where sharing links in ‘general’ chats isn’t allowed, or where there are specific channels for sharing such things. This can allow a server to remove links with an appropriate reprimand without treating a transgression with the same severity as they would a user sending a racial slur.
Whitelisting/Blacklisting and templates for links are also a good idea to have. While many servers will use catch-all filters to make sure links stay in specific channels, some links will always be malicious. As such, being able to filter specific links is a good feature, with preset filters (Like the google filter provided by YAGPDB) coming in very handy for protecting your user base without intricate setup however, it is recommended you do configure a custom filter to ensure specific slurs, words etc. that break the rules of your server, aren’t being said.
Invite filtering is equally important in large or public servers where users will attempt to raid, scam or otherwise assault your server with links with the intention of manipulating your user base to join or where unsolicited self-promotion is potentially fruitful. Filtering allows these invites to be recognized, and dealt with more harshly. Some bots may also allow by-server white/blacklisting allowing you to control which servers are ok to share invites to, and which aren’t. A good example of invite filtering usage would be something like a partners channel, where invites to other, closely linked, servers are shared. These servers should be added to an invite whitelist to prevent their deletion.
Anti-Raid
Raids, as defined earlier in this article, are mass-joins of users (often selfbots) with the intent of damaging your server. There are a few methods available to you in order for you to protect your community from this behavior. One method involves gating your server with verification appropriately, as discussed in DMA 301.You can also supplement or supplant the need for verification by using a bot that can detect and/or prevent damage from raids.
*Unconfigurable, triggers raid prevention based on user joins & damage prevention based on humanly impossible user activity. Will not automatically trigger on the free version of the bot.
Raid detection means a bot can detect the large number of users joining that’s typical of a raid, usually in an X in Y format. This feature is usually chained with Raid Prevention or Damage Prevention to prevent the detected raid from being effective, wherein raiding users will typically spam channels with unsavoury messages.
Raid-user detection is a system designed to detect users who are likely to be participating in a raid independently of the quantity of frequency of new user joins. These systems typically look for users that were created recently or have no profile picture, among other triggers depending on how elaborate the system is.
Raid prevention stops a raid from happening, either by Raid detection or Raid-user detection. These countermeasures stop participants of a raid specifically from harming your server by preventing raiding users from accessing your server in the first place, such as through kicks, bans, or mutes of the users that triggered the detection.
Damage prevention stops raiding users from causing any disruption via spam to your server by closing off certain aspects of it either from all new users, or from everyone. These functions usually prevent messages from being sent or read in public channels that new users will have access to. This differs from Raid Prevention as it doesn’t specifically target or remove new users on the server.
Raid anti-spam is an anti spam system robust enough to prevent raiding users’ messages from disrupting channels via the typical spam found in a raid. For an anti-spam system to fit this dynamic, it should be able to prevent Fast Messages and Repeated Text. This is a subset of Damage Prevention.
Raid cleanup commands are typically mass-message removal commands to clean up channels affected by spam as part of a raid, often aliased to ‘Purge’ or ‘Prune’.It should be noted that Discord features built-in raid and user bot detection, which is rather effective at preventing raids as or before they happen. If you are logging member joins and leaves, you can infer that Discord has taken action against shady accounts if the time difference between the join and the leave times is extremely small (such as between 0-5 seconds). However, you shouldn’t rely solely on these systems if you run a large or public server.
User Filters
Messages aren’t the only way potential evildoers can present unsavoury content to your server. They can also manipulate their Discord username or Nickname to cause trouble. There are a few different ways a username can be abusive and different bots offer different filters to prevent this.
*Gaius can apply same blacklist/whitelist to names as messages or only filter based on items in the blacklist tagged %name
**YAGPDB can use configured word-list filters OR a regex filter
Username filtering is less important than other forms of auto moderation, when choosing which bot(s) to use for your auto moderation needs, this should typically be considered last, since users with unsavory usernames can just be nicknamed in order to hide their actual username.
There are a plethora of moderation channels that can benefit a team in unique circumstances that don’t fit into the above categories. Consider the following when thinking about what fits best for how your community is run:
One additional component not included in the table is the effects of implementing a verification gate. The ramifications of a verification gate are difficult to quantify and not easily summarized. Verification gates make it harder for people to join in the conversation of your server, but in exchange help protect your community from trolls, spam bots, those unable to read your server’s language, or other low intent users. This can make administration and moderation of your server much easier. You’ll also see that the percent of people that visit more than 3 channels increases as they explore the server and follow verification instructions, and that percent talked may increase if people need to type a verification command.
However, in exchange you can expect to see server leaves increase. In addition, total engagement on your other channels may grow at a slower pace. User retention will decrease as well. Furthermore, this will complicate the interpretation of your welcome screen metrics, as the welcome screen will need to be used to help people primarily follow the verification process as opposed to visiting many channels in your server. There is also no guarantee that people who send a message after clicking to read the verification instructions successfully verified. In order to measure the efficacy of your verification system, you may need to use a custom solution to measure the proportion of people that pass or fail verification.
If your community is linked to an external community such as Reddit or Twitch, it would be useful to have separate moderation channels dedicated to this external community in addition to your Discord moderation channels. Reddit moderation channels specifically can be created by utilizing webhooks. Reddit moderation spaces housed on Discord often have r/modnews updates feeding into a special update area and channel sets unique to their external community needs. You can also have new posts and comments logged into a designated Reddit action log for easy reference without opening Reddit.
Teams that have a separate Reddit or Twitch moderation team in addition to their Discord moderation team may have designated hangout spaces for all teams to get to know each other casually. But, most importantly, they may have shared moderation spaces to discuss troublemakers that can span multiple platforms to flag problematic users for the other team. Easy and specialized communication across teams will help to keep all facets of your community safe!
There is no right or wrong way to set up a moderation channel category outside of ensuring you utilize the correct permissions. It’s important to consider the needs of your community and how their needs translate to the needs of your team when creating your moderation space. Having flexibility and a willingness to grow as your server grows and requires change is imperative. While action logs are the most useful kind of moderation channels from a punishment perspective, hangout spaces are important to establishing team cohesion and rapport. Identifying the needs of your team and making sure they are adequately met will help you create the strongest moderation environment as possible.