Let’s start with the best question: why are you moving to Discord? Sometimes, the easiest answer is the most obvious answer. Maybe you’re looking for a better platform to support your community, a better system in organizing your community, or just boosting activity on a dead platform. Communities that solely exist around platforms like IRC and forums tend to have some issues that can’t be solved by fixing the platform: IRC is less actively used and forums can be complicated and take a while to navigate properly. Because of these inherent platform issues, Discord makes a substantial effort to fix these issues. Giving your users a better place to chat and interact revives a lot of dying communities.
Every community has “that guy”. You know that guy. The one who refuses to let go and chooses not to move platforms because they already have a rhythm. A flow. Daring to mess with that workflow, they’ll stop at nothing to make sure they can continue to use the things they currently use. What’s the best way to handle users like this? Well, let’s start with the users who don’t have that problem.
Every platform has a way to do this, and it’s usually the most effective. Particularly for those who still actively check the platform from time to time. Making a simple system announcement “We’ve moved!” can get you a large chunk of users in no-time. Fortunately, Discord’s new user onboarding process also makes joining Discord simple, since they only need the invite for the server, and the app walks them through setting up an account during the join. (But you probably already knew that as a seasoned Discord user!)
Announcements should be pretty informative to users. A simple “We’ve moved!” could suffice, but giving your users a reason to why or info on what Discord is can be the best tool in your announcement. Being candid and transparent can go a long way with your users. You can start off with a “You might have noticed a lack of activity here…” or “We’re hoping to rejuvenate the community again!”. As long as you provide a little information on the move and its significance, many users will be willing to join a new platform.
Alright, so you’ve got the transition started, but what about new users looking for your community? Make sure you start redirecting them! Update any of your social media, website links, or domain links to the Discord server with a permanent invite. For better tracking, you can even set up multiple server invites to go to specific places.
You can even embed a preview of your server in your web page, or you can redirect entirely to the discord invite and let it open in the web chat. If your community has a website as well, you can enable the Discord Widget in the server settings to display on your website (Server Settings > Widget). This is a great tool to show how active your community is on the Discord server, and jump right to it from the widget. A little caution here: website crawlers love to find these and drop bot accounts in for raiding, so it may be a good idea to up your security in the server, or look to an advanced article on handling raids.
While your existing user base might be enough to jump start your server, you might want to look into different forms of advertising it to keep growing your community
There are plenty of Discord server lists, even lists of lists! If you meet the requirements you can also make your server discoverable and let the users join from other discord, but one of the most effective ways to get new users is word of mouth from your current ones. This also ensures that incoming members have at least a few things in common with your already existing population.
To help with that, put your invite link in the first channel users see, at the bottom. Make sure new users have a good experience and don’t get lost.
Part of the beauty in Discord is that you can build an organized server that meets the needs of all of your members that can be customized using a few built in tools and a bot or two in a server. Users coming from a forum or IRC background are used to being forced into viewing everything available to them. This can be overwhelming and can lead to users leaving large parts of that platform unread. Giving the users the power to opt into channels and opt out of them makes it possible to give your users a better, more concise platform to message on.
Opting out is an easy thing to do and usually best in smaller servers with fewer channels. Users can opt out by muting a channel client-side. This will dim the channel and prevent them from seeing new messages, but they can be notified via pings (like roles, a direct ping, or even an @everyone). While this is usually fine for the user, in larger servers with multiple channels, it can be painful to go through individually muting channels/categories. The downside to this, though, is that users are still subjected to unwanted pings, particularly when they are coming from a format like forums, where they can check new posts at their leisure.
Opting in to channels is a bit more complicated and requires some additional setup, but can be very beneficial to your members who maybe participate in select areas of your server. You can “role-lock” channels and categories so that users with specific roles can view the channels. When a member doesn’t have permission to view those channels, they also no longer receive any pings from it! The downside to this is setting up a system to either automate them receiving roles, or manually assigning users. Using a bot can extend the automation to have users run a command, or react to a specific message to gain roles. This allows your members to customize their experience and enjoy your server the way they want to.
The two clearest advantages while moving from IRC to Discord is how you can separate topics into different channels, and the moderation tools
Separating topics into different channels allows you to specialize instead of having a messy chat where six conversations are going on at once. It also lets you set different permissions for different users in different channels. For example, you might want to have a support channel where support staff can manage messages, but don’t give them that permission to other channels
The moderation tools are also much more robust, allowing you for example to delete messages, change usernames, or even set slow modes in specific channels. The support for moderators that Discord provides is on the whole, more comprehensive than private IRC networks can give, with a lot of great resources and reporting tools. Discord is usually more stable too, without netsplits or other fun events.
To ease the migration, there are plenty of bots that allow you to bridge IRC and Discord, with some limitations like not showing embeds and showing deleted messages.
As a last advantage, and the reason why many servers migrate, Discord is more user friendly than IRC, which requires knowing a web client (that might even be banned in your channel like kiwiirc) or downloading a IRC client. It also exposes your users IP address and OS version (with CTCP commands) which can cause some privacy issues.
The main problem while moving to Discord is having to adapt to “real-time” conversations. It means you probably will need more mods, and for them to be more active. For example, forums servers’s staff usually have a lot of issues early on due to the increased need for moderation as its happening vs deleting and handling reports on their own time.
One of the biggest things to keep in mind is that if your moderators engage with the community like regular users, their job will get far easier. After all, if you build that trust and rapport with your community members it makes keeping the community safe for them that much easier.
When setting up a server, it may be best to follow the structure of your currently established forum until the need arises to make slight alterations to adapt members, particularly those that may be joining without ever having interacted with your forums previously. Structuring it to the same as your forum allows users to feel “at home” with where they were previously. Including a channel for feedback on the server will also help you ingest feedback on the structure or organization of your server and address any missing channels that may be needed.
While moving to Discord, you might need to port your current bots and find new ones. Compared to platforms like IRC, Discord bots have the potential to be more feature rich. You can create custom embeds, set permissions, delete messages, even react to emojis. Bots can also provide an authentication link between other locations, like a forum.
You might find it far easier to develop for Discord than from IRC, due to the great frameworks that have been developed over the years, and way easier than forums where you don’t need to write one from scratch for your specific forums layout. You can also find a lot of bots that already do what you need.
The basic things that you should look at while selecting a bot is making sure that bots only have the permissions they need, and that they are verified (or you host it yourself). One of the most important bots you can have is those that help you with auto-moderation.
One of the decisions you have to make early on is what level of moderation you want Discord to apply. For example: some servers might want the new user experience to be as quick as possible(for cases where they get linked externally a lot, or a support server). Other servers with more established communities might want to up that moderation level and require things like verified phone numbers + being in the server for 10 minutes to avoid raids and spammers.
One of the most important things to keep a look at is the new user experience. What does the server look like to a new account just joining it? Do they have a clear path to your rules? To other channels? How hard is it to ask questions if they get lost?
Moving your community also means moving your staff. This can be challenging as it requires getting used to new policies and new tools. For example: if your community is coming from a forum, you might need extra moderators to have real-time coverage of chat. If you are coming from IRC you might need to adapt your guidelines to use mutes instead of just kick and bans, along with the ability to delete messages.
Roles and permissions might look completely different than you might be used to. For example: some servers migrated their current mod team and structure, then added an extra role for “Chat moderators” who specialized in Discord. Other servers find completely new staff and then give honorary roles to the previous staff.
It may be necessary to work with your current team of moderators on your platform to discuss the roles and responsibilities of the team even before you make the move. Are they comfortable moderating both locations during transition? Are they ready to learn moderation on a new platform? Do they want to continue moderating for the community? It’s a good idea to get these details ironed out ahead of time so that you can plan for needing additional moderators.
If you don’t have staff with previous experience moderating Discord servers, it might make more sense to get external help, preferably from your own community. These community members would ideally be well versed in Discord and preferably comfortable with moderating on Discord. They can guide you through adapting policies, making new roles, setting the permissions correctly, using channels and sections and giving you useful links to other servers where you can ask questions or report users.
*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.
We know migrating your community is a huge task and each one has completely different issues. A well executed migration can help reinvigorate your community and facilitate new activity and membership; a rushed one can split your community base and irritate existing users.
We hope that the tips in this article help make the migration smoother for you and your community. As a closing note, don’t forget to talk and discuss the migration with your community (not just your mods), plan it ahead of time in a transparent way, make sure everyone is onboard, and take care to avoid alienating anyone, being flexible with the plan if need be.
Markdown is also supported in an embed. Here is an image to showcase an example of these properties:
Example image to showcase the elements of an embed
An important thing to note is that embeds also have their limitations, which are set by the API. Here are some of the most important ones you need to know:
An important thing to note is that embeds also have their limitations, which are set by the API. Here are some of the most important ones you need to know:
If you feel like experimenting even further you should take a look at the full list of limitations provided by Discord here.
It’s very important to keep in mind that when you are writing an embed, it should be in JSON format. Some bots even provide an embed visualizer within their dashboards. You can also use this embed visualizer tool which provides visualization for bot and webhook embeds.
Even though this comparison is important for better understanding of both bots and webhooks, it does not mean you should limit yourself to only picking one or the other. Sometimes, bots and webhooks work their best when working together. It’s not uncommon for bots to use webhooks for logging purposes or to distinguish notable messages with a custom avatar and name for that message. Both tools are essential for a server to function properly and make for a powerful combination.
*Unconfigurable filters, these will catch all instances of the trigger, regardless of whether they’re spammed or a single instance
**Gaius also offers an additional NSFW filter as well as standard image spam filtering
***YAGPDB offers link verification via google, anything flagged as unsafe can be removed
****Giselle combines Fast Messages and Repeated Text into one filter
Anti-Spam is integral to running a large private server, or a public server. Spam, by definition, is irrelevant or unsolicited messages. This covers a wide base of things on Discord, there are multiple types of spam a user can engage in. The common forms are listed in the table above. The most common forms of spam are also very typical of raids, those being Fast Messages and Repeated Text. The nature of spam can vary greatly but the vast majority of instances involve a user or users sending lots of messages with the same contents with the intent of disrupting your server.
There are subsets of this spam that many anti-spam filters will be able to catch. If any of the following: Mentions, Links, Invites, Emoji, and Newline Text are spammed repeatedly in one message or spammed repeatedly across several messages, they will provoke most Repeated Text and Fast Messages filters appropriately. Subset filters are still a good thing for your anti-spam filter to contain as you may wish to punish more or less harshly depending on the spam. Namely, Emoji and Links may warrant separate punishments. Spamming 10 links in a single message is inherently worse than having 10 emoji in a message.
Anti-spam will only act on these things contextually, usually in an X in Y fashion where if a user sends, for example, 10 links in 5 seconds, they will be punished to some degree. This could be 10 links in one message, or 1 link in 10 messages. In this respect, some anti-spam filters can act simultaneously as Fast Messages and Repeated Text filters.
Sometimes, spam may happen too quickly for a bot to catch up. There are rate limits in place to stop bots from harming servers that can prevent deletion of individual messages if those messages are being sent too quickly. This can often happen in raids. As such, Fast Messages filters should prevent offenders from sending messages; this can be done via a mute, kick or ban. If you want to protect your server from raids, please read on to the Anti-Raid section of this article.
Text Filters
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.
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.