Skip to main content
Righteous

Reaction roles

A role menu members use by reacting to a message. React to get the role, remove the reaction to lose it.

A reaction role ties one emoji on one message to one role. Members react to get it and un-react to lose it.

Add a role to a message

,reactionrole add (,rr) needs Manage Server. Post the message first, copy its link, then name the emoji and the role.

Syntax

,reactionrole add <message link> <emote> <role>

Example

,reactionrole add https://discord.com/channels/111/222/333 🎮 @Gamers

The role can be a mention, an ID or part of its name. The bot adds the emoji itself. /reactionrole add takes the same three options.

Run add again to put more roles on the same message, one emoji per role. If two roles share an emoji, only the first is given. Each emoji and role pair works once per server, even across messages.

The emoji must be a standard one, or a custom emoji from a server the bot is in. If the bot can't add it to the message itself, the setup still saves and the reply says so. Add the reaction yourself and it works.

The role is checked again every time someone reacts

If you later give the role Administrator, Manage Server, Manage Roles, Ban Members or Kick Members, or move it above the bot's highest role, reacting stops giving it. Nobody is told. Keep reaction roles plain.

A message with reaction roles never goes to the starboard or clownboard, even if its emoji is the board's.

See what's set up

,reactionrole list pages through every reaction role in the server, with a link to each message.

Syntax

,reactionrole list

A row marked with a warning has a custom emoji that's gone. Add it again with one that works.

Remove one role, clear a message, or start over

CommandDoes
Removes the role for one emoji
Removes every reaction role on that message
Removes every reaction role in the server

Syntax

,reactionrole remove <message link> <emote>

Example

,reactionrole remove https://discord.com/channels/111/222/333 🎮

remove looks for the emoji in that channel, not on that exact message. If two messages in one channel use the same emoji, use removeall on the message instead.

`remove` and `reset` don't take roles back

Members who already have the role keep it. reset has no confirmation and no undo, and the reactions stay on the message. Delete those by hand if you want them gone.

When something is deleted

Nobody gets a message when a role is given or taken. The setup cleans itself up when something it depends on is deleted:

If this is deletedThe reaction role is
The message
Removed, if the bot saw it go. A message a bot posted, or one older than the bot's last restart, keeps its setup until you run removeall
The channel
Removed
The role
Removed
The custom emoji
Removed

Common issues

There's already a role reaction with that role. That pair exists already, often on a message you deleted. Find it in ,reactionrole list and run removeall with its link.

The bot refused the role. It has one of the permissions in the warning above, an integration manages it, or it isn't below your highest role.

Reacting doesn't give the role. It sits above the bot's highest role or has a permission from the warning above. Move the bot's role up or take the permission off. The bot also needs Manage Roles.

The emoji didn't appear on the message. The bot couldn't add it. Add the reaction to the message yourself.

INvalid Emote. The bot can't see that custom emoji. Use a standard emoji, or one from a server the bot is in.

Invalid Message Link, I can't see that channel or I couldn't find that message. Use Copy Message Link on a message in this server. The bot needs View Channel and Read Message History there.