Discord servers, by default, only allow admins to set user roles. However, it would be a good idea to let users pick their own roles as it would shed off some responsibilities from the admins. While it can be done, there is no direct way on the Settings page but you can do that easily with the help of Discord bots. Let’s see how.
Allow users to self assign their roles on Discord Servers
I’ll walk you through the entire process with an example. Here, I have a server called Cubers where people can talk about Rubik’s cube algorithms. But there are different methods like CFOP, Roux, and ZZ. As every user has their preference in selecting their method to solve the cube, I wanted users to select their method on their own. So people who have selected the CFOP role can access all the channels which discuss CFOP. And here is how I have done that.
To users have to assign roles on their own, we should create roles in the first place. To do that, you need to Open Discord > select the server> click Server name > Server Settings > Roles > Click on + Button beside roles.
Now you can give a name to your role and also set the permissions they have on your server and save changes.
Now you have roles and the permissions for what people in those roles can access. All we need to do now is allow people to assign the roles on their own. To do that, open the Mee6 Discord bot website and login with your Discord account.
And authorize the app to access your account. This would grant access to your account.
Now select the server on which you want to enable self assigning roles and click Continue in the pop-up.
After logging in, select the plugin called Reaction Roles in the plugins section and click on Yes! to enable the plugin.
This is the clever workaround to assign the roles automatically. It works like this, whenever a new user joins your Discord, they’d be greeted with a Welcome channel where they’d get a brief introduction of the Server, they can assign a role by simply reacting with an emoji in the channel. It’s really clever if you think about it.
Now select the channel where people can assign their roles. Normally, #Welcome, #Select_role, #Get_Started are few examples for the channels.
Now in the reactions and roles section, click on Add reaction and select an emoji as a representation for that reaction. You can select multiple roles or a single role in that reaction. Users who select that reaction will be assigned to all the roles in that reaction.
Similarly, you can add multiple reactions. By default, you can add 2 reactions only, if you are willing to add even more than that, you have to choose any Mee6 Premium plan. Now in the Messages section, explain to people that they have to choose any role. And also explain which emoji means which reaction. So that people can choose the emoji and get assigned to the roles in that reaction.
In reaction modes section, select default or reverse. If the user selected any reaction, they will get assigned to the roles of the reaction in the default mode. Whereas in the reverse mode, the role will be removed when users click on the reaction, this great for disabling certain server notifications.
Allow members to pick-up multiple roles section will be enabled by default, for people to select multiple roles, but you can disable it if you want.
And click save changes. That’s it, you have successfully created a way for users to assign roles. You can open the server and go to the channel and check for your self.
Anyhow, there is one last step to make sure that everyone can see that message. Open Server Settings > Roles and make sure Read Text channels and voice messages are turned on. And also make sure to enable ‘Add Reactions’ in the everyone roles settings.
There are many bots that can help you to create a server where people can self assign their roles like Nakedo, Monotron, etc. But the process is a lot more user-friendly and faster with Mee6, making other options less recommendable. Nakedo pushes you to learn many command lines to operate, whereas monotron requires you to install an application on your desktop to operate.
So what do you feel about this method? Let me know in the comments.