Reaction Roles
Let members pick their own roles. Turn any message in your server into a role menu, react with an emoji to get a role, unreact to lose it.
/config Category dropdown Community Reaction Roles. Toggle the module on first.How it works
You point Skipper at an existing message using its message link, then pair emojis with roles. Skipper adds each emoji as a reaction on that message, and whenever a member reacts, it gives them the roles tied to that emoji. Each emoji can give up to 5 roles.
Every message has a behaviour that decides what reacting and unreacting do:
🔁 Normal
React to get the role, unreact to lose it. The default, and the right pick for most role menus.
☝️ Unique
Only one role at a time. Reacting to a new emoji swaps the role and removes the member's other reaction. Great for colour roles or picking a team.
✅ Verify
React to get the role, but unreacting keeps it. Use it for rules acceptance or verification gates.
🗑️ Drop
React to lose the role, unreacting does nothing. Handy for letting members opt out of a role they were given automatically.
Write the message first (the Embeds module is great for a nice-looking role menu), then right-click it and choose Copy Message Link.
Create your first role menu
- Post the message you want members to react to, then right-click it Copy Message Link.
- Choose Add Message, paste the link, and pick a Behaviour.
- Choose Edit Message, select your message, then Add Role. Enter an emoji (a default emoji or one from your server) and select the roles it gives. Skipper reacts with the emoji straight away.
- Repeat Add Role for every emoji you want on the menu.
- (Optional) Under Behaviour, set a Role Limit, or under Required Roles, lock the menu to certain members.
Role limits and required roles
A Role Limit caps how many emojis a member can pick from one message, for example "choose up to 3 interests". When a member is at the limit, their extra reaction is removed and they get nothing. The limit only applies to Normal and Verify messages, since Unique already allows one and Drop only takes roles away.
Required Roles lets only members with at least one of the chosen roles use the reactions. Anyone else's reaction is removed without changing their roles. Pair this with a Verify message to build a two-step flow, for example verify first, then unlock the pronoun menu.
Clear emoji (Unique messages)
On a Unique message you can add one emoji that gives no role. Reacting with it takes away whichever role the member picked from the menu, removes their other reaction, and then takes its own reaction back off so it can be used again. Think of it as a "no colour" or "leave my team" button.
- Open the Unique message with Edit Message Add Role.
- Enter an emoji (e.g. ❌) and leave the Roles picker empty. Submit.
Reference: all settings
| Setting | What it does |
|---|---|
| Add Message | Register a message (by its link) as a reaction roles message and pick its behaviour. Up to 25 messages per server. |
| Edit Message | Open a message to manage its emojis, behaviour, and required roles. |
| Remove Message | Stop Skipper from listening to a message. Existing roles are left as they are. |
| Add Role | Pair an emoji with up to 5 roles. Using an emoji that is already set updates its roles. Up to 20 emojis per message. On Unique messages, leave the roles empty to make a clear emoji. |
| Remove Role | Remove an emoji and its roles from the message, and take Skipper’s reaction off it. |
| Behaviour | Normal, Unique, Verify, or Drop (see How it works), plus the Role Limit (0–20, empty means no limit). |
| Required Roles | Only members with one of these roles (up to 5) can use the reactions. Empty means anyone can. |
| Resync Reactions | Make Skipper add all of the message’s emoji reactions again, useful if someone cleared them. |
Troubleshooting
| Problem | Fix |
|---|---|
| “Missing permissions” when adding a message | Give Skipper View Channel, Read Message History, and Add Reactions in that channel. |
| Can’t add a role | Skipper’s highest role must be above the role it gives. Integration-managed roles and @everyone can’t be used. |
| “Could not react with this emoji” | Use a default emoji or one from this server. Skipper can’t use custom emojis from servers it isn’t in. |
| Reacting does nothing | Check the module is on, Skipper has Manage Roles, and the member has a Required Role if one is set. |
| “Already given by another emoji” | Each role can only belong to one emoji per message. Remove it from the other emoji first. |
| My reaction was removed | You’re either at the Role Limit or missing a Required Role for that message. |
| Reactions disappeared from the message | Use Resync Reactions to have Skipper add them back. |
| “Only unique messages can have an emoji that clears the role” | Select at least one role, or set the message’s Behaviour to Unique first. To leave Unique, remove the clear emoji first. |