“Governance” - The way that organizations or countries are managed at the highest level.
“Governance System” - Composed of the server’s mission, vision, and values.
To provide the best atmosphere for both the community and your moderators your moderation team needs to be structured appropriately. There is no single correct structure that applies for communities, and it may be necessary to change models over time. The way your community is structured is determined by what it needs. Without a suitable governance structure to your moderation team there can be confusion between staff, inconsistencies, overlaps, and gaps that make themselves apparent once the system is put under any strain.
Most servers on Discord function more effectively when certain standards are met. Each standard is essential for effective leadership, organization and growth. If one of these standards are not met, then you may run the risk of the other areas of the server degrading in quality. This degradation will influence the service, sustainability, and community of your server. In this chapter, we will focus on the vital key aspects with a closer look at the decision making process. The most important qualities to maintain are:
Structure: A good and easily understood structure is the first step towards an efficient team. It improves clarity, coordination and overall accessibility for everyone involved. It should establish a general design of responsibilities for operations, control, and reporting structures.
The reporting structure refers to the chain of command so to speak, i.e. it defines who reports to whom. Ensure that the design is easily understood by staff and potential external partners. It should include functions of the staff roles and position to make sure that everyone is on the same page.
Knowledge and Skills: Your moderators should be both knowledgeable on the technical aspects of moderation as well as possess the proper skills to moderate effectively and efficiently within the structure of your team.
Staff Accountability: Accountability ensures that the actions that people in power in your server (your staff/mods) are held responsible for the actions that they take.
Risk Management: Risk management does not necessarily mean risk avoidance. Every server will have to make hard decisions for the sake of maintaining order and increasing participation. You need to know what impact your potential decisions will make on the community as a whole. Finding a balance between taking risks that can disrupt a server and taking risks that are necessary for the server’s betterment and having a team that is well versed in that makes your community all that more stable and capable.
When it comes to effective governance structures, it is important to create a process that facilitates decision making. In every aspect of your community, decision making plays a major role. Setting long-term goals and deciding how to advertise the community can be part of that strategy. You also have to think operationally; what punishment is appropriate when a user misbehaves? Decision making is not a static process: it constantly evolves as your community does, it should change to your community’s needs.
A major decision you have to make is how much influence your community members will have and how this affects your governance structure. For example: will members of your community be able to vote for moderator positions? Do you want a community vote on major changes to the server? In most communities there will be a feedback or suggestions channel in which members of the community can influence your decision making process by presenting ideas and proposing changes.
The same question should be asked for your moderators. What influence do they have on your decision making process? Are moderators part of decisions regarding major server changes? Do you have guidelines in place for moderators that determine the length of punishments, or is that decision left up to each moderator? Do you take a proactive approach to get feedback from your moderators, or do you wait passively for suggestions to come in?
Due to how Discord is set up, there will always be a single owner in charge, but other members of your staff can be responsible for different types of decisions. When you want to implement a change or when you open up suggestions, you have to clearly define how decisions will be made. Here are some options to consider:
Voting: You could opt to go the democratic route when making decisions. This can either be a public vote where members are involved or the vote could be amongst members of your staff. You can decide whether or not the vote should be a majority or unanimous decision. You should also be clear if, when, and why someone, such as the server owner, can veto a decision if you choose voting as your decision making process.
Compromising: You can also choose to look for a compromise among members of your staff or the community. In this instance, you question the decision itself and change it until everyone is satisfied with the outcome. A compromise might result in decisions you initially did not think of, but can also take longer.
Deciding: You could simply make decisions as the server owner and present them as changes rather than something up for discussion. In this case, you eliminate influence from other members of the community, but decisions are made much faster.
Ranking: When multiple options are present, those could be ranked based on different factors such as pros and cons. Ranking can be more insightful than a simple vote, which will result in a better understanding of different opinions.
Consensus: When nobody objects to a suggestion, you could make a decision based on consensus.
Experience: Some members of your community or staff might be highly skilled in a certain area and you could ask them to make a decision based on their experience. This could be the case in decisions about new features of a bot you are using. Someone experienced in programming might be more aware of the limitations of Discord.
Decision making is a vital part of your community as it affects both your governance as well as your vision of the community as a whole. Having good decision making processes in place ensures a better structure for your community and staff. It translates into better understanding of responsibilities, it improves ownership of the community, and further clarifies your governance structure.
A community’s structure can be generally divided in a horizontal and vertical hierarchy. Most communities choose a vertical approach in which they define different roles by assigning them specific tasks. Classically speaking, this will be your owner, admins and moderators, but of course this might be different depending on your community’s needs.
Some communities opt for a more horizontal approach; different members of the staff or community are responsible and accountable for different areas and tasks. Of course, you do not have to choose between either and they can coexist. Keep in mind that you will always have a server owner so every server will have a vertical hierarchy to this extent.
Each community will have a different structure. Some communities have major involvement of members of the community, while others are strictly run by a single person. Most communities however have a structure of the owner, admins and moderators. The owner is tasked with strategic decisions in regards to the community and the team. They formulate the vision of the community, set long-term goals, define roles and values and so on. Admins will be in charge of the moderation team, onboard new moderators, handle appeals, manage channels and handle moderator complaints. Moderators will be handling the day-to-day tasks. This is a vertical approach in which each position is higher or lower in a formal hierarchy.
A horizontal structure consists of tasks or responsibilities shared between members of your staff. Moderators could be responsible for different channels rather than the server as a whole, or some could be tasked to deal with ban appeals while others might be more community-oriented and focus on feedback channels.
Both systems can coexist and have their own value. In a vertical system, everyone has a clear role with tasks, where the horizontal system introduces more ownership and responsibilities to the team. Members of the team will be more accountable for their responsibilities than in a vertical system. Ownership within a horizontal system translates to being more involved in the server’s mission, vision and values as members of your team will be directly responsible for areas that have an impact on those.
As mentioned before, when creating a governance structure for your Discord there really isn’t a one size fits all layout. One key aspect of a working governance structure is that it is settled in that it is stable, but also fluid in that it is flexible. There will be the need for constant adjustments and improvements over time, so try to let go of “old systems” and focus on what benefits your Discord server the most.
Our first example will be a typical pyramid, mainly vertically focused governance, which would normally look like this:
Having such a settled, structured system will be good for both the server and the staff team. Everyone knows who they report to, and everyone knows their responsibilities and reach. The struggle of a pyramid system comes when staff members feel like they are not valued enough or disapprove of promotions to higher ranks. It can be a source of tension between staff, and higher staff have the potential to become disconnected from the rest of the server.
A way to prevent those problems can be done by introducing a fluid, more horizontally structured hierarchy to the previous system. Fluid being that your government is flexible and allows change when necessary.The drawbacks of too much fluidity could be that it’s easy to lose sight of who does what and who is responsible for what, so make sure that you have properly defined the place and responsibilities of the roles you introduce.
*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.
Along with the previously mentioned components and attributes including the community in your governance mechanics can turn out to be quite fruitful in improving said community. Many server owners and higher staff still have the mindset of “keep everything private, hold the server at bay, control and command”, which means that they act on the server’s behalf without having an actual connection to the community. Getting feedback from your members can combat that.
Receiving feedback can be done through multiple ways, as shown below:
The easiest way of empowering the community to participate can be done through public channels such as a #feedback or #suggestion channel. It is the most straightforward way to get feedback of both positive and negative nature from users and get inspired by any new ideas they might propose. Introduce a responsible staff team that answers and discusses the feedback and suggestions with both users and the rest of staff if there is any useful advice. This team should be focusing on making sure that all of the relevant information is disseminated in an appropriate way as to avoid any confusion or incomplete assumptions made on the uninformed community’s behalf.
As an alternative to using channels in the server itself, you can implement a feedback system by using the ModMail bot. It will allow you to group selected members that can respond while everyone else can see it. Staff can then address the ticket in a closed environment without discussing it in front of the public eye or running the risk of it getting lost in the staff channel. Additionally, it will be easier to contact higher staff and ask for their opinions and finally, it will be easier to archive.
If you want to extend the community influence beyond your Discord server, you can use Social Media that represents your server or community on popular platforms like Twitter, Reddit or similar. That, and e-governance have proven themselves as useful tools for creating increased transparency and filtering useful feedback.
Sometimes you may want to have feedback from people that aren’t part of the staff team, but you also don’t want to solicit it from the whole server just yet. You may want to instead, start with asking for feedback from more influential members or highly visible and active members of your server. They may vary from stakeholders to staff from other communities to the most prolific members in your server. The latter will be especially important if your staff team is missing a connection to the active Discord community while they’re working on running the server from behind the scenes. Occasionally staff might think their plans will be an improvement for the server and community, but the community itself may not agree.
To include active and sociable members in your governance, you can give them a special role which can be called something along the lines of “Community Guides”. They won’t quite have the power that normal moderators do - optionally they will have ‘manage messages’ or similar low-level discord permissions - but their main use will be to give feedback on the community’s behalf. They will be the needed link between staff, especially community management, and the Discord users.
While these users don’t need to know everything that’s going on under the hood, you should at least involve them in changes that will impact their and the rest of the community’s experience on the Discord server. That includes things like changes/addition of roles or channels, community events, and other things along those lines. While the staff decisions hold priority, you should not disregard the community guides’ opinions. They may contradict your original plans and vision, but you should weigh how valuable their knowledge is against how badly you want to implement something and see if you can reach a compromise should that contradiction exist.
Make sure that your selected influential members are trustworthy and don’t leak any information. They should only receive feedback from the public community when they are asked to and they should not assume that they are staff. Nonetheless, their input and time and efforts should be properly acknowledged and appreciated- they, like you, just want to make the community you share a better place.
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.
Having a well organised and structured governance is the key to a successful server and content staff team. The most crucial components to every working server is communication.If your staff team feels like they are at a crossroads or cannot find the obvious solution to a problem on the server, consider seeking out experienced outsiders or the community itself. Even though you may have the best intentions at heart when making decisions for your server, leaning on your carefully crafted community governance structure can open your eyes to solutions that may not have crossed your mind. While not every mentioned feature has to be part of your server, we hope that these guidelines give you an idea of what your server could implement.
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