Sponsored By

Featured Blog | This community-written post highlights the best of what the game industry has to offer. Read more like it on the Game Developer Blogs.

Dissecting Discord: How to Set Up an Indie Game Discord

A breakdown of how we approach Discord as an indie games publisher.

David Logan

March 10, 2021

26 Min Read

Dissecting Discord: How to Set Up an Indie Game Discord Server

Fifteen years ago, anyone launching an indie game would have needed to make a Facebook. Ten years ago, they’d need Twitter. Five years ago, they’d need Instagram. Today, every marketing expert in gaming is going to tell you to set up a Discord server for your upcoming indie titles, whether it’s a thoughtful adventure game, intense multiplayer action shooter or gorgeous 2.5 platformer. I’m Buddy Sola, I’ve been working in community development for games for 8 years and I figured I’d break down my philosophy for how to run a Discord for all the enterprising Indie devs out there!

The Big Two: Value vs Attention

This is a concept that underlines more than just Discord—it’s the core of any social media strategy and needs to be your starting point. With any marketing effort for a game, your goal is attention. Whether that’s releasing a trailer, putting out a press release, doing a dev livestream or creating a Discord, the goal for any and all of these initiatives will always be to capture the attention of gamers worldwide. Capturing that attention, though, is only half the battle, since attention is naturally fleeting. A good trailer might get someone’s attention, but if that’s all you can offer players, they won’t stick around. Like an hourglass slowly draining away, you need to offer players something to keep their attention on your game. That something will be your value proposition.

If you provide players enough value, you’ll keep their attention on your product. That value comes in a variety of different forms. Sometimes, it’s raw information. Tell players about the game that you’re making, what makes it cool, what makes it exciting, what the mechanics are that underlie the awesome gif you’re showing, who are the characters they’re seeing in screenshots. Sometimes, it’s entertainment value. If you post a funny meme that gets a player to laugh, the value there is the entertainment they got out of that meme. Sometimes, it’s social value. If you’re a player looking for friendship or a sense of community, you might find that value in the Discord for the game that you’re really looking forward to.

This is what makes Discord so powerful.


The Conversation Engine

Unlike most other social media platforms, Discord is uniquely situated to deliver on that social value for players of your game. Discord wants you to be conversational, sitting down and typing back and forth with someone in a channel. Other social media platforms don’t behave this way. Twitter, Facebook and Instagram have comments, but their value comes in broadcasting to huge numbers of players at a time. For every thousand impressions you get, you’re likely to get maybe one comment on a post. In Discord, you’re providing people a space to engage with you (as devs of the game) and other interested players. As they take advantage of that space, you’re generating value for them and that value is going to keep their attention for weeks, months or even years until your game finally launches.

I call this “the conversation engine” because, in its ideal form, it drives itself. Discords always start slow, with low numbers of members and few conversations to be had. Many of those conversations will be driven by you directly. But as time goes on and members pick up, their interactions begin to shift away from requiring you and instead focus on one another. Interested players are talking with one another about your game, expressing opinions, agreeing, disagreeing, forming bonds and friendships with one another. If your game is a multiplayer title, maybe they’re organizing pick up games. If it’s not, maybe they’re just bonding over their shared experiences with it.

Either way, this kind of community space should be your goal and should be something on your mind as you click the indigo button to set up your Discord server.


Enough of the abstract stuff, though, let’s get into the nitty gritty, starting with Roles. 

What is a Role?

Roles are labels that you can assign to players that provide a variety of functions in how to manage a server. Roles have three core functions:

  1. Roles can set permissions.

  2. Roles can be pinged.

  3. Roles can identify players.

Permissions allow you roles to perform differently in different sections of your Discord. In its most typical form, this means that you can set a role for “administrator” or “moderator” and then create a chat channel that only admins or mods have the ability to read. That said, the functionality is much deeper, more robust and more complex than that allowing you to, for instance, set up announcement channels that typical users can see but can’t post in; set up voice channels that typical users can join but can’t speak in; or prevent typical users from using inconvenient tags such as @here and @everyone.

Roles also allow you to selectively send alerts to players by role. Sending these alerts, which populate a little red “1” is colloquially known as a ‘ping’ because it’s a privileged alert built to draw special attention to a Discord users. Many Discord administrators will rely on @here and @everyone pings in order to alert users, but in turn many users have disabled the notification coming from @here and @everyone pings. This creates a problem for administrators. How do you send pings to players that they will actually be interested in rather than mute? Roles provide the perfect answer. By pinging based on role rather than using default pings, you can guarantee that your users get the alerts you want them to get. Moreover, if you include an apparatus to allow players to opt into and out of roles, you’ll give them the freedom to get alerted to the most important pings to them, opting into pings they want to see and out of pings they would otherwise ignore.

Finally, Roles allow users to categorically identify one another. By labeling your roles specifically, the value of the role might not come with the permission or the pings, but rather with the ability for players to understand who they’re talking to at a glance. For instance, many Discords include roles for preferred pronouns. This isn’t because there are pronoun-based channels or individuals want to ping users based on their pronouns, but solely as a way for a player to be able to identify at a glance the gender identity of the person they’re talking to. In a practical sense, you can also use this to help sort your server’s member list on the right side of the client. By putting devs, moderators or admins at the top of that list, you can quickly broadcast to your users when the most important members of the Discord are active. Additionally, by color coding roles correctly you can help users identify individuals at a glance. If purple is the color only moderators have and a user interacts with a new purple name, they will instantly understand the new name is a new moderator.

How do you use Roles?

In the Akupara Games Discord, we use roles for all three of their different functions, but with each set to a specific purpose or task. This creates a complicated web that we’ve built over time, but I’ll break it down piece by piece so you have a good understanding of how I approached adding Roles to the Akupara Discord.

The fundamental role in our server is @Gamer. This role is automatically applied (by a bot, which I’ll cover in a separate article) to everyone that joins the server. If you were to join the Akupara Games server today, you’d get the role “@Gamer” automatically. I call this the fundamental role because it’s the fundamental assumption that every user who enters the Discord will be a player interested in playing Akupara Games. This makes them a Gamer. This tag is useful, since if I ever need to announce something to the entirety of the server, such as a brand new game or that one of our games is launching, I can use the @Gamer role to hit everyone in the server with the ping for it. That said, this role gets used very rarely since it functions quite a lot like an @everyone or @here ping. Overuse will frustrate and ignore players.

Then, we have a series of Roles that are built mainly to be descriptive. @Content Creator and @Industry Professional don’t offer any special permissions, but it does allow users to better identify themselves to one another when they enter the Discord. If a user is a streamer, youtuber or podcaster, having the @Content Creator tag allows them to display that additional interest and skillset to other members of the Discord. It also means that if we have specific information for influencers, we can broadcast that information to this subset directly with a simple ping. For @Industry Professionals, it means we can ping folks in the games industry when questions along those lines arise. Our server has become a bit of a haven for indie game developers over the years as amateur devs start to release their first projects. As such, empowering those amateurs to ask questions of other professionals is a real benefit to the Akupara Games server.

After that, we have permissions-based roles, such as Admin, Moderator, and Staff. These roles have all the benefits of those above, but are also used to sequester off certain channels behind roles based permissions. Staff have access to confidential, privileged information, so giving them a channel where they can talk internally about projects without risking leaks is useful. Similarly, for any moderation or administrative issues that arise in the Discord, we have separate channels to discuss those matters away from the general user base.

Finally, we have a set of tags for our most well-known, active games, such as Mutazione, Gone Viral and GRIME. These tags allow players to opt in even further to important information and updates for those games in particular. If we have a new video going up, a new update to the game, or something more pressing to show off to players of those games, we can tag that game in particular. By using tags like @Mutazione rather than @Gamer I can make sure that I’m not bothering players who don’t care and I’m definitely attracting players who are most interested in the product.


So, you’ve got a philosophy, you’ve got users and you’ve got roles to assign to them. Now, the question becomes where do they have the conversations you’d like for them to have. 

Even frivolous conversations have a big benefit for your server.

What is a channel?

Ultimately, Discord is about conversation. You type a message, you send it to another person. Boom. Conversation. Roles allow you to organize the people in that conversation. Channels, meanwhile, allow you to organize the messages that get typed. Depending on how you set up the core functionality of each channel, the message might be quick responses, topical updates, flowing paragraphs of fiery conversation, or prohibited entirely.

Channels have front end and back end functionality. Front end functionality includes everything that players see, from the channel name to its topic to whatever category it’s in. Back end functionality includes everything that players don’t see—permissions dictating what someone can see, post, upload, tag or react with inside of a channel, for example.

Front end functionality is important because it guides players to the correct channels to have the appropriate conversations. Imagine that the story for your game relies on its mysteries and twists and turns. If you create a channel for players to discuss the story after they beat the game and know what happens, you might want to label it #spoilers. You might also want to include a line in the channel topic: “For discussion of all the twists and turns in the story.” You could then drop it down into the Extras category to differentiate it from the more casual channels on your server. Just the existence of that channel implies certain norms and rules for your server. If people see a spoilers channel, it implies that spoilers aren’t welcome elsewhere. When two players have a conversation about the ending and get told by a third to take it to #spoilers, that’s the front end functionality of your server dictating the conversation. Putting the appropriate labels on your channels and categories helps you direct the flow of conversations in your server.

Back end functionality, on the other hand, is a more forceful way to control players. If you have moderators that you know will need to have conversations with one another privately, use back end permissions to make sure rank and file members of the Discord can’t see #modchat. If you’re worried that someone just joining the Discord will start pinging users with @everyone or @here pings, disable the use of those pings in your introductory channels. If you want to keep conversations about your announcements out of your #announcements channel, make sure that players have visibility into it but that they can’t post there. If front end functionality implies rules about your server, lightly guiding users to follow those rules, back end functionality explicitly enforces them. Average users in your Discord might not keep spoiler conversation to the #spoilers channel. Average users in your Discord will not be able to see #modchat, period.

There are plenty of tools at your disposal when crafting channels and each one has a specific purpose for your server.

A look into the back end of a Discord channel

How should you use channels?

I have three guidelines that I follow in the Akupara Games server. First, I want the Discord’s channels and categories to be legible and easy to understand. Second, I want to use front end functionality to direct the flow of conversation on the server. Third, I want to use back end functionality to organize the server and its users.

Legibility when it comes to Discord servers can be harder to find than you might think. Have you ever entered a server with channel names like #chew-on-this or #the-parlor? At a glance, can you recognize what those channels’ purposes are? What kind of posts go in there? It’s surprisingly common to see these sorts of esoteric names in official servers. As a rule, I avoid them. #chew-on-this, by the way, was the channel for food pictures. If you made a beautiful cake or plated an amazing lasagna and wanted to show it off, you’d post a picture in that channel. As far as I’m concerned, the answer to those sorts of channels is to just call them what they are. It’s #food. It’s #music. It’s #movies-tv. These are great channels to have and I’d highly recommend including them as some of the basic, default channels that all users see. They’re there to be relatable and give your users an opportunity to connect about their favorite bands or actors, not just your games. But if your goal is to make that connection, hiding that behind harder to parse channel names doesn’t pay dividends. It makes your server seem standoffish and keeps people from engaging in content they otherwise would have. As an aside, I also keep roles and categories as legible as I can as well. You want to piggyback on the common understanding that players will have about Discord, not force them to memorize new names for channels they’ve seen in other servers elsewhere.

Above, we talked about what front end functionality is for channels. Here’s how I use it. The first channel at the top of our main category is #general. Just like general chat in an MMORPG, this chat is for anything and everything, but most commonly it serves as a place for people to land on the server and start talking. Getting someone to join the server is one thing. Getting them to chat is another. Giving them a place where they can talk about anything at all? It breaks down as many barriers of entry as possible. From there, we have a couple specialized chats—#gaming for talking about games, #food for talking about food, all the way down the line. These channels help keep conversations directed so that folks aren’t talking over one another. If I want to ask opinions about the latest season of The Mandalorian, doing so in #movies-tv means I’m not stepping on the toes of the conversation happening in #general. Finally, I include a channel topic in each of these just to make sure their purpose is intensely clear. For instance, we have an #industry-advice channel on the Discord for indie devs to ask us professional questions about the business. That channel includes a topic: “Questions answered and advice given for everything in the games industry.” This helps clarify: If you have a question, ask it here. If you have advice for other devs, post it here. Channel topics allow you to get a bit more specific and help users post the right content in the right channels.

Back end functionality, on the other hand, I mostly use to gate visibility in the server. I think about two types of channels in this sense: broadcast channels and conversational channels. #rules and #announcements would be obvious examples of broadcast channels whereas #food or #movies-tv would be obvious examples of conversational ones. A broadcast channel is one that users can always see but not talk in. If I want to announce an upcoming title or event without users bombarding the channel with questions and pushing that event out of view, I’ll post it in a broadcast channel. If I want to have a conversation about an upcoming title or event, I’ll post in #general to actually have a flow of conversation. Broadcast channels want their messages to stick around and be seen without being bumped by conversation, so I limit the posting privileges of players. For conversational channels, I will always pair visibility with permission. If a user can see the channel, they can post in it. There are plenty of channels that a user might not be able to see. If you give #content-creators a place to talk with one another about being content creators, that channel shouldn’t be visible to average users that don’t have those posting permissions. But those channels are few and far between. We have roles in the Akupara server for Spinch and Mutazione, some of our most popular games. But anyone in the server can chat in the #spinch or #mutazione channels. I want to provide as few barriers for folks engaging in our Discord as possible which means leaving posting permissions relatively open and unconfined.


The invites have gone out, the cake is baked and the band is warming up, now it’s time to start the party! If you want to follow along at home, here’s a link to the Akupara Games server template.

Our Server Basics

Overall, we have a number of different high level goals for the Akupara Discord server. It should be the best, most coherent place for players to communicate with us and each other. It should be a place where we can effectively troubleshoot problems that players are having. It should give us the opportunity to organize our audience according to their desires. It should serve as a news outlet that activates as many of our highest engagement players as possible. Finally, it should serve as a place for us to be casual with one another and our audience.

First, Discord is the highest level source of engagement for our community. If someone wants the most direct line to us, that will be in Discord. I’ve talked before about how Discord’s bread and butter should be conversation—a direct, constant communication with one another. This stands in opposition to Facebook, Instagram or Twitter, where the nature of posts aren’t conversational. That means you’ll want to keep extra attention on the notifications you get from Discord and try to respond in real time as much as possible.

This also helps with our second goal: troubleshooting problems with players. Being able to have a conversation with a player suffering from a bug is endlessly more useful than going back and forth on forums, emails or really any other method. I have squashed more bugs, found more steps for reproductions and identified more workarounds having conversations with players on Discord than any other method, so make sure Discord is a prime avenue of communication for any bug reporting you deal with.

Next, we want to give players the tools to organize themselves as they come into the Discord. For us, this means that players automatically get assigned a role on entry (I’ll talk about this more later) and then, we offer roles that they can opt into to better curate the Discord to their experience. One of the most important rules of Discord is everyone hates an @everyone or @here ping. If you are ever pinged for something that you’re not interested in, you will begin to mute the server. To counteract this, we installed a role reaction bot that allowed players to curate their roles according to their interests. Because of this, when a player gets a ping from the Akupara Games server, it’s because they made the decision to adopt that role.

When it comes to news, this is something we want to respect. I want Discord to be one of our major avenues of communicating news (alongside Store forums and social media.) But I also want to make sure I’m not blitzing our users with pings for news they’re not interested in. If we’re releasing a patch for Spinch, tagging @spinch was much more useful than tagging @everyone because it’s putting the information in front of the players that want to see it most.

Finally, I want to quickly bring up tone in this section, since it definitely matters. In Discord, I want to be friendly, relatable and casual with users, but also sincere and serious about us and our games. I think it’s important to joke around, especially with the better natured users in the Discord, but when it comes to the company or our games, I tend to take those seriously. There’s two reasons for this. One, it prevents any kind of miscommunication about our titles or company going forward. I don’t want to joke about doing a crossover when folks might take that as an honest-to-God indication that we are in fact doing a crossover. As devs, our voices carry with them the weight of newsworthiness. Secondly, it prevents us from coming off as flippant or disrespectful, especially when players are suffering due to bugs.


The first four channels anyone will see coming into the Akupara Games server are #announcements, #welcome-rules, #twitter-updates, and #introduce-yourself. These aren’t folded into categories because they’re the natural landing for anyone hitting the server. Plus, I like keeping all four in one place. Of note here, #introduce-yourself is a bit of an experiment. For a long time, we hid joins to the server because that channel isn’t typically very interesting, but I had the idea to make it public to allow users to introduce themselves and just kind of say “Hi!” when they join in. This goal hasn’t quite manifested in practice, but that’s the current design of the channel.

After those first four, we then have Main Channels, Projects, and IdleRPG as categories, each with a few channels in them to facilitate conversation. Main Channels includes all-purpose topics like #movies-tv or #music or #memes. When talking about a casual, relatable tone, these channels are the main place where I use that kind of language. When I’m chatting about the latest Marvel movie or the hot new thing in gaming, I’m mostly trying to be personable and likable, generating conversation with others in the discord.

The Projects category is a specific spot in our server to talk about our different games. When we were smaller, we had one channel for every individual game, but at this point, only our biggest games get channels. The rest get lumped together in #other-games. When I mention talking with authority about our titles, I’m mostly talking about these channels. If a player is coming to the Discord to leave a bug report, they’re mostly likely going to find the appropriate location for that bug report and start the conversation there. These are the channels where I’m also cognizant of the newsworthiness of my posts.

IdleRPG is a category hiding a few channels for a Discord RPG bot that allows players to create characters, send them on missions and get loot. It’s a fun distraction that creates an incentive to return to the server on a frequent basis, encouraging frequent posts by some that might otherwise just lurk. Finally, our last public facing category is the Archive, which holds all channels that we’ve discontinued support for. Users can’t post in Archive channels but if there’s anything in there worth referencing, it’s still searchable on the Discord. I’d highly recommend keeping an Archive just because you never know what kinds of conversations you’ll need to search up years after they’ve taken place.

Finally, we have a number of private categories, most of which I won’t get into in this blog. In my previous installment, I talked about using roles to allow users visibility into specific pieces of the Discord. On the Akupara server, for instance, we have an internal channel for anyone tagged as a staff member. If we need to use the Discord to get in touch with staff members of Akupara Games, this private category allows us to communicate with staff without alerting the wider Discord community. These categories are invisible to those without the role needed to see it.


We have a number of different roles in the server, generally broken out into three categories. First, we have the functionality roles, which give certain permissions to make changes to the server. Next, we have identifiable roles. These are the roles that we allow players to adopt of their own volition to help identify themselves to one another and to us as to their interests. Finally, we have utilitarian roles which are really meant to be used temporarily or automatically.

Before I get into those specifics, though, there are two bots that we use in the Akupara server to help facilitate our roles automatically. The first of these is Dynobot, which can be found here, and Zira, which can be found here. I’ll get into the specifics of each of these bots later, but if you’re following along, you might want to take a look at those two bots just to keep their functions handy.

Let’s start with that final category first. We have four utilitarian roles, all of which are applied by bots automatically without human input. These four are: Fresh, Gamer, Muted and Server Booster. When someone enters the Akupara Games server, they are automatically given the Fresh and Gamer roles by Dyno. Fresh is really a redundancy I introduced (sometimes Dyno will miss the Gamer tag but hit the Fresh tag) but the goal here is to give every single person who enters the server that Gamer tag. We’re a games publisher, so it’s pretty straightforward for users to self-identify as Gamers. The utility of the tag, though, is it creates a role that every single person in the Discord has that I can ping without using the dreaded @everyone or @here. I talked above about avoiding these pings, but when we have our biggest, blowout news like a new game or a game releasing, I want to hit every single person in the Discord with that. And while some users might have @everyone or @here muted, they won’t have @Gamer muted, meaning it’s a guaranteed way to ping them. The other two roles there aren’t nearly as important. Muted gets applied by the bot when it detects spamming and Server Booster is applied automatically by Discord to anyone that boosts the server.

Our identifiable tags are much more numerous. Some of these allow folks to identify themselves professionally. Streamers, letsplayers or podcasters might pick up the Content Creator role. If someone works in the industry, they might use Industry Professional. These do get tagged, but rarely, typically when we have something interesting or insightful to say to that specific audience (like linking an article to other game devs or asking if content creators are interested in keys for coverage.) In this category, we also have tags like News, Spinch, or Mutazione, which are the game-specific tags that key players into the news they want. Originally, this was all handled under the News tag, but as we expanded, we also expanded roles for our different upcoming titles. Anytime I want to show off something Spinch related, it will carry with it the Spinch tag. Big Spinch news will get to the whole server using Gamer, but smaller news like bugfixes, hotfixes or livestreams might just use Spinch. This tag also allows players in the Discord to communicate directly with one another. Mutazione players, for instance, might share seeds or ask important questions with the Mutazione tag. Discord doesn’t presently have the native functionality to allow players to tag themselves, but Zira includes the ability to apply tags with reactions. In other words, you set a post with a couple reaction emotes and those emotes correspond to certain roles. Players that click the reaction will have the tag applied automatically.

Finally, we have our permissions roles, like Staff, Admin and VIP. By and large, these roles unlock the permissions to see specific secret channels. Only users with the VIP tag will be able to see the VIP channels and only users with the Staff tag will see the internal staff channels. These get pinged rarely, but sometimes for organizational purposes it’s important to ping the group. Of note, almost all of our moderation is handled at the admin level, but you might want to break that up in your server given your needs. If you want to rely on volunteer moderators, for instance, you’ll want to create a Moderator role that can ban players, delete messages or assign roles without getting their hands on the back end of your server.

The Complete Anatomy of Discord

Thank you for accompanying me on this long-winded, in-depth journey through my philosophy on using Discord. I’ll certainly be talking more about Discord as a community tool was time goes on, so if you want to stay up to date on all the tips and tricks we have to offer, feel free to join us! We’re on Twitter, Facebook, Instagram and, of course, Discord!

Read more about:

Featured Blogs

About the Author(s)

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like