To set up reaction roles in Dyno, open the Dyno dashboard, pick your server, turn on the Reaction Roles module, then create a new message or attach the menu to one you already posted. Pair each emoji with a role and save. Before you start, drag Dyno's role above every role it will hand out, or nothing happens when members react. Free servers get 3 reaction roles, and Dyno Premium raises that limit.
Checked on each bot's own site or docs on 3 November 2026. We make PeakBot. Nobody paid to be in this post.
If you're still choosing between emoji reactions and buttons, read our general reaction roles guide first. This post covers Dyno only.
Part 1: Get Discord ready (5 minutes)
You do these steps in Discord, not on Dyno's site. If you skip one, the menu may post but never hand out roles.
- Add Dyno to your server from dyno.gg. Leave the Manage Roles permission on, because Dyno needs it to give roles out.
- Create the roles in Server Settings > Roles > Create Role. Self-assign roles like colours, game pings and regions usually need no permissions, so leave them off. That way nobody can use a reaction to give themselves real powers.
- Move Dyno's role above them. In Server Settings > Roles, drag the Dyno role above every role you plan to put in the menu, then click Save Changes. Discord only lets a bot edit roles below its own highest role, and a bot can only grant permissions it has itself. For the full picture, see our roles and permissions guide.
- Check the channel's permissions. Open the channel's settings > Permissions and make sure nothing denies Dyno (or its role) View Channel, Send Messages, Embed Links (if you post an embed), Add Reactions or Read Message History. To use custom emoji from another server, Dyno also needs Use External Emojis.
- Turn on Developer Mode if you want to use a message you already posted. On desktop: User Settings > Advanced > Developer Mode. On mobile it's normally Settings > Advanced, but some guides put it under a different heading, so search your settings if you don't see it. Then right-click the message (long-press on mobile) and choose Copy Message ID. Discord explains this on its help center.
Part 2: Build the menu in Dyno's dashboard
The labels below come from walkthroughs of Dyno's dashboard, so the live wording may be a little different. The order of the steps stays the same.
- Go to dyno.gg, log in with Discord, open Manage Servers and pick your server.
- Open Modules, find Reaction Roles, switch it on, then open its settings.
- Choose the message. You'll usually get three choices: a new plain message, a new embed, or an existing message. For an existing message, pick the channel and paste the message ID you copied.
- Write the text if it's a new message. List the emoji and their roles in the message itself, for example "🔴 Red, 🔵 Blue", so members don't have to guess.
- Add the reactions. Use the "+" button in the reaction settings to add a row for each emoji and role. Pick a standard emoji or one of your server's custom emoji, then pick the role.
- Choose the behaviour: decide whether members can hold one role from this message or several. See Part 3.
- Save. Dyno posts the message (or uses the one you chose) and adds its reactions under it.
- Test it. React, then check your profile for the role. Remove the reaction and check again, so you know how the menu handles removal before members use it.
Dyno's docs say the module can add "reactions or components", so you may also see an option for buttons. Buttons follow the same role order and permission rules. Dyno's own page is at docs.dyno.gg.
Part 3: One role or several
This setting changes how the menu behaves more than any other.
- Several roles: members can take any mix of roles from the message. This suits game pings, event notifications and topic channels.
- One role only: picking a new role removes the old one. This suits colours, regions and teams, where holding two at once makes no sense.
Look for the option in the reaction role settings that controls this. The exact label can vary, so read the description next to each option before you save rather than relying on the name. Then test it: react with two different emoji and check whether you end up with one role or both.
A tip that saves rework: make one message per kind of choice. For example, use a one-role message for colours and a several-roles message for pings. Don't mix both kinds in a single menu.
Mind the limit, too. Free servers get 3 reaction roles, and Premium raises it (dyno.gg/upgrade lists the plans). If you need more without paying, Discord's own Onboarding Customization Questions let you link each answer to roles or channels. You can also find them under Channels & Roles > Customize.
Part 4: When it doesn't work
| What you see | Likely cause | Fix |
|---|---|---|
| Reacting does nothing | Dyno's role is below the role it should give | Drag Dyno's role higher in Server Settings > Roles and save |
| Dyno posts the message but adds no reactions | The channel denies Add Reactions or Read Message History for Dyno | Allow both for Dyno in the channel's permissions |
| A custom emoji won't save or shows blank | It comes from another server, or it was deleted | Use your own server's emoji, or allow Use External Emojis for Dyno |
| Members say they can't react | Discord doesn't require Add Reactions to click a reaction that's already on a message, so the problem is usually elsewhere | Check they have View Channel and Read Message History, and that Dyno's reactions are actually showing |
| A role is missing from Dyno's role list | It's a managed role (Server Booster, or a bot's own role), or it sits above Dyno | Discord doesn't let bots hand out managed roles. For the rest, fix the order |
| The menu stopped working one day | The message was deleted, or someone moved roles around | Rebuild the menu and check the role order again |
Don't make Dyno an Administrator just to get it working. Administrator skips channel permission overwrites, but the bot still can't touch roles above its own. The real fix is role order plus Manage Roles. If you want roles given out on join with no reaction needed, that's a different module: see Dyno auto roles.
How PeakBot does it
PeakBot keeps every role automation on one Roles page in the dashboard sidebar: auto roles on join, self-assign roles and if/then rules. Roles is part of the Free plan, which has no time limit.
- Log in at peakbot.pro and pick your server.
- Open Roles in the sidebar and set up your self-assign roles.
- Configure and post it from the dashboard. There's no setup command, and the dashboard shows you the result before you post it.
The same Discord rule applies: PeakBot's role has to sit above the roles it hands out. The welcome, roles and verification docs walk through the options.
When to stay with Dyno: if Dyno already runs your moderation and its module does what you need, adding a menu there is less work than bringing in a second bot. If you're comparing bots, our Carl-bot reaction roles guide covers that bot's version.
Frequently Asked Questions
Why isn't Dyno giving roles when I react?
Check role order first. If Dyno's role sits below the role it's trying to give, Discord blocks it. Drag Dyno's role higher in Server Settings > Roles and click Save Changes. If that's not it, make sure the channel doesn't deny Dyno View Channel, Add Reactions or Read Message History, and that the role isn't a managed one like Server Booster.
How do I make members pick only one role?
In the menu's settings, choose the option that lets members hold only one role from that message. After that, picking a new emoji swaps their role. Put only the roles that should exclude each other on that message, such as colours, and put the others on a separate message.
Can I use custom emojis for Dyno reaction roles?
Yes. Custom emoji from your own server are the safest choice. Emoji from another server need the Use External Emojis permission for Dyno in that channel. If an emoji gets deleted later, its reaction role stops working.
How do I add reaction roles to a message I already posted?
Turn on Developer Mode (User Settings > Advanced), right-click the message and choose Copy Message ID. In Dyno's Reaction Roles settings, pick the existing message option, choose the channel and paste the ID. Then add your emoji and role pairs and save.
Does the role get removed when someone takes their reaction off?
Check it yourself after you save: remove your reaction and look at your profile. If the role stays when you expected it to go, review the menu's settings in the dashboard, and confirm Dyno's role still sits above that role, because Dyno can't remove a role it can't manage.
Do Dyno reaction roles work in threads?
There isn't a clear published answer, and the question keeps coming up on Discord's community forum. The safe choice is a normal text channel, such as a #roles channel, which works the way the steps above describe.
