Reaction Roles

Interactive emoji-based role assignment system. Let members choose their roles by reacting to messages with emojis.

Features

Easy Setup

Set up reaction roles with a simple message context menu command.

  • Right-click any message and select "Setup Reaction Role"
  • Choose a role from dropdown
  • React with your desired emoji
  • Done! Role is now assigned via reactions

Flexible Emojis

Support for both Unicode and custom server emojis.

  • Standard Unicode emojis (😀, 🎮, 🎨)
  • Custom server emojis
  • Animated emojis supported
  • External emojis blocked for security

Unlimited Reactions

No limits on the number of reaction roles you can create.

  • Unlimited reaction roles per server
  • Multiple emojis per message
  • Reaction roles across multiple messages
  • Great for role menus and selection boards

Live Management

Manage reaction roles easily with built-in commands.

  • List all configured reaction roles
  • Remove individual reaction roles
  • Clear all reaction roles at once
  • Real-time role assignment/removal

Commands

Message Context Menu: Setup Reaction Role

The primary way to create reaction roles.

How to Use:

  1. Right-click (or long-press on mobile) any message in your server
  2. Select Apps from the context menu
  3. Choose Setup Reaction Role
  4. Select a role from the dropdown menu
  5. React to the message with your desired emoji within 3 minutes
  6. The bot will add its own reaction and set up the role assignment

Note: The bot needs "Manage Messages" permission in the channel to set up reaction roles.

/reactionroles

Management dashboard for reaction roles.

Add Reaction Role

Opens instructions on how to use the message context menu command.

Remove Reaction Role

Opens a dropdown menu showing all configured reaction roles. Select one to remove it from the system.

Manage Settings

  • List All: View all reaction roles with message IDs and emoji-role mappings
  • Clear All: Remove all reaction role configurations at once

Setup Guide

1. Create a Role Menu Message

Send a message in your desired channel explaining what roles members can get. Format it nicely with emojis and descriptions.

Example: "React to get your color roles! 🔴 Red | 🔵 Blue | 🟢 Green"

2. Set Up First Reaction Role

Right-click the message, go to Apps → Setup Reaction Role. Select the first role (e.g., Red) and react with the corresponding emoji (🔴).

3. Add More Roles

Repeat the process for each role you want to add. You can add multiple reaction roles to the same message for a complete role menu.

4. Test It Out

Try reacting to the message yourself! The bot should assign you the role when you react and remove it when you unreact.

How It Works

Setup Phase

When you use the "Setup Reaction Role" command, the bot creates a temporary waiting period (3 minutes). During this time, when you react to the target message with an emoji, the bot captures that reaction and associates it with your selected role.

Role Assignment

The bot listens to the on_raw_reaction_add and on_raw_reaction_remove events from Discord. When a user reacts to a message that has reaction roles configured, the bot checks the emoji and assigns/removes the corresponding role.

Data Storage

Reaction role configurations are stored in MongoDB with the following structure:

  • Guild ID → Message ID → Emoji → Role ID
  • Multiple emojis can point to different roles on the same message
  • Bot cleans up configurations when roles are deleted

Common Use Cases

Color Roles

Let members pick their name color by reacting with different colored emojis.

Game Roles

Create game interest roles so members can find teammates and get pinged for game events.

Notification Preferences

Allow members to opt in/out of announcement pings and update notifications.

Region Roles

Let members select their timezone or region for better coordination.

Pronoun Roles

Enable members to display their pronouns via self-assignable roles.

Channel Access

Control access to optional channels by requiring members to react to gain access.

FAQ

Can I use the same emoji for different roles on different messages?

Yes! Each reaction role is tied to a specific message. You can use the same emoji on different messages to assign different roles.

What happens if I delete the message with reaction roles?

The reaction role configuration will remain in the database, but it won't work since the message is gone. You should manually remove it using /reactionroles → Remove Reaction Role.

Can members have multiple roles from the same reaction menu?

Yes! Members can react with multiple emojis on the same message to get multiple roles. There's no mutual exclusivity unless you configure it using permission settings.

Do reaction roles work if the bot is offline?

No, the bot needs to be online to detect reactions and assign roles. However, when the bot comes back online, it will process any reactions that occurred while it was offline.