Reaction roles
Self-assign roles by reacting with an emoji.
Post a message, map emoji to roles, and members pick their own roles by reacting. Removing the reaction removes the role.
Beta — tested, still young.
Reaction roles or button roles?
CloudMod has both, and they solve the same problem differently:
| Reaction roles | Button roles | |
|---|---|---|
| Interaction | react with an emoji | click a button |
| Looks | emoji under the message | labelled buttons |
| Works on | any message, including old ones | a panel CloudMod posts |
| Mobile | small tap targets | proper buttons |
If you're starting fresh, use button roles. Reaction roles are for the case where you want the classic look, or want to attach roles to a message that already exists.
Set it up
- Enable Reaction Roles in the Plugin Market.
- Create a panel —
/reactionrole createin Discord, or the Reaction Roles page if you want the embed builder with a live preview. - Map emoji to roles with
/reactionrole add. The panel gets posted as soon as the first role is on it. - Optional, on the dashboard page: under Selection, choose Multiple (members keep several roles) or Single (reacting swaps to just that role and removes the member's other reactions on the panel).
/reactionrole create posts in the channel you're in unless you pick one, and only
normal text channels work. All /reactionrole commands need Manage Roles.
/reactionrole create title, channel, description — new panel
/reactionrole add panel, emoji, role — map a role
/reactionrole remove panel, emoji — unmap one
/reactionrole clear panel — unmap all
/reactionrole attach panel, message — move it onto an existing message
/reactionrole list — what's set up here (first 10)
You never type a message ID: start typing at panel: and CloudMod offers the panels
of this server by name. Pasting the panel message's link still works too.
Templates
Five ready-made panels sit at the top of the Reaction Roles page, under Start from a template:
| Template | Default options |
|---|---|
| Country | 15 flags (Germany, Austria, Switzerland, US, UK, …) plus 🌍 Other |
| City | 🇦 🇧 🇨 … letter emoji with placeholder city names — rename them to yours |
| Gender | ♂️ Male, ♀️ Female, ⚧️ Non-binary, 🤐 Prefer not to say |
| Age | 13–15, 16–17, 18–20, 21–24, 25–29, 30+ (nothing under 13 — Discord's minimum age) |
| Color | 12 name colours, each role gets its colour |
- Pick a template. Its options appear as an editable list: change the emoji or the label, add or remove options (up to 20), and reorder them with the arrows.
- Optional: set a role name prefix — with the prefix "Color", the role for "Red" is called "Color Red".
- Pick a channel and press Create roles & panel.
CloudMod then creates every role that's missing, reuses a role that already has exactly that name (as long as CloudMod can assign it), and posts the panel with its reactions. Each label becomes a role name, and the panel lists which emoji stands for which role. The result, or the reason it didn't work, shows up in your log channel.
Template panels are always single choice — members can pick only one option. Reacting to another emoji swaps their role and removes their old reaction.
Good to know:
- Setting up the same template twice gives you a second panel but no duplicate roles.
- CloudMod needs Manage Roles, and the server needs room for the new roles — Discord allows 250 roles per server.
- New roles are created at the bottom of the role list, below the CloudMod role, so CloudMod can hand them out straight away. They aren't displayed separately and can't be mentioned.
- The panel always goes to a channel on your main server — that's where the roles live.
Using a message that already exists
/reactionrole attach hangs a panel on any message on this server — including one
you wrote years ago. Reactions and roles then work exactly as on a normal panel.
One limit, and it's Discord's: a bot cannot edit someone else's message. So on a message CloudMod didn't post, the panel's title and description stay in the dashboard as its name — they won't show up in Discord. CloudMod only adds the reactions. If the message is one CloudMod posted, the embed keeps updating as usual.
If the panel already had its own CloudMod message, that old message stays in the channel — CloudMod tells you, and you can delete it.
Changed your mind? Pick a channel on the panel in the dashboard and press Update message — CloudMod posts its own message again. The old message stays where it is — it just stops handing out roles.
Good to know
- A panel holds up to 20 emoji → role mappings.
- Every role must sit below the CloudMod role.
- Custom emoji work if they come from a server the bot is in.
- Reactions on messages that were deleted are ignored — no error, nothing happens.
Requirements: Manage Roles, Add Reactions, Manage Messages.