Community Module

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.

Where to find it: run /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.

Good to know

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

  1. Post the message you want members to react to, then right-click it Copy Message Link.
  2. Choose Add Message, paste the link, and pick a Behaviour.
  3. 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.
  4. Repeat Add Role for every emoji you want on the menu.
  5. (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.

  1. Open the Unique message with Edit Message Add Role.
  2. Enter an emoji (e.g. ❌) and leave the Roles picker empty. Submit.
Only Unique messages can have a clear emoji, and only one per message. To switch the message to another behaviour, remove the clear emoji first.

Reference: all settings

SettingWhat it does
Add MessageRegister a message (by its link) as a reaction roles message and pick its behaviour. Up to 25 messages per server.
Edit MessageOpen a message to manage its emojis, behaviour, and required roles.
Remove MessageStop Skipper from listening to a message. Existing roles are left as they are.
Add RolePair 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 RoleRemove an emoji and its roles from the message, and take Skipper’s reaction off it.
BehaviourNormal, Unique, Verify, or Drop (see How it works), plus the Role Limit (0–20, empty means no limit).
Required RolesOnly members with one of these roles (up to 5) can use the reactions. Empty means anyone can.
Resync ReactionsMake Skipper add all of the message’s emoji reactions again, useful if someone cleared them.

Troubleshooting

ProblemFix
“Missing permissions” when adding a messageGive Skipper View Channel, Read Message History, and Add Reactions in that channel.
Can’t add a roleSkipper’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 nothingCheck 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 removedYou’re either at the Role Limit or missing a Required Role for that message.
Reactions disappeared from the messageUse 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.