#2: Reaction Roles and Self Assignable Roles

Author: NaviKing#3820

See also

Different use cases of the same topic are described in #1: Configuring the Administration Module

One popular bot feature is the ability to have self-assignable roles and reaction (button) roles. Self assignable roles are roles that user’s are able to freely add to and remove from themselves via a bot, while reaction (button) roles refer to a method of assigning these roles by clicking on a button on a specific message.

GiselleBot has both of these features, and this article will give you a brief overview of how you can set up your very own self-assignable roles and reaction roles. If you want to learn more about how self-assignable roles work, you can take a look at the documentation here: Self-Assignable Roles

Step 1: Create a Role Group

The very first thing you need to do to create a self-assignable role is to add an existing role to a Role Group. A Role Group is simply any set of roles grouped together via GiselleBot‘s !asar command. For example:

!asar 1 "Role 1" @Role 2

will add both Role 1 and Role 2 to group 1 of your self assignable roles. You can confirm this by using the !lsar command to see the list of current self-assignable roles. Don’t worry, you can add more roles later and even remove roles using the !rsar command.

Users can immediately assign and remove roles to themselves using the !iam and !iamnot commands once they have been assigned to a Role Group, but you can also configure your Role Group settings further and even set up a reaction role menu for ease of use.

Step 2: Configure your Role Group

The next step is to make sure you configure your Role Group settings properly. Although this step is optional, it’s worth becoming familiar with the default settings and being aware of the potential options.

You can configure a self-assignable Role Group by using the !sargs command with the ID of the group you want to configure (e.g., !sargs 1). A detailed explanation of each option can be found on the documentation page (see Self-Assignable Roles), but a few use cases are described below.

  • Let server boosters choose a color for themselves by creating a Role Group of different colored roles. Set up the Nitro Booster role as a required role and enable the prerequisites check feature.

  • Have people choose their favorite faction in a game by creating a Role Group with a role for each faction. Set the mode to Single and enable removing the existing role when assigning another role in the group. Alternatively, set the mode to Multiple and have people choose up to 2 or 3 of their favorite factions!

  • Have people assign a role to themselves to acknowledge they have read your server rules. Add your verification role to its own Role Group, enable single mode, and then enable requiring one role in the group at all times after the initial assignment. This way people will be able to assign the role to themselves, but not remove it. Note: Don’t forget you need to set up your server role and channel permissions for a verification role to have any effect, which has nothing to do with GiselleBot! You can read more about this here.

Step 3: Create a reaction role menu

The last step is to set up your reaction role menu using !rmcreate. This is as easy as just using the command with the group ID of the self-assignable role group you want to turn into a menu.

!rmcreate 1

GiselleBot will then send an embed instructing people to press a button to assign a role. Each button will be named after the role it’s for. If you want the buttons to be named something else, you can simply rename your roles to what you want the buttons to say, create the role menu, and then change the name of the roles back to normal. This is great for making a self-assignable verification role menu to have the button say “I agree to the server rules” while keeping the role itself named “Member” long term.

If you want to edit the default message, you can use the !msgedit command to do so. If you want to make an embed, I suggest using a website like https://discohook.org/ to generate the embed text. More information about the !msgedit command is available on its documentation page.

If you modify the roles that are in your role group, you can update your reaction role menu using the !rmupdate command. Do note that if you used the trick mentioned earlier to manipulate the names of the buttons such that they are different from the roles, you will need to temporarily update your role names again to match what the buttons say or running this command will also rename your existing buttons to your current role names.


After you create a self-assignable role group, you can then customize it and turn it into a reaction role menu. Although customizing the default behavior of a role group is optional, remember that you can’t create a reaction role menu without a self-assignable role group.

Remember, this guide doesn’t cover all of the self-assignable role commands. Be sure to check out the full documentation (Self-Assignable Roles) if you get stuck, and feel free to ask additional questions on the GiselleBot‘s Support Server (https://discord.gg/vY5zdmzukb) if you’re still having problems after looking at the documentation!