A community can run events for a multitude of reasons, whether they are playing a game, celebrating a special event, or just because it's Tuesday! Whatever the reason behind the event they all help achieve one goal: boosting participation and bonding with your community.
Why do we need to create bonds? A community is a group of people who come together for any number of reasons- be it common interests, beliefs, or experiences. These commonalities allow community members to form bonds with one another. Creating these bonds for your community is important because it will help create a sense of ownership between the server and your members. It also allows these individuals to graduate from a regular member to someone who can call your server home. One of the best ways to promote the organic growth of these bonds is through the organization of community events.
Anyone can host a community event provided they have permission from the server staff such as the owner or administrator. Some servers even have a role who’s whole job is to come up with fun events! There are many approaches to deciding who can host events so decide what's best for your community.
*Unless you are using the channel description for verification instructions rather than an automatic greeter message.
If you want to use the remove unverified role method, you will need a bot that can automatically assign a role to a user when they join.
Verification Actions
Once you decide whether you want to add or remove a role, you need to decide how you want that action to take place. Generally, this is done by typing a bot command in a channel, typing a bot command in a DM, or clicking on a reaction. The differences between these methods are shown below.
In order to use the command in channel method, you will need to instruct your users to remove the Unverified role or to add the Verified role to themselves.
A good way to get your community involved with an event is to cater to the community you have and build on that:
Asking the right questions can greatly inform the next event that is run. These questions could be asked through a google form or even directly in one of your discussion channels. You could even set these channels up so your community members can give feedback at their leisure. Ensure the questions you ask are those that can be answered easily, but also allow for more meaningful answers. An example of these questions and some follow-ups are:
This feedback allows community members to feel like they have a say in the server. It keeps your community invested and engaged because they have a hand in the things that affect them directly.
Set up a few weeks of recurring events and stick to it! If your community knows what to expect they can plan around your events and make it a part of their schedule.
What to do if people are late? That’s up to you to decide! If you’re running an event for a smaller, more intimate group, it may be worth waiting a few extra minutes to allow everyone to attend. This may not be advisable for bigger communities with many people as it may not be convenient for those who attended on time. Use your best judgement to decide what fits best for your community.
A major factor of keeping your community involved is by keeping them entertained. Make the event fun. Talk with your community, interact with them, thank them for joining in and being a great member of the community.
Another way to get a larger turnout for a community event is host giveaways. However, something to keep in mind: giving away stuff is great, but don’t make it the central focus. Your community should attend your events because they’re looking for fun and camaraderie not because they want to snag some loot. Employ some rules to ensure that they are participating. E.g.: Play and win one game with us to win a month of Discord Nitro. What are examples of good rewards versus bad rewards? Should they be temporary, or permanent? On the platform, or awarded IRL?
While it may seem a bit formal, asking people to sign up can help with attendance since it puts the responsibility on the members to commit to a time. This can also help dictate what you will do if you have too many or too few people for a particular activity.
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.
So you’ve gotten this far and are ready to announce! what do you say? When announcing your event to your community make sure you are clear and concise and all the important information is easy to find. First we’ll give you an example and explain why this is a good template if you’re looking where to start.
Formatting your announcement using the markdown tools provided within Discord will ensure that your announcements are easy to read with all important information clearly stated.
Be specific and let your community know what day and time to expect this event. “This Saturday!” might work, but its best practice to provide clear dates and times to avoid unnecessary confusion. Note: If your community features members from various time zones, it may be good to include different times in your announcements or a link to a website that can convert time zones such as World Time Buddy.
The days you choose can be just as important as the game you choose to play. Keep your community’s regular peak active hours in mind when planning your event.
Where is your event taking place within the server. Don’t be afraid to link, if these channels are always available!
Let your community members know what you’ll be doing during the event whether it be what game you’re playing or the movie you’ll be watching.
Try to make your announcements as colorful and interesting as the events themselves! Throw in some fun emotes or add a neat photo to spice up the announcements.
You’ve announced your event and want to set up your server. What's the best way to do this? First we’ll provide an example and explain why this is a good place to start!
This game night example features a special category, this helps with server organization and allows your community members to easily find where this event is taking place.
Depending on the event, you might want to have a chat channel open so your users can communicate without using voice.
Give your community a place to talk to each other. That’s what Discord is for afterall!
Note: Since we’re using Discord we also have a handy way to share our screen with the rest of the server. While this isn't necessary, depending on what type of event you’re hosting you may want to make use of this awesome tool!
How should you moderate a community event? While this may seem like a difficult task as long as you have clear rules for the rest of your community you can simply extend those to your events. It’s important to set clear expectations before your event and these can also be a part of your initial announcement.
You may need to create a special set of rules for your specific event. For example, a “No Spoilers” rule if you decide to watch a movie simultaneously or “No Spectating/Stream sniping” rule if you're playing a competitive game.
Even though this comparison is important for better understanding of both bots and webhooks, it does not mean you should limit yourself to only picking one or the other. Sometimes, bots and webhooks work their best when working together. It’s not uncommon for bots to use webhooks for logging purposes or to distinguish notable messages with a custom avatar and name for that message. Both tools are essential for a server to function properly and make for a powerful combination.
*Unconfigurable filters, these will catch all instances of the trigger, regardless of whether they’re spammed or a single instance
**Gaius also offers an additional NSFW filter as well as standard image spam filtering
***YAGPDB offers link verification via google, anything flagged as unsafe can be removed
****Giselle combines Fast Messages and Repeated Text into one filter
Anti-Spam is integral to running a large private server, or a public server. Spam, by definition, is irrelevant or unsolicited messages. This covers a wide base of things on Discord, there are multiple types of spam a user can engage in. The common forms are listed in the table above. The most common forms of spam are also very typical of raids, those being Fast Messages and Repeated Text. The nature of spam can vary greatly but the vast majority of instances involve a user or users sending lots of messages with the same contents with the intent of disrupting your server.
There are subsets of this spam that many anti-spam filters will be able to catch. If any of the following: Mentions, Links, Invites, Emoji, and Newline Text are spammed repeatedly in one message or spammed repeatedly across several messages, they will provoke most Repeated Text and Fast Messages filters appropriately. Subset filters are still a good thing for your anti-spam filter to contain as you may wish to punish more or less harshly depending on the spam. Namely, Emoji and Links may warrant separate punishments. Spamming 10 links in a single message is inherently worse than having 10 emoji in a message.
Anti-spam will only act on these things contextually, usually in an X in Y fashion where if a user sends, for example, 10 links in 5 seconds, they will be punished to some degree. This could be 10 links in one message, or 1 link in 10 messages. In this respect, some anti-spam filters can act simultaneously as Fast Messages and Repeated Text filters.
Sometimes, spam may happen too quickly for a bot to catch up. There are rate limits in place to stop bots from harming servers that can prevent deletion of individual messages if those messages are being sent too quickly. This can often happen in raids. As such, Fast Messages filters should prevent offenders from sending messages; this can be done via a mute, kick or ban. If you want to protect your server from raids, please read on to the Anti-Raid section of this article.
Text Filters
Text filters allow you to control the types of words and/or links that people are allowed to put in your server. Different bots will provide various ways to filter these things, keeping your chat nice and clean.
*Defaults to banning ALL links
**YAGPDB offers link verification via google, anything flagged as unsafe can be removed
***Setting a catch-all filter with carl will prevent link-specific spam detection
A text filter is integral to a well moderated server. It’s strongly, strongly recommended you use a bot that can filter text based on a blacklist. A Banned words filter can catch links and invites provided http:// and https:// are added to the word blacklist (for all links) or specific full site URLs to block individual websites. In addition, discord.gg can be added to a blacklist to block ALL Discord invites.
A Banned Words filter is integral to running a public server, especially if it’s a Partnered, Community or Verified server, as this level of auto moderation is highly recommended for the server to adhere to the additional guidelines attached to it. Before configuring a filter, it’s a good idea to work out what is and isn’t ok to say in your server, regardless of context. For example, racial slurs are generally unacceptable in almost all servers, regardless of context. Banned word filters often won’t account for context, with an explicit blacklist. For this reason, it’s also important a robust filter also contains whitelisting options. For example, if you add the slur ‘nig’ to your filter and someone mentions the country ‘Nigeria’ they could get in trouble for using an otherwise acceptable word.
Filter immunity may also be important to your server, as there may be individuals who need to discuss the use of banned words, namely members of a moderation team. There may also be channels that allow the usage of otherwise banned words. For example, a serious channel dedicated to discussion of real world issues may require discussions about slurs or other demeaning language, in this exception channel based Immunity is integral to allowing those conversations.
Link filtering is important to servers where sharing links in ‘general’ chats isn’t allowed, or where there are specific channels for sharing such things. This can allow a server to remove links with an appropriate reprimand without treating a transgression with the same severity as they would a user sending a racial slur.
Whitelisting/Blacklisting and templates for links are also a good idea to have. While many servers will use catch-all filters to make sure links stay in specific channels, some links will always be malicious. As such, being able to filter specific links is a good feature, with preset filters (Like the google filter provided by YAGPDB) coming in very handy for protecting your user base without intricate setup however, it is recommended you do configure a custom filter to ensure specific slurs, words etc. that break the rules of your server, aren’t being said.
Invite filtering is equally important in large or public servers where users will attempt to raid, scam or otherwise assault your server with links with the intention of manipulating your user base to join or where unsolicited self-promotion is potentially fruitful. Filtering allows these invites to be recognized, and dealt with more harshly. Some bots may also allow by-server white/blacklisting allowing you to control which servers are ok to share invites to, and which aren’t. A good example of invite filtering usage would be something like a partners channel, where invites to other, closely linked, servers are shared. These servers should be added to an invite whitelist to prevent their deletion.
Anti-Raid
Raids, as defined earlier in this article, are mass-joins of users (often selfbots) with the intent of damaging your server. There are a few methods available to you in order for you to protect your community from this behavior. One method involves gating your server with verification appropriately, as discussed in DMA 301.You can also supplement or supplant the need for verification by using a bot that can detect and/or prevent damage from raids.
*Unconfigurable, triggers raid prevention based on user joins & damage prevention based on humanly impossible user activity. Will not automatically trigger on the free version of the bot.
Raid detection means a bot can detect the large number of users joining that’s typical of a raid, usually in an X in Y format. This feature is usually chained with Raid Prevention or Damage Prevention to prevent the detected raid from being effective, wherein raiding users will typically spam channels with unsavoury messages.
Raid-user detection is a system designed to detect users who are likely to be participating in a raid independently of the quantity of frequency of new user joins. These systems typically look for users that were created recently or have no profile picture, among other triggers depending on how elaborate the system is.
Raid prevention stops a raid from happening, either by Raid detection or Raid-user detection. These countermeasures stop participants of a raid specifically from harming your server by preventing raiding users from accessing your server in the first place, such as through kicks, bans, or mutes of the users that triggered the detection.
Damage prevention stops raiding users from causing any disruption via spam to your server by closing off certain aspects of it either from all new users, or from everyone. These functions usually prevent messages from being sent or read in public channels that new users will have access to. This differs from Raid Prevention as it doesn’t specifically target or remove new users on the server.
Raid anti-spam is an anti spam system robust enough to prevent raiding users’ messages from disrupting channels via the typical spam found in a raid. For an anti-spam system to fit this dynamic, it should be able to prevent Fast Messages and Repeated Text. This is a subset of Damage Prevention.
Raid cleanup commands are typically mass-message removal commands to clean up channels affected by spam as part of a raid, often aliased to ‘Purge’ or ‘Prune’.It should be noted that Discord features built-in raid and user bot detection, which is rather effective at preventing raids as or before they happen. If you are logging member joins and leaves, you can infer that Discord has taken action against shady accounts if the time difference between the join and the leave times is extremely small (such as between 0-5 seconds). However, you shouldn’t rely solely on these systems if you run a large or public server.
User Filters
Messages aren’t the only way potential evildoers can present unsavoury content to your server. They can also manipulate their Discord username or Nickname to cause trouble. There are a few different ways a username can be abusive and different bots offer different filters to prevent this.
*Gaius can apply same blacklist/whitelist to names as messages or only filter based on items in the blacklist tagged %name
**YAGPDB can use configured word-list filters OR a regex filter
Username filtering is less important than other forms of auto moderation, when choosing which bot(s) to use for your auto moderation needs, this should typically be considered last, since users with unsavory usernames can just be nicknamed in order to hide their actual username.
In this section we’ll go over some situations that may happen and how to handle them.
The day of your event arrives, you’ve had an awesome announcement, have all of your channels ready and maybe only a few people show up. What do you do? First, give yourself a pat on the back. You did the hardest thing anyone could do which is put yourself out there and set up a great event.
Next, ask your community for feedback. Maybe the date and time weren’t convenient, maybe they didn't like the activity you set up or it could be they forgot. Consider posting reminders to let everyone know when an upcoming event is coming up. Tell your community members to invite a friend to attend the next event- word of mouth is a great way to increase awareness.
Lastly, have fun! Even if you only have 3 people in attendance pretend you’re at Discordcon and everyone is invited! A small gathering of highly enthusiastic community members can be just as entertaining and worthwhile as a larger but more lackluster group gathering. By staying engaged yourself you’ll spread that positivity which others will also pick up on.
Things happen that are out of your control, and that's ok. Depending on the size of your community, it may be beneficial to train and designate someone to take your place if you cannot host your event. This person can be someone from your moderation staff if they feel they’re up to the task or even a member of a designated event team!
What if you’re ready and rearing to play your favorite obstacle course battle royale but your community want to play the hottest murder mystery space game? Depending on the size of your community and how close you are, there are different ways to approach this. For small groups, you’ll probably be fine with switching up your activities.
For larger groups you’ll probably have a fair amount of people who are attending for your specific activity which may upset those who took the time to attend. In this situation, make sure you acknowledge those who want to switch up the event and propose another day for the activity.
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.
Hosting community events can be a lot of fun and can really bring your community together. Get to know your community and create an event that best caters to them for an optimal outcome. But remember- the aim is to have fun, create bonds, and foster a sense of belonging amongst one another! The result will be a community that's highly engaged, unified, and happy.