The Curriculum

The Curriculum

Introduction

312: Internal Conflict Resolution

In every group, eventually a conflict or dispute will arise which needs to be resolved. Sometimes this can be a small issue, but a conflict can also escalate to an argument which spirals out of control, and negatively impacts your team and your community. In this article we will look at typical situations that can occur that might lead to a conflict between members of your staff, how to de-escalate situations and work on conflict resolution, and how you can handle the demotion or removal of a moderator when no resolution can be reached. We will also cover the best practices for giving and receiving feedback from other members of the staff team.

Causes of Internal Conflicts

There can be many causes for conflicts between your moderators, some of which occur more often than others. Some of these can easily be prevented, while others might need a more intentful thought process to stop them from escalating to a conflict.

Personality Clashes and Differences

The main reason for conflicts to arise is a difference in personalities amongst your team. Everyone perceives, analyzes and responds differently to certain situations. While this should be a learning opportunity for everyone involved, it can lead to arguments when moderators can not get along. While emphasizing there are different approaches to the same issue, you should teach moderators to learn from each other instead of disagreements ending in a conflict. When a moderator constantly disagrees with someone else, or ends up in a personal argument, try taking them aside and let them know that they should be working on their personal issues. You can help them as an objective observer - it can be very valuable to let members of your team know that you understand their individual perspectives and are working to balance them.

Try to avoid the “Halo/Horns effect” as much as possible. This is a type of cognitive bias where your view of someone’s actions can influence how you think and feel about that person in general, both positively as well as negatively.

Poor Communication

Misunderstandings between your moderators can lead to a conflict as well, especially when there is a different understanding of how a situation should be handled. Having transparent, consistent communication where everyone is on the same page is very important in an online setting such as Discord. Text is often perceived differently than talking over voice or even in person. Oftentimes a language barrier can lead to misinterpreting a message as well. Try to prevent misunderstandings from happening with clear communication and when misunderstandings happen, step in where possible and explain how the situation should be handled. Foster a culture where it is not only allowed but encouraged to ask for clarification on someone’s statement if you have any doubts about what their intent was.

Bullying and Harassment

Making jokes is beneficial for maintaining a healthy and welcoming environment and even a way to deal with the tough situations moderators may face. However, it is important to make sure that jokes don’t push the boundaries of what is appropriate and lead to perceived bullying of server members behind closed doors, or even other members of your own team.

What is perceived to be a harmless in-joke in context could out of context seem like a malicious and unwarranted comment. When it is clear someone is not comfortable with certain jokes or feels targeted, you need to step in and clear the situation by telling moderators involved that you want a positive atmosphere where everyone feels welcomed and comfortable while clearly identifying what line was crossed so it does not happen again. That’s not to say that all close knit groups trend towards exclusionary jokes, but it is something that can happen without a team even being cognizant that it’s a problem. Hence why it’s pertinent to keep inclusivity and good faith intent in mind with situations like this.

Unfair Treatment

A main cause for conflicts is unfair treatment amongst members of your team. This might be because there is a lack of equal opportunities, or because there are unrealistic expectations. Make sure that everyone on your team is treated equally as everyone deserves the same treatment, regardless of your personal relationships. This also means you and other moderators should have reasonable expectations of each other. Moderators often volunteer to help out in your community, so don’t expect them to be available at all times; they might have other responsibilities as well. Any mod team’s north star should be that “real life comes first”, and to be lenient amongst themselves in the face of that.

Unclear Responsibilities

Sometimes it is not clear what responsibilities everyone has on the team. This can lead to misunderstandings and eventually to conflicts. Make sure everyone on the team receives adequate training and information on what different roles and positions should be doing. You might want to divide different responsibilities amongst members of your team or between different roles, such as moderators and administrators. Be as transparent and clear as possible on what everyone should be doing.

Competition

Sometimes moderators feel that they are competing against each other, especially if there are statistics or promotions available. You should always be clear that moderation is not about competition, it is about helping your community in the best way possible. Not every moderator has the same time available to help, so naturally there are going to be differences amongst your team. Moderation is not about quantity but quality - if this negatively skewed competitive atmosphere is a frequent issue, it may be worth looking at whether there are mechanisms within your community that encourage competition conflicts that could be removed or revised, such as quotas, public moderation statistics, or leaderboards.

Different Values and Standards

Moderators usually come from all over the world and might have different values. Sometimes, these might result in a conflict. Remind your moderators that they should always respect each other's values, regardless of their own opinion. Moderators should be able to explain why they feel a certain way in order for others to be more understanding of the situation. When someone has values that do not align with the server’s moderation philosophy, you might need to remove them from your team.

Unresolved Underlying Issues

It is not always possible to immediately see a reason for a conflict, this might be due to unresolved underlying issues. It is very hard to know these without having a conversation with everyone involved. There can be many more causes for a dispute to arise, but it is always important to find the underlying issue which causes a conflict, only then are you able to resolve it.

Preventing Internal Conflicts

To minimize and prevent conflicts from happening, try as best as you can to get a comprehensive view of why and how conflicts occur in your server. It is very important to develop interpersonal relationships with all of your moderators and value their contributions to the server. Encourage moderators to take initiative in projects they are enthusiastic about, especially in collaboration with other moderators. Just as moderators set a positive example in your community, you as the leader of your moderation team should set a positive example within your team.

When you propose major changes to the server, listen to your team’s viewpoints before deploying and explain why a decision was made. Good communication is very important within a team, not only to prevent conflicts, but also to keep all moderators on the same page. All moderators should feel involved and informed when you are making major changes.

You can give your moderators regular feedback on how they are doing and what they can improve. Make sure moderators always feel welcome to provide feedback constructively and positively to each other and that they can always contact you or someone in charge in case a conflict does arise.

Try to discourage gossip within your team, both internal and external. When moderators start to talk about each other behind their backs, it becomes personal and can distort the relationship your moderators have and how they see themselves within the server. Instead, encourage moderators to form friendships with each other by organizing social events for your staff. During those events, you can learn about the different personalities in your team.

Last, but not least; you shouldn’t lash out over mistakes.Give feedback where it is appropriate and move on. Be quick to forgive and forget. You should always prevent belittling your moderators while also creating a culture of de-escalating situations in private.

Resolving an Internal Conflict

There are many ways to resolve conflict internally and most of these will depend on what the cause is for the conflict. A good way of resolving conflicts is using the Thomas-Kilmann model. It should be stated that conflicts are not necessarily bad and shouldn’t be avoided at all costs. When you are working in a team, it is important to be able to challenge the status quo and question each other, to keep everyone on the aligned and up to date.

In the Thomas-Kilmann model, there are two dimensions when you are choosing a course of action: assertiveness and cooperativeness. Assertiveness is the degree to which you try to satisfy your own needs where cooperativeness is the degree to which you try and satisfy the other person's concerns.

Based on these dimensions, there are five ways to handle a conflict:

  • Avoiding: Ignoring the conflict
  • Accommodating: Satisfying the other person’s concerns at your own expense
  • Compromising: Finding an acceptable compromise that partially satisfies everyone
  • Competing: Satisfying your own concerns at the expense of others
  • Collaborating: Finding a solution which satisfies the concerns of everyone



All these different ways to handle a conflict are your intention to solve them: Sometimes situations occur differently than you expect at first. Don’t jump to conclusions when you are dealing with a conflict, as the reasons for conflicts are often more complex than they first appear.  Everyone tends to resolve conflicts in a certain way, so try to balance them so you don’t end up overwhelmed or overwhelm others.

The first step is to identify the cause for the conflict. You might already know this based on previously sent messages, but sometimes you need to contact everyone involved separately and in private to determine the cause of the conflict. It is your responsibility to determine how to handle a situation. While collaborating together to resolve a conflict might look the most appealing, this will not always be possible. Try not to completely avoid a conflict: if you feel uneasy dealing with conflicts or don’t want to give moderators feedback, you might not want to be in a leading position.

If you need to resolve a conflict, choose a neutral place to work it out. This might be a separate server or a private group. None of the people involved in the conflict should have power over the others, so you or someone else should act as an objective observer. If the conflict is between other moderators, you should offer guidance, but don’t offer solutions: ultimately it is up to others to resolve their conflicts, you are not taking sides.

Remember that not all conflicts require consequences. Most conflicts are sparked by the passion of your moderators who are simply in disagreement on how to deal with situations. Try to turn a conflict into a learning opportunity for everyone involved. Let them explain how they view the situation and how they would have handled it or behaved differently. Afterwards, you should be able to identify specific disagreements that you can solve. Listen to everyone involved and give everyone an equal opportunity to express themselves. Remind everyone to stay respectful at all times, even if they disagree with each other.

Characteristic
Add Verified Role
Remove Unverified Role
Bypassing the server verification level
Users will be subject to the server verification level until they verify.
Users will not be subject to the server verification level on joining, but will be after they verify.
Role Permissions
The @everyone role should have no permissions, the Verified role should have the permissions you would normally give to @everyone.
The @everyone role should have normal permissions. The Unverified role should have no permissions.
Channel Permissions
Separate instructional & verification channels

@everyone role

✔ Read Messages in both channels

❌ Add Reactions in both channels
✔ Read Message History in instructional

❌ Send Messages in instructional

✔ Send Messages in verification
❌ Read Message History in verification

Verified role

❌ Read Messages in both channels

❌ Add Reactions in both channels

Combined channel
@everyone role

✔ Read Messages
✔ Read Message History

✔ Send Messages

❌ Add Reactions

Verified role

❌ Read Messages

❌ Add Reactions
Separate instructional & verification channels

@everyone role

✔ Read Messages in both channels

❌ Add Reactions in both channels
✔ Read Message History in instructional

❌ Send Messages in instructional

✔ Send Messages in verification
❌ Read Message History in verification

Verified role

❌ Read Messages in both channels

❌ Add Reactions in both channels

Combined channel
@everyone role

✔ Read Messages
✔ Read Message History*

✔ Send Messages

❌ Add Reactions

Verified role

❌ Read Messages

❌ Add Reactions

*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.

Characteristic
Interview
Click Reaction
Command in Channel
Command in DM
Ease of use
Requires the most effort from both moderators and users
Simple to perform, cannot mistype anything
More complex, users must read and type more carefully
Interaction with Server Verification Level
Users subject to server verification level (if using the Verified role method)
Users not subject to server verification level
Effectiveness
Extremely effective at deterring trolls from reaching the rest of the server
Users do not need to read instructions/rules as closely to understand what to do
Encourages users to read the verification message carefully
Encourages users to read the verification message carefully, but DM may not go through
Visibility
Moderators are directly involved
Moderators are unlikely to notice user action.
User action is visible to moderators
User action is not visible to moderators
Simplicity of setup
While the involvement of bots may be minimal, writing interview questions and determining evaluation criteria could be complex
Requires only a single #welcome type channel with instructions to click the reaction
Can require either only a single channel or two channels depending on preference
Does not require any channels, unless you want a backup verification method for users that have DMs disabled

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.

Giving and Receiving Feedback

As said before, you should discourage gossip within your team and encourage each other to give constructive feedback. It is important that everyone knows how to give and receive feedback to prevent a conflict from happening in future situations.

Giving Feedback

When you notice a moderator that displays behavior or takes action that can be improved, you should give them feedback on how to improve this in the future. Don’t rush in giving your feedback, everyone needs time to process. When a situation becomes heated, it will not be the best time to give feedback. Remember to always give feedback in private!

If you are in doubt as to whether or not you should give feedback, see if you can recognize a pattern in their behavior or actions. Everyone makes mistakes and that is perfectly fine as mistakes serve as a learning opportunity and you should only give them feedback if it becomes a pattern. Additionally, it’s recommended that you ask for consent to give feedback. While this may seem a little counterintuitive to helping the moderator improve or change, blindsiding someone when they’re not ready can result in backlash rather than progress.

When you do decide to give someone feedback, don’t focus on the person who made a mistake: focus on their behavior or action instead.By making feedback personal and equating it to an issue with the individual rather than their choices, you can come off as argumentative and unconstructive and biased. Never exaggerate their behavior, be sure that you are clear and specific . When you make generalized or vague comments about someone, they will not be able to improve their behavior. Feedback should be actionable- there should be a suggestion or a change that the individual can work on as a result of the feedback. Otherwise it’s just airing your grievances, which is unproductive for all parties involved.

The next time you see someone doing something good when you have given them feedback in the past, give them a compliment! Positive, specific feedback is especially effective in encouraging repeating said good actions. Giving each other positive feedback is just as important as giving each other constructive or corrective feedback.

Remember to always treat others as you would like to be treated yourself. It is proven that negative feedback is given mostly when people are experiencing negative emotions like hunger, anger, loneliness, and tiredness. This negative feedback method is referred to as the HALT-mode, and it is important to try to avoid situations where you are giving feedback when you find yourself in one of these states.

Receiving Feedback

When someone is giving you feedback, it is very important to listen to what they have to say. Don’t jump to conclusions, react defensively, or disagree immediately. Take a moment to summarize the feedback as you understand it to make sure you have understood their feedback correctly.

You should always thank someone for giving them feedback, even if you disagree. It has to be clear you are welcoming feedback to improve. If you do not thank them, they might not give you valuable feedback in the future.

Ideally feedback is very clear and specific, in which case you can end the conversation by thanking them for their feedback and reflect back what you are going to do with the feedback in the future. Other times it might not be understandable to you and as a result, it is unclear what you should do differently in the future. In this case you should ask questions to understand their feedback better. To have a better understanding of what they want to achieve with their feedback, it is a good idea to ask the other person how they would have handled the situation or how they would have behaved. After this you should thank them and reflect back on what you are going to do with their feedback.

It is okay to let someone know why you disagree with their feedback, but remember to stay respectful at all times and explain clearly why you disagree. Everyone should feel heard, even if you are not acting on their feedback.

Element
Description
Title
The text that is placed above the description, usually highlighted. Also directs to a URL, if given.
Description
The part of the embed where most of the text is contained.
Content
The message content outside the embed.
URL
The link to the address of the webpage. Mostly used with the thumbnail, icon and author elements in order to link to an image.
Color
Color of your embed’s border, usually in hexadecimal or decimal.
Timestamp
Time that the embed was posted. Located next to the footer.
Footer
Text at the bottom of the embed.
Thumbnail
A medium-sized image in the top right corner of the embed.
Image
A large-sized image located below the “Description” element.
Author
Adds the author block to the embed, always located at the top of the embed.
Icon
An icon-sized image in the top left corner of the embed, next to the “Author” element. This is usually used to represent an Author icon.
Fields
Allows you to add multiple subtitles with additional content underneath them below the main “Title” & “Description” blocks.
Inline
Allows you to put multiple fields in the same row, rather than having one per row.

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:

  • Embed titles are limited to 256 characters
  • Embed descriptions are limited to 2048 characters
  • There can be up to 25 fields
  • The name of a field is limited to 256 characters and its value to 1024 characters
  • The footer text is limited to 2048 characters
  • The author name is limited to 256 characters
  • In addition, the sum of all characters in an embed structure must not exceed 6000 characters
  • A webhook can have 10 embeds per message
  • A webhook can only send 30 messages per minute

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.

Handling Demotions

There are many reasons why you might want to remove a moderator from your team, including internal conflicts you are unable to resolve. Removing or demoting a moderator is not easy to do, but can be a necessary evil. Removing someone from your team should be in the best interest of your community or team and can often be in the best interest of that person as well. Be sure to give someone an opportunity to learn from their mistakes before removing them. Give a warning first and have a conversation in private with them, following the principles of giving and receiving feedback outlined above.

While it is not easy to deliver bad news, here are some tips to keep in mind when you do want to remove someone from your team.

Don’t delay the conversation

Once you have made the decision to remove someone from your team, don’t hesitate and wait for the conversation to take place. When someone is causing more issues than they are solving, they will need to be removed sooner than later, but make sure that someone has had enough opportunities to fix their mistakes and resolve their issues. Please make sure you have this conversation in private, for example in direct messages or a voice call.

Keep it short and clear

When you are talking to someone you are removing, it is important to keep your message short and clear. Tell them they are being removed from the team, why you have made this decision, and when this will take effect. Be transparent in what reasons you have for removing them, but do not go into too much detail with specific examples. This may result in a conversation where you are arguing about these examples rather than informing them of their removal.  You’re aiming for polite dismissal, not a lambasting of their character.

Stick to your decision

Despite your message being short, clear, and transparent, you might still receive counter arguments as to why they should not be removed and to give them another chance. It is important they can express themselves, but it should be clear at all times that the decision to remove them has already been made and is not up for debate. Always listen carefully to what someone has to say and appreciate their feedback, but unless someone has substantial evidence a mistake was made, repeat your decision and make it clear that your decision is final.

Be helpful and compassionate

Even though you are delivering bad news, you should take a supportive approach in the conversation. Remember that while it might be difficult for you to deliver bad news, it most definitely is difficult to be on the receiving end. Show empathy for them and especially when they have done a good job in the past.


In some cases, the moderator you’re removing may wish to receive feedback on what they can improve - giving this feedback in a constructive fashion is important, and will help them to avoid future problems. This feedback should include reflecting on the positive contributions they made to the team, helping them understand what the causes of conflict might have been while they were on your team, or simply trying to give them something positive to take forward and work on as a result of your conversation. This conversation shouldn’t reflect a reversal of your decision, but can be a useful point of reference if they want to join other servers or work on improving their skills down the line, or perhaps even re-apply to join the team in the future.

Inform your team

When someone has been removed from your team, make sure to inform the team of this decision. It is up to you whether or not you want to share the reason for their removal, but refrain from sharing details as these are confidential, especially when these could be potentially harmful to someone. You also want to prevent anyone, including yourself, from talking bad about them, as this sets a wrong precedent for your team. As with your decision, you should be straightforward and clear to your team, an example of this could be: “Today we have decided to remove Sarah from our team. I will not go into too much detail why this decision was made, but we believe it is the best decision for the community and the entire team.”

In case someone was removed because of misbehavior, you might want to include that in the message, as this gives the team assurance you are not removing someone because of a personal conflict, and it shows a strong message about how you want moderators to conduct themselves.

Wrapping Up

In every group, eventually a conflict or dispute will arise which needs to be resolved. There are common causes, such as personality clashes and differences, poor communication, unclear responsibilities, and harassment. To minimize and prevent conflicts from happening, try and understand as much as possible why conflicts occur in your server. It is very important to develop interpersonal relationships with all of your moderators and value their contributions to the server. Try to discourage gossip within your team. When moderators start to talk about each other behind their backs, it becomes personal and can distort the relationship your moderators have and how they see themselves within the server.

You can resolve conflicts using the Thomas-Kilmann model. It is important to know conflicts are not necessarily bad and shouldn’t be avoided at all costs. When you are working in a team, it is important to be able to challenge the status quo and question each other, to keep everyone on the same page and sharp.

When you want to give feedback to someone, talk to them in private and be clear and specific. Prevent giving feedback when you feel hungry, angry, lonely, or tired. Focus on their behavior or action instead and never exaggerate their behavior. Oppositely, when someone is giving you feedback, it is very important to listen to what they have to say and to avoid jumping to conclusions, reacting defensively, or disagreeing immediately. Take a moment to summarize the feedback to make sure you have understood their feedback correctly.

Sometimes you need to remove someone from your staff team. Don’t delay this conversation, keep it short and clear, and stick to your decision. When the conversation is taking place, be helpful and compassionate and do not forget to inform your team as well, but make it clear that certain things remain private for the safety and privacy of those involved.

Keeping all of those points in mind when managing a team environment will be integral to maintaining a healthy atmosphere full of various viewpoints that are united in the shared desire to keep your community safe.

Hypothesis
Chart/Table Affected
Expected Result
Removing invite links from less relevant traffic sources will decrease server growth.
  • How many new members are joining?
  • Total membership over time
  • Most popular invites/referrers
  • New members joining decreases
  • Total membership over time grows more slowly or decreases
  • Total joins from the invite link/referrer decreases
Adding or promoting an invite link on a relevant traffic source will increase server growth
  • How many new members are joining?
  • Total membership over time
  • Most popular invites/referrers
  • New members joining increases
  • Total membership over time increases more quickly or decreases more slowly
  • Total joins from the invite link/referrer increases
Improving the overall quality of referrers will attract people that are more likely to stay on your server and engage with your community
  • Server leaves over time
  • How many new members successfully activate on their first day?
  • Members remain on your server after joining, decreasing server leaves over time from new members
  • Members are more likely to want to engage with your server prior to joining, and will be more likely to talk or visit multiple channels
Webhooks
Bots
Function
  • Can only send messages to a set channel.
  • They can only send messages, not view any.
  • Can send up to 10 embeds per message.
  • Much more flexible as they can do more complex actions similar to what a regular user can do.
  • Bots are able to view and send messages.
  • Only one embed per message is allowed.
Customization
  • Can create 10 webhooks per server  with the ability to customize each avatar and name.
  • Able to hyperlink any text outside of an embed.
  • Public bots often have a preset avatar and name which cannot be modified by end users.
  • Cannot hyperlink any text in a normal message, must use an embed.
Load and security
  • Just an endpoint to send data to, no actual hosting is required.
  • No authentication that data sent to webhook is from a trusted source.
  • No authentication that data sent to webhook is from a trusted source.If webhook URL is leaked, only non-permanent problems may occur (e.g. spamming)
  • Easy to change webhook URL if needed.
  • Bots have to be hosted in a secure environment that will need to be kept online all the time, which costs more resources.
  • Bots are authenticated via a token, compromised token can cause severe damage due to their capabilities if they have permissions granted to them by the server owner.
  • However, you can reset the bot token if needed.

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.

Spam Type
Mee6
Dyno
Giselle
Gaius
YAGPDB
Carl
Gearbot
Fast Messages
No
Yes
Yes****
Yes
Yes
Yes
No
Repeated Text
Yes
Yes
Yes****
Yes
Yes
No
No
Newline Text
No
No
Yes****
Yes
No
No
No
Mentions
Yes
Yes
Yes
Yes
Yes
Yes
Yes*
Links
Yes*
Yes*
Yes*
Yes
Yes***
Yes
Yes
Invites
Yes*
Yes*
Yes*
Yes
Yes
Yes
Yes
Images
No
Yes
Yes
Yes**
No
Yes
No
Emoji
Yes
Yes
No
Yes
No
No
No

*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.

FIlter
Mee6
Dyno
Giselle
Gaius
YAGPDB
Carl
Gearbot
Banned words
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Whitelist
No
No
Yes
Yes
Yes
No
Yes
Templates
No
Yes
No
Yes
No
No
No
Immunity
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Banned Links
Yes*
Yes*
No
Yes
Yes*
Yes***
Yes
Whitelist
Yes
No
No
Yes
Yes**
Yes***
Yes
Templates
No
No
No
Yes
Yes**
Yes***
No
InvitesNo
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Extras
Zalgo
Selfbot
Regex
Regex
Files
No

*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.

Mee6
Dyno
Giselle
Gaius
YAGPDB
Carl
Gearbot
Raid detection
No
No
Yes
No*
No
No
No
Raid prevention
No
No
Yes
Yes
No
No
No
Raid-user detection
No
No
Yes
Yes
No
No
No
Damage prevention
No
Yes
No
Yes*
No
Yes
No
Templates
No
No
No
Yes
Yes**
Yes***
No
Raid anti-spam
No
Yes
Yes
Yes
Yes
No
No
Raid Cleanup
No
Yes
Yes
Yes
Yes
Yes
Yes

*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.

Filter
Mee6
Dyno
Giselle
Gaius
YAGPDB
Carl
Gearbot
Bad words
No
No
No
Yes*
Yes
No
No
Spam
No
No
No
Yes*
Yes**
No
No
Hoisting
No
No
No
Yes*
Yes**
No
No

*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.

Hypothesis
Chart/Table Affected
Expected Result
Enabling or adjusting the Welcome Screen will guide users to the right introduction channels and encourage engagement
Welcome Screen
  • All metrics
Growth & Activation
  • How many new members successfully activate on their first day? - % visited more than 3 channels
  • Users click on each channel in equal proportion and send messages in equal proportion afterwards
  • % visited more than 3 channels will increaseFirst day activation increases
Streamlining the channel and role structure will make the server less overwhelming to new users and encourage participatio

nand/or

Greeting people upon joining the server in a general chat channel will encourage them to respond and participate in the community
Growth & Activation
  • How many new members successfully activate on their first day?
Engagement
  • How many members visited and communicated?
  • Message activity
  • Which text/voice channels do people use the most?
  • % talked (voice or text) will increase
  • % communicators will increase
  • Message activity will increase
  • Channels that are made opt in, require privileged access, or moved to the bottom of the channel list will have less engagement than other channels
  • The channel with greet messages will have an increased number of readers and, if send messages is enabled, a greater number of messages and chatters
Implementing a news feed announcement channels with role notifications will encourage people to check the announcement channel regularly
Growth & Activation
  • How many new members retain the next week?
Engagement
  • Which text/voice channels do people use the most?
  • Members retained will increase
  • Readers on the announcement channel will increase
Implementing community engagement campaigns will improve activity
The measurement and expected results of each community engagement campaign will vary based on the exact nature of the campaign. However, you can expect that they will improve some combination of first day activation, user retention, and/or percent communicators within your server.

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.

Ready to test your moderator skills?

Take the Discord Moderator Exam!

Take the Exam