Reaction roles

Users pick their own roles with a click

Reaction roles let users give themselves or remove roles — simply by clicking a button, reacting with an emoji, or selecting from a dropdown. This is ideal for interest roles, colour roles, ping options, or anything users should be able to choose freely.

Concepts: parts and messages

A reaction role configuration consists of one or more "parts". Each part is a group of role options with a shared message. Multiple parts can be published to a single Discord message.

A published message is the Discord message the bot posts in a channel. It contains the buttons or dropdown that users interact with.

Interaction types

TypeMax. optionsDescription
Button25 (5 rows of 5)Coloured buttons (Primary/Secondary/Success/Danger), optional emoji, label max. 80 characters
Emoji reaction20User reacts with an emoji to the message — classic reaction role style
Dropdown25Dropdown menu with label and optional description (max. 100 characters)

Modes: standard vs. inverted

Standard: user clicks → role is assigned. Click again → role is removed.

Inverted: user has the role by default. Click → role is removed. Click again → role is restored.

In single mode (one dropdown or button group), a user can only hold one role from that group at a time. Selecting a new one automatically removes the previous.

In multi mode, users can combine any number of roles from the group.

Embed editor

Each part can have its own Embed message: title (max. 256 characters), description (max. 4,096 characters), colour, and up to 25 fields. The bot publishes this Embed together with the buttons/emojis as a single Discord message.

Publish flow

  1. Create a part: configure interaction type, mode (standard/inverted), and role options
  2. Design the Embed: enter title, description, and colour
  3. Select the target channel
  4. Click "Publish" — the bot posts the message
  5. After changes: click "Update" to have the bot edit the existing message (no new message is posted)
The bot can edit the published message after the fact — you do not need to repost it. Press "Update" after making configuration changes.

Limits

SettingLimit
Parts per server40
Buttons per message25 (5×5 ActionRows)
Dropdown options25
Emoji options20
Button labelmax. 80 characters

Frequently asked questions

What happens to existing reaction role messages if I re-invite the bot?
The configuration is preserved. However, you need to manually re-link existing messages via "Update" for the bot to respond to clicks again.
Can I apply reaction roles to messages I wrote myself?
No, the bot can only manage messages it posted itself. Always publish via the publish flow in the dashboard.
How do I prevent users from receiving a role they are not eligible for?
Reaction roles have no prerequisite system. If you want to make roles available only to certain users, use Discord permissions to make the channel invisible to ineligible users.
Reaction roles · TeraOne Docs · TeraOne