Giving moderators a uniquely colored role can help them stand out in chat so that users are aware of when they are receiving an official verbal warning or direction. This can be very helpful in any server, but some structures that this system are most helpful in may include:
The words and actions of moderators hold more weight and urgency when geared towards problematic behavior and a colored role differentiation in addition to a hoisted position on the sidebar draws attention to their existence.
Having a separate color for moderators can also lead to some unfortunate social effects since moderators are not always moderating, but their unique role coloration exists to make them stand out in the server. This means if they’re just trying to converse with fellow users, eyes are more quickly drawn to their color for when they need to dispense advice. In heavily active servers, users may be more likely to see most of what a moderator posts since their messages stand out from everything else, but a moderator is unlikely to see most of what any individual user posts; this can lead to a parasocial relationship where users think that they know or are friends with the servers moderators. It can also lead to users paying undue attention to moderators when they are just around to chat, potentially ignoring other users, or drawing attention to the fact that a moderator has entered chat, effectively killing prior conversation topics. In certain servers, this can also be cause for concern if it is attracting the wrong kind of people to moderation based positions who are seeking hoisted roles or incorrect perceived perks of moderation positions. Overall, having a color for moderators is important in communities that are seeking to differentiate who is and isn’t a moderator in chat, but it can also lead to certain situations that may degrade a moderator’s ability to use the server normally as a member.
When utilizing such a role, It is important to keep an eye out for responses that do not treat moderators as respected members of the server and respond appropriately. Moderators are members first, and should be able to use the server in much the same way they did before becoming moderators, in addition to carrying out their moderation related duties.
If you are running any sort of support server, whether for a bot, a coding language, a game, or some other external service, it may be important to differentiate between regular users and developers or trusted experts. It will be a lot easier to tell if you are getting credible advice if there is a colored role that indicates that users with this color know what they are talking about. This type of system is useful for proficient users and developers. Such role usage can help prevent issues where misguided or confused users mistake a developer's explanation of their own code for incorrect advice.
An important thing to note about this system is that there are some pitfalls. It can inadvertently lead to a distrust of other users who do not have the proficient helper/developer support role color because they know they can get correct advice from a different source. They might dismiss others trying to help them with the knowledge that they can eventually get a developer’s attention, which can lead to a sense of entitlement to that direct advice. Of course, this can happen without role colors, but the addition of role colors make developer interaction more obvious and place them on a support pedestal that is often desired by those seeking advice.
Giving patrons, server boosters, or any other sort of member who has made financial contributions to the server a separate color from the rest of the server can be a good way to incentivize or reward the people who are helping keep your server, bot, service, or giveaways afloat. However, it can also contribute to a sense of elitism within the server. This inadvertent hierarchy can be misinterpreted as users being entitled to special treatment above the rules in exchange for their financial support of the server. Thankfully, both of these negative viewpoints are relatively easy to identify and combat, especially if you define what each of these kinds of roles get you clearly in your server rules so there is less assumption and personal interpretation of nonexistent hierarchical perks.
If your server has some sort of activity based leveling system, or a server currency system, it may be fun to include colored roles as rewards or shop items that can be purchased with the server currency. These systems can help you reward your most active members, and if your server currency has an attendance incentive it can even be used for event participation. It is important to note that these systems are abusable, and can contribute to low-effort contributions that are effectively just spamming for levels or points, or in extreme cases, even self-botting (automating actions on a non-bot, regular user account) and other forms of cheating. They can also contribute to toxic competitive environments and chats that can be unpleasant for users who do not care about the server levels or currency to try to break into. If utilizing such a system, it is important to think of ways to combat spam before implementation. Additionally, remember that self-bots are against Discord’s Terms of Service and should be reported and dealt with accordingly upon discovery.
Ideally, you want a level or server currency system to be something that is a fun background mechanic in the server, but not people's main reason for participating. These issues are not unique to colored roles, but anything that makes these systems more prominent and visible in chat will draw more attention to them. Level roles in particular can also contribute to the previously discussed accidental hierarchy built within the community by clearly establishing active long-term users from newer users. Climbing a level ladder can be intimidating, after all.
Color roles can be used to signal information depending upon the type of community you run. Some examples include pronoun roles, what games a user plays, the age range they fit into, where they are from, and any other information your community may deem relevant for your users to know. This type of system is beneficial for sharing and collecting info about others. However, users may choose roles that they do not actually align with because they want the chat color associated with it, which is a detriment to more elaborate informational color systems. If you decide to utilize an informational color system it’s important to remember that Discord only shows the color that is highest on the role list and roles should be ordered with this in mind.
The final type of role color discussed in this article is those decided by the server staff for aesthetic, but have no perks attached to them. Seasonally themed roles require a bit more work on the part of whoever is in charge of selecting the colors and naming the color roles, but can be a fun way to mark the passage of time, important events like winter holidays, or just change things up in the appearance of the server every once in a while with minimal effort.
Self-assignable colors have no downside other than increasing the number of roles your server has. They are a way to let users have a bit more control over their profile and how they appear to others, and change things up when they want to. Self-assignable colors are a fun and inclusive way to engage users, especially when part of a serverwide aesthetic.
When choosing role colors, you should keep accessibility in mind. A role color the same as the Discord background may seem like an entertaining color choice, but it can prove to be unreadable to many, for example. It is most important to remember that role colors need to be legible across all Discord themes including dark, light, and AMOLED themes. Many users may also have a form of color blindness, which should be considered when generating a color theme that is accessible for everyone.
It is important to ensure that role colors have sufficient contrast against the variety of background colors that Discord provides. There are many tools out there that can help you compare role colors, mimic the effects of various forms of color blindness, and see how much contrast they have so that you can see whether role colors will appear too similar or be difficult to read for some users. The Dragory Discord Preview Tool is specifically made for Discord and can easily be used to visualize everything you need to make sure you are choosing appropriate role colors all in one place.
Moderation colors should easily stand-out amongst server users to draw attention to them. If your server mostly uses cool colors, make them something warm. If you’re dominated by pastels, go for something with more saturation. Make it so that eyes are drawn to them if you use this system.
This article reviewed the many possible role color systems that you can utilize in your server by walking you through the benefits and drawbacks of each. These systems can also all be combined with each other in order to create a system that you believe serves your community best through experimentation. Luckily, the stakes for changing role color systems are pretty low. While role colors can have an impact on the way people interact with your server and with certain members, it will not make or break your server to try out a new seasonal theme and/or return to a previous theme if it is necessary. As long as you understand the risks associated with each kind of setup, keep an eye out for unwanted responses to your color scheme, and remember to utilize accessible colors, you can use whatever kind of system you want. There is no wrong answer here--just have fun with finding your server aesthetic!
*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.
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.
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.
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 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.
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.
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.
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.
Take the Discord Moderator Exam!Take the Exam