Skip to content

Reaction Roles

Reaction roles let your members pick their own roles - colours, pings, pronouns, region tags, anything - without an admin lifting a finger. You point the bot at a message, choose how members pick (a reaction, a button, or a dropdown), and pair each one with a role. One pick adds the role, picking again removes it.

TierFree
Command/rolemenu
Who can useEveryone self-assigns, Admins set up
Also on dashboardYes

Every menu points at a message you already have - you give the bot a message link and it adds the roles to that message. How members pick is up to you:

  • Reactions - the bot adds emoji reactions to the message. Members react to get the role and remove their reaction to drop it. This works on any message.
  • Buttons - the bot adds a row of buttons to the message. Each button toggles a role on or off, and you can give it a label, an emoji, and a colour.
  • Dropdown - the bot adds a single menu to the message. Members open it and tick the roles they want; un-ticking removes them. Best when you have a lot of roles and want to keep things tidy.

An admin sets up a menu with /rolemenu create (or on the dashboard) and gives it a message link. The bot then adds the reactions - or the buttons / dropdown - to that message within about a minute. From then on it is automatic: members pick their roles and the bot adds or removes them, with no further admin work. If the message already had buttons of its own (from a template, say), the role buttons sit alongside them - the bot only ever manages its own.

Every time someone picks up or drops a role, the bot lets them know it worked. For buttons and dropdowns that is a quiet confirmation only that member sees. For reactions it is a direct message - but you can turn that DM off per menu if you would rather the bot stay silent (some members dislike bot DMs). Set it when you create the menu with the dm option, flip it later with /rolemenu dm, or toggle it on the dashboard. With DMs on, members who use reaction menus should keep their DMs open; with them off, the role is still added or removed, just with no message.

Everything keeps working across bot restarts, and the role itself is the only record - there is nothing to re-sync.

Start a new menu on a message, with its first role.

OptionTypeRequiredDescription
kindchoiceYesEmoji Reactions, Button Panel, or Select Menu
roleroleYesThe role this first option grants
messagetextYesA link to the target message. For buttons / dropdowns it must be a message the bot posted
nametextYesA name for the menu (shown in /rolemenu list; not posted to the message)
emojitextFor reactionsThe emoji for this option (required for reaction menus, optional on buttons)
labeltextFor buttons/dropdownsThe button or dropdown label for this option
stylechoiceNoButton colour: Blurple, Grey, Green, or Red (button menus only)
dmyes/noNoReaction menus only: DM members a confirmation when their role changes. Default Yes
/rolemenu create kind:Button Panel role:@Red message:https://discord.com/channels/... name:Colours label:Red style:Red

To get a message link, right-click (or long-press) the message and choose Copy Message Link.

Add another role to a menu you already made. The menu option autocompletes with your existing menus.

OptionTypeRequiredDescription
menumenuYesThe menu to add to (pick from autocomplete)
roleroleYesThe role this option grants
emojitextFor reactionsThe emoji for this option
labeltextFor buttons/dropdownsThe button or dropdown label
stylechoiceNoButton colour (button menus only)

Take a single role out of a menu. The bot drops that reaction or that button. To clear the whole menu instead, use /rolemenu delete.

OptionTypeRequiredDescription
menumenuYesThe menu to edit (pick from autocomplete)
roleroleYesThe role to remove

Turn the role-change DM on or off for a reaction menu. Only reaction menus DM - button and dropdown menus reply privately in the channel and never DM, so this does nothing for them.

OptionTypeRequiredDescription
menumenuYesThe reaction menu to change (pick from autocomplete)
sendyes/noYesYes to DM members when their role changes, No to stay quiet

See every reaction-role menu in the server - its style, channel, how many roles it has, whether it is live, and (for reaction menus) whether role-change DMs are on or off. Only you see the reply.

Remove a menu entirely. The bot takes its reactions or its buttons back off the message - the message itself stays, along with any buttons it had of its own. Members keep any roles they already picked.

OptionTypeRequiredDescription
menumenuYesThe menu to delete (pick from autocomplete)

The Reaction Roles tab at dashboard.codexhelper.com gives you the same thing in the browser, with a live preview:

  • Pick a style, name the menu, paste the message link, and add as many roles as you like, each with its own emoji, label, and (for buttons) colour. The emoji field opens a picker with your server’s own custom emojis plus the standard set.
  • See a preview of the buttons / dropdown / reactions as you build it, then Create - the bot adds them to your message within about a minute.
  • For reaction menus, a DM members on role change switch decides whether the bot DMs members a confirmation when they pick up or drop a role - turn it off to keep the bot quiet.
  • Edit or delete any menu later from the same tab.

Anything you build on the dashboard shows up in /rolemenu list in Discord, and the other way around.

  • A server can have up to 25 menus.
  • A message can hold up to 20 reactions; a button menu up to 25 buttons; a dropdown up to 25 options. Buttons and dropdowns share the message’s 5 component rows with anything already on it.
  • The bot needs Manage Roles, and its own highest role must sit above every role you hand out - Discord will not let it assign a role higher than itself.
  • It cannot assign roles managed by Discord or another integration (like a Nitro booster role or a bot’s own role).
  • For reactions the bot needs Add Reactions and Read Message History in that channel.
  • For buttons and dropdowns the target must be a message the bot posted as itself - a message sent through a custom webhook sender can’t be edited to add buttons.
  • If a custom emoji does not work, the bot is not in a server that has that emoji. Standard emojis always work.
  • A menu’s style is fixed once created. To switch a menu between reactions, buttons, and a dropdown, delete it and make a new one.