ZombyIO
All guides

Docs · Welcome and organise

How to set up reaction roles in Discord

Post a message where members give themselves roles, by pressing a button, choosing from a dropdown or reacting with an emoji. You build the message in the dashboard, save it, and then post it to Discord.

Takes about 5 minutesFree, Premium raises limits

What you will end up with

Members pick their roles from the message themselves, at any hour. By default a button or dropdown answers privately with the role that changed, and nobody else sees that answer.

roles

Where to find it

Open the dashboard, pick your server and choose Reaction roles in the sidebar (on a phone: under Features in the bar at the bottom). That is two clicks from your server list. You can also press Ctrl K anywhere in the dashboard and type the name.

  1. Your servers
  2. Your server
  3. Reaction roles
Open the dashboard

Step by step

  1. Step 1: Start from a template

    In the dashboard, pick your server and choose Reaction roles in the sidebar. Under Start from a template, click the kind of message you want to build. Show more templates reveals two more.

    • Verification: one button that hands out an access role and never takes it back.
    • Notifications: a dropdown of roles members want to be pinged for.
    • Colours: buttons, one colour per member.
    • Teams: buttons, one team per member.
    • Opt out of pings: a reaction that removes a role everybody has.
    • Start from scratch: an empty message.

    The new message appears under Your messages as a Draft. Templates never pick roles or a channel for you. Each message counts towards your plan: 3 on the free plan, 80 with Premium.

  2. Step 2: Pick the channel

    Under Channel, choose where the message goes. ZombyIO needs View Channel and Send Messages there, plus Embed Links for an embed, and Add Reactions and Read Message History for reactions.

    Important

    If you move a message that is already posted to another channel and save, the old message is deleted. Post it again afterwards.

  3. Step 3: Write the message

    Under The message, click any part of the picture to edit it: the title, the text, the author line, a field or the footer. Empty parts are left out. How it looks switches between Plain text and Embed. The embed is the default and takes an Accent colour.

    Placeholders such as {user} are not filled in here. The message is posted once and looks the same for everyone.

    Tip

    Pictures can be added once the message has been saved: save first, then drop a picture on the message. They only appear with Embed.

    roles
  4. Step 4: Choose how members pick, and add the roles

    Under Reactions and roles, choose Reactions (up to 20 roles), Buttons (up to 25) or Dropdown (up to 25). Then fill in one row per role: an emoji, the role, and for buttons and dropdowns the Text on the button. The arrows change the order members see. The Add a role button under the rows adds a row. The smaller Add a role inside a row adds up to four more roles that the row hands out together with its own, listed under Also gives, such as a separator role above a colour.

    Several roles from this panel is on by default. Switch it off and members hold one role from this message at a time: picking a second returns the first.

    Important

    A button with an empty Text on the button shows only its emoji, and a dropdown row without text uses its emoji as the text, or the emoji’s name for a server emoji. The role name is never filled in for you, so type the text you want members to see. The preview on the page shows both the same way.

    roles
  5. Step 5: Choose what a click does

    Under Reaction mode:

    • Standard: clicking gives the role, clicking again takes it back. Right for almost every message.
    • Inverted: for a role everybody already has. Reacting gives it up, and taking the reaction back returns it. Only reactions work this way; buttons and dropdowns simply switch the role on and off.
    • Give only: the role can be taken but never given back, for rules and verification. With one role at a time, the first pick is final.
    roles
  6. Step 6: Save your changes

    Press Save in the bar at the bottom of the page. Saving stores the message in the dashboard. It does not post anything to Discord yet.

    While you have unsaved changes, Post to Discord stays greyed out and the page asks you to save first. That is on purpose: ZombyIO always posts what is saved, never what is only on your screen.

  7. Step 7: Post it to Discord

    Under Post it, press Post to Discord. The message appears in the channel, and its badge under Your messages changes from Draft to Posted. Open in Discord takes you to it.

    When you change the message later and save, the badge says Changed: Discord still shows the old version until you press Update the message. Only swapping the role on a row that already had one takes effect with Save alone, because the message shows emoji and text, not roles.

    Tip

    Remove from Discord deletes the message but keeps it here, ready to post again. Remove in the list deletes the message from your server as well, once you save.

    roles

Every setting explained

In the order the page shows them. Names in bold are exactly what the dashboard calls each control.

Start from a template

Verification

One button, “I accept the rules”, in Give only mode with one role at a time. Members who click can never lose the role by clicking again. Pick the role that opens your server.

Notifications

A Dropdown with three rows: Announcements, Events and Game nights. Members can take several.

Colours

Buttons for Red, Blue, Green and Purple, one colour at a time: picking a new one replaces the old.

Teams

Buttons for two teams, one at a time. Behind Show more templates.

Opt out of pings

One reaction in Inverted mode, for a ping role everybody has: reacting removes the role, taking the reaction back returns it. Behind Show more templates.

Start from scratch

An empty message with Buttons, a title and a line of sample text. You add every row yourself.

Your messages

Reaction role panelsFree: 3 · Premium: 80

Each message is one panel. When you reach your plan’s limit, the templates and Duplicate are greyed out. After a downgrade you keep every panel you have, but cannot add new ones.

Draft · Posted · Changed

Draft: not in Discord yet. Posted: in Discord and up to date. Changed: in Discord, but you saved changes since. Press Update the message to bring them over.

Duplicate

Copies a panel with all its rows as a new Draft, named after the original with “(copy)”. The copy is posted as a message of its own.

Remove

Removes the panel. A posted panel asks first, and its message is deleted from your server when you save. A draft goes at once.

Channel

Channel

Where the message is posted. Changing the channel of a posted message and saving deletes the old message; post it again afterwards.

The message

Message text

Up to 4,096 characters in an embed, 2,000 as plain text. Placeholders are not filled in.

How it looks

Plain text or Embed, the default. Pictures, the title, the author line, fields and the footer are only sent with Embed.

Accent colour

The stripe down the left of the embed. Default blue (#5B8DEF).

Title, author and footer

Typed straight into the picture of the message. The title and author line take up to 256 characters, the footer 2,048. Empty parts are left out.

FieldsFree: 3 · Premium: 25

Named blocks under the text. A field is only sent when both its name and its value are filled in.

Pictures

The large picture, the thumbnail and the small author and footer pictures, in JPEG, PNG, WebP, GIF or AVIF: up to 2 MB each on the free plan, 6 MB with Premium. Available once the panel has been saved. An upload is stored at once and marks a posted panel Changed.

Reactions and roles

How should members pick their roles?

Reactions (up to 20 roles), Buttons (up to 25) or Dropdown (up to 25). Default Buttons. Switching to a style with room for fewer roles removes the extra rows. Reactions on a panel you switched to buttons or a dropdown do nothing.

Several roles from this panel

On by default: members can take every role on the message. Off: one role at a time, and picking a second returns the first. With Give only, the first pick is final instead.

Emoji

One emoji, from the standard set or your server’s own. Needed for reactions, and optional for buttons and dropdowns when the row has a text. If a server emoji is deleted later, the message cannot be posted until you pick another.

Pick a role

The role the row hands out. A row without a role is kept but left off the message. The page warns about roles above ZombyIO, refuses to save a role with Administrator, and lets only the server owner or an administrator save a role with moderation rights, or move a panel with one into another channel. A role that unlocks such a panel, because the panel requires it or sits in a channel only that role can see, counts as one too.

Text on the button

Buttons and dropdowns only, up to 80 characters. Left empty, a button shows only its emoji and a dropdown row uses its emoji as the text.

Second line

Dropdown only: a smaller second line under the row, up to 100 characters.

Colour

Buttons only: Blue, Grey, Green or Red. Default grey.

Also gives

More roles handed out and taken back together with the row’s role, up to 5 roles per row in total. Another row’s role cannot be added here.

Reaction mode

Standard

The default. A click gives the role, a second click takes it back.

Inverted

For reactions: reacting takes the role away, and taking the reaction back returns it. Buttons and dropdowns simply switch the role on and off.

Give only

Roles can be taken but never given back through the panel, and taking a reaction off does nothing. With one role at a time, a member who picked once is told the choice is final.

More settings

Panel name

Only you see it, in the list of messages. Up to 80 characters.

This panel is active

On by default. Off leaves the message in Discord but stops it handing out roles: reactions are ignored, and a button or dropdown answers that the panel is no longer set up.

At most

Only while Several roles from this panel is on: No limit (the default), 1 role, 3 roles, 5 roles, or an exact number up to the style’s limit. A member at the limit is asked to give a role back first.

Clear the reaction after granting

Reactions only, off by default. Takes the member’s reaction off after the role is handed out, so the message stays tidy. Reacting again then reverses the change, except in Give only mode, where the role stays. Needs Manage Messages in the channel; without it the reactions stay.

Tell the member what changed

On by default. A button press gets a private note naming the role that changed. Off: a press stays silent unless something went wrong. A dropdown always answers privately, whatever this says, because its answer holds the member’s own copy of the menu.

Only these roles may use it

Up to 10 roles. Only members with at least one of them can take roles from the panel. Empty means everybody.

These roles may not use it

Up to 10 roles. Members with any of them cannot take roles from the panel. Both lists only limit taking roles: anyone can always give one back.

Post it

Post to Discord · Update the message

Posts the saved panel, or updates the message already posted. Greyed out while you have unsaved changes. Members’ reactions stay when you update, and if the message was deleted in Discord, a new one is posted. After six posts in a row, wait a few seconds.

Remove from Discord

Deletes the message from Discord and keeps the panel here as a Draft.

Open in Discord

Opens the posted message in Discord.

Free and Premium

Premium costs €6 a month per server and is shared by every admin of that server. It raises limits, it does not unlock the feature.

Free and Premium
WhatFreePremium
Reaction role panels380
Fields in one embed325
Largest picture upload2 MB6 MB

Something not working?

The problems people run into most often, and how to fix each one.

The Post to Discord button is greyed out

You have unsaved changes. Press Save first. ZombyIO always posts the saved version, so the button waits until what you see is stored.

I changed the panel, but Discord still shows the old message

Saving does not change the posted message. The badge under Your messages then says Changed. Press Update the message under Post it. Only swapping the role on a row that already had one works without updating, because the message shows emoji and text, not roles.

Members click but get no role

With buttons and dropdowns, the private reply says why. A reaction gets no reply: ZombyIO takes it back off instead, if it has Manage Messages in the channel. The causes:

  • ZombyIO could not change the role: it sits above ZombyIO’s own role, was deleted, or ZombyIO lacks Manage Roles. See roles and permissions.
  • The member already holds as many roles as At most allows.
  • Only these roles may use it or These roles may not use it keeps the member out.
  • The panel is in Give only mode with one role at a time, and the member already picked.
Members are told the panel is no longer set up

The message is still in Discord, but it does not hand out roles: the switch at the top of the page is off, This panel is active is off, or the panel was removed. Switch it back on and save, or post the panel again.

If they are told they clicked an old copy, the panel was posted somewhere else since. Delete the old message.

Reacting does nothing
  • The panel is not posted yet, or it is not in the Reactions style. Reactions on a panel you switched to buttons or a dropdown are ignored.
  • The panel, or the whole feature, is switched off.
  • It is a super reaction. Only normal reactions count.
  • ZombyIO could not change the role. It then takes the reaction back off, if it has Manage Messages in the channel.
A button shows only an emoji

Its Text on the button is empty. Discord then shows the emoji alone, just like the preview on the page. Type the text, save, and press Update the message. A dropdown row without text shows its emoji as the text, or the emoji’s name for a server emoji.

Posting fails

The line under the button says why:

  • No channel is picked, or ZombyIO cannot write in it.
  • No row has both a role and an emoji or text.
  • The message has no text and no embed.
  • The embed is longer than Discord’s 6,000 characters.
  • A server emoji on the panel was deleted. Pick another one.
  • You posted several times in a row. Wait a few seconds.

If only some reactions appear, check ZombyIO’s permissions in that channel with Server Check.

Saving is refused
  • A row hands out a role with the Administrator permission. Pick another role.
  • A row hands out a role with moderation rights. Only the server owner or an administrator can save that, because anyone who clicks would get those rights.
  • Discord did not answer, so the roles could not be checked. Try again in a moment.
  • Somebody saved this page in another tab or browser. Reload, then make your change again.

Still stuck?

Ask in the ZombyIO support server. Bring your support ID, your server’s support ID and a sentence about what you expected to happen, and someone will look at it with you.

Go to the support server