Self-assign roles

Reaction roles

Let members get a role by reacting to a message with an emoji, and lose it by removing the reaction. Works with standard and custom server emoji.

Higher limits with Premium Open in dashboard Updated Oct 21, 2026
On this page

Reaction roles are the classic way to let members pick roles. You choose a message and an emoji, Buddy adds that reaction to the message, and anyone who clicks it gets the role. Removing the reaction takes the role away again. You can put several emoji on one message, one per role, to build a simple role menu.

Before you start#

Permissions needed

Buddy needs Manage Roles, and its own role must be above every role it gives out in Server Settings → Roles. In the message's channel, it needs View Channel, Read Message History and Add Reactions.

Staff roles are blocked

Anyone who can see the message can react, so Buddy won't use a role with Administrator, Manage Server or Manage Roles, @everyone, or a role managed by a bot or integration.

Post the message first. It can be any message in the channel: one you wrote yourself, an announcement, or an embed from the embed builder. Then copy its Message ID.

How to copy a Message ID
  1. In Discord, open User Settings → Advanced and turn on Developer Mode.
  2. Right-click the message (or long-press on mobile) and choose Copy Message ID.

Set it up#

Open Reaction roles in your dashboard

It's under Roles in the sidebar.

Pick the message

In Add a reaction role, choose the Channel the message is in and paste its Message ID.

Choose the emoji

Enter one emoji in Reaction emoji. Use your device's emoji picker for standard emoji, or paste a custom emoji tag like <:buddy_floating:1154925795194707968> (see below).

Choose the role

Pick it in Role to give.

Save

Click Add reaction role. Buddy adds the reaction to your message within about a minute.

Repeat for each role

Use the same Message ID with a different emoji for every role you want on that message.

Open reaction roles

Settings explained#

SettingWhat it does
ChannelThe channel the message is in.
Message IDThe message Buddy adds the reaction to and watches.
Reaction emojiOne emoji per reaction role: a standard emoji, or a custom emoji from this server.
Role to giveThe role members get when they react. Removing the reaction removes it.

Your reaction roles lists every reaction role with its emoji, channel and role. Click the trash icon to delete one. Deleting stops Buddy giving that role. Within about a minute Buddy also clears that emoji's reactions from the message, if it has Manage Messages there. Members who already have the role keep it.

Using custom emoji#

A custom emoji can be pasted as its full tag, which looks like <:emoji_name:emoji_id> (animated emoji start with <a:), or as just its number (the emoji ID). For example:

<:buddy_floating:1154925795194707968>

To get the tag, type a backslash and then the emoji in any Discord channel, for example \:buddy_floating:, and send it. Discord shows the tag instead of the emoji. Copy it exactly, including the < and >.

The emoji must belong to your server. Buddy can't react with an emoji from a server it isn't in.

Tip

The tag and the bare ID behave the same: Buddy matches the emoji by its ID when someone reacts. With only the ID, the dashboard list shows a small picture of the emoji.

Examples#

A message you post yourself in #roles:

Alex Today at 4:20 PM

Pick your notifications 🔔
📢 Announcements
🎉 Events
🎮 Game nights

Then add three reaction roles with that Message ID:

Reaction emojiRole to give
📢@Announcements
🎉@Events
🎮@Game Night

Buddy adds 📢, 🎉 and 🎮 under the message. A member who clicks 🎉 gets @Events; clicking it again takes the role away.

Premium#

Free servers can have 10 reaction roles (each emoji and role pair counts as one). Premium plans raise the limit. The usage bar on the page shows how many you've used. See plan limits for each plan.

Troubleshooting#

Problems show in the Bot errors list on your dashboard's main Dashboard page, under New Reaction Role or Reaction Roles.

Buddy never adds the reaction#

  • Wait a minute, then check Bot errors.
  • Unknown Message: the Message ID isn't in the channel you picked. Delete the reaction role and add it again with the right channel and ID.
  • Missing Permissions: Add Reactions: give Buddy Add Reactions (and Read Message History) in that channel.
  • Invalid Emoji: Discord rejected the emoji (it doesn't exist, or it's from a server Buddy isn't in). Buddy removes that reaction role so it doesn't sit in your list doing nothing. Add it again with a standard emoji or a custom emoji from your server.
  • Could not add reaction: Discord refused for another reason, for example the message already has the maximum of 20 different reactions. The reaction role stays in your list, and members can still use an emoji you add by hand.

Members react but don't get the role#

  • Missing Permissions: Manage Roles: give Buddy Manage Roles, and move its role above the role in Server Settings → Roles. Buddy logs the same message when the role sits above it.
  • Blocked Role: the role has Administrator, Manage Server or Manage Roles, was deleted, or is managed by an integration. Pick a different role.
  • Make sure members react with the exact emoji Buddy added. A different skin tone or a look-alike emoji won't match, and each skin tone counts as its own emoji.
  • Only one role is given per emoji on a message. If you set up the same emoji twice on one message, only the first one works.

Saving shows an error#

  • "Invalid emoji. Use a standard emoji or a custom emoji from this server.": a custom emoji tag isn't in <:name:id> form. Copy it again using the backslash trick above, or use just the emoji ID.
  • "You did not complete all fields": pick a channel and role, and fill in the Message ID and emoji.
  • "Roles with Administrator, Manage Server or Manage Roles permission can not be self-assigned." Pick a role without those permissions.
  • "That role was not found in this server": run /setup in Discord, choose Update Channels and Roles for Website, and reload the page.
  • "Reaction role limit reached": delete one or upgrade your plan.
Loading…