# The best Discord reaction role bots

> The best Discord reaction role bots, ranked on panel type, exclusivity and free headroom. Vetox leads, with unlimited free panels and five modes.

- Canonical: https://discordbots.blog/blog/best-discord-reaction-role-bots
- Published: 2026-08-30
- Author: The Field Guide desk
- Competitor facts checked: 2026-08-30
- Sources:
  - docs.zira.bot (https://docs.zira.bot/) — checked 2026-08-30
  - docs.zira.bot — settings and access (https://docs.zira.bot/settings-and-access) — checked 2026-08-30
  - docs.carl.gg (https://docs.carl.gg/) — checked 2026-08-30
  - carl.gg — premium (https://carl.gg/get-premium) — checked 2026-08-30
  - mee6.xyz premium page (https://mee6.xyz/en/premium) — checked 2026-08-30
  - dyno.gg premium page (https://dyno.gg/premium) — checked 2026-08-30
  - docs.probot.io — commands (https://docs.probot.io/docs/getting-started/commands) — checked 2026-08-30
  - docs.atlas.bot — advanced settings (https://docs.atlas.bot/learn/advanced-settings) — checked 2026-08-30
  - circlebot.xyz documentation (https://circlebot.xyz/docs) — checked 2026-08-30
  - koya.gg features (https://koya.gg/en/features) — checked 2026-08-30
  - docs.arcane.bot (https://docs.arcane.bot/) — checked 2026-08-30
  - colorchan.com (https://colorchan.com/) — checked 2026-08-30
  - maki.gg premium page (https://maki.gg/premium) — checked 2026-08-30
- Publication: The Field Guide, an independent site not affiliated with Discord Inc.

---
Reaction role free tiers vary by a factor of thirty. **Zira gives 100 reaction roles per server
free**, Carl-bot builds its whole product around them, Dyno caps free at 3, and MEE6 charges. The
differences worth comparing are panel type, exclusivity behaviour, and what the member is told
when the role lands.

## What actually differs between reaction role bots

The reaction itself is solved. Four things are not.

**Panel type.** Emoji reactions are the original mechanism and the worst one — they clutter the
message, they break when a custom emoji is deleted, and members remove reactions by accident.
Buttons and dropdown select menus are cleaner and every serious bot now supports them. Check which
your candidate actually ships — SlashBot went the other way and removed reaction panels by design,
as [our SlashBot alternatives](/blog/slashbot-alternatives) record.

**Exclusivity.** Picking a region role should remove the previous region role. Picking a ping role
should not remove anything. Whether a bot can express both, per panel, is the difference between a
role structure that works and one people break.

**Headroom.** Free caps range from 3 to 100 to uncapped across this comparison, and the number that
bites is not the total — it is the number **per panel**, because Discord itself caps 25 options in
a select menu and 25 buttons across five rows.

**Confirmation.** Whether the member gets told the role landed. Silence is the single most common
"reaction roles aren't working" support ticket, and on at least one bot in this list the
confirmation is a paid feature.

## How this ranking was built, and what it is not weighted by

Every limit below was read from the vendor's own documentation on 30 August 2026. The criteria, in
order: free headroom, panel types supported, exclusivity behaviour, and whether configuration is a
dashboard or a chat command.

It is **not** weighted by install count, and it is not weighted by how the panel embed looks. It is
also not weighted by scripting power — Carl-bot's Tagscript is genuinely the most flexible thing in
this category and it is a different product for a different person, which the entry below says
plainly.

## The comparison

| Bot                                                            | Free headroom                                | Reactions | Buttons | Dropdowns | Exclusive groups | Config    |
| -------------------------------------------------------------- | -------------------------------------------- | --------- | ------- | --------- | ---------------- | --------- |
| Vetox                                                          | **unlimited panels**, 20/25/25 per panel     | yes       | yes     | yes       | **two kinds**    | dashboard |
| [Zira](https://docs.zira.bot/)                                 | **100 roles per server, all types combined** | yes       | yes     | yes       | yes              | dashboard |
| [Carl-bot](https://docs.carl.gg/)                              | free, with Tagscript behind it               | yes       | yes     | yes       | yes              | dashboard |
| [ProBot](https://docs.probot.io/docs/getting-started/commands) | free                                         | yes       | yes     | —         | —                | dashboard |
| [Atlas](https://docs.atlas.bot/learn/advanced-settings)        | **4 groups × 20 roles**                      | yes       | yes     | —         | yes              | dashboard |
| [Koya](https://koya.gg/en/features)                               | **5 button rows**                            | yes       | yes     | —         | —                | dashboard |
| [Circle](https://circlebot.xyz/docs)                           | **2 messages × 20 roles**                    | yes       | yes     | —         | —                | dashboard |
| [Arcane](https://docs.arcane.bot/)                             | **10 reaction roles**                        | yes       | —       | —         | —                | dashboard |
| [Dyno](https://dyno.gg/premium)                                | **3**                                        | yes       | —       | —         | —                | dashboard |
| [Maki](https://maki.gg/premium)                                | free, styles paid                            | yes       | yes     | —         | —                | dashboard |
| [MEE6](https://mee6.xyz/en/premium)                            | **none — paid**, 40 when bought              | yes       | yes     | —         | —                | dashboard |
| [Loritta](https://loritta.website/)                            | **absent**                                   | —         | —       | —         | —                | —         |

## Zira — 100 free reaction roles, and a paywalled confirmation DM

**100 reaction roles per server, free, combined across all nine of its role types plus buttons and
select menus.** Nothing else in the utilities category comes close on raw allowance, and its
premium is **$2 per 30 days or $50 lifetime**, which is the cheapest paid tier in this whole
comparison.

Two things to know before you commit to it.

The pool being **combined** rather than per-type cuts both ways. One hundred roles is generous if
you want a big picker; it is one shared budget if you want reaction roles, button roles and select
menus all at once.

And **role-change DMs are premium**. On the free tier a member clicks and gets no confirmation the
role landed, which is precisely the failure mode described above. It is a small thing that produces
a disproportionate number of "is it broken?" messages.

One correction worth making, because it is repeated on several comparison sites: a claim that Zira
allows only "6 remove roles per guild" free is **contradicted by Zira's own documentation**, which
states 100 combined. The vendor page wins.

**Verdict: the best free allowance, and check that missing DM against how much handholding your
members need.**

## Carl-bot — reaction roles _are_ the product

Carl-bot has been the default answer to this question for years and it earns it. Reaction roles are
not a plugin bolted onto a moderation bot; they are the centre of gravity, and **Tagscript** sits
behind them — a real scripting layer that lets a role panel do things no settings page can express.

Free gives you reaction roles, 8 automod filters, ~24 log types, unlimited tags and 50 triggers.
Premium is **$7.99/month for one server**, rising to $12.99, $16.99 and **$24.99 for two, three and
five servers**. That per-account-with-an-allowance model is genuinely better than per-server
pricing if you run a network.

**Verdict: if you want to script the behaviour rather than configure it, this is the one. If you
want a dashboard toggle, the extra power is a cost rather than a benefit.**

## Dyno, Arcane and MEE6 — where the free caps bite

**Dyno** caps free reaction roles at **3**. That is not a role picker; it is a demo. Standard is
$4.99/month.

**Arcane** gives **10**, which is workable for a small picker and immediately short if you want
regions, pronouns and ping preferences on one server. Arcane's real product is leveling, and its
free tier there caps role rewards at 15 at one per level — see
[which Discord bots charge for leveling](/blog/which-discord-bots-charge-for-leveling).

**MEE6** charges. Reaction Roles is one of the 31 crossed rows on its own 37-row free comparison
table, and buying in gives you 40. List price is **$11.99/month, $49.99/year or $89.99 lifetime**.

That MEE6 sits 21st in Discord's own Moderation and Tools ordering while Color-Chan — a bot that
does nothing but colour roles — sits 19th is one of the more useful facts in this niche. Narrow
tools that do one role job completely get installed more than broad tools that gate it. The full
picture is in [the most popular Discord bots](/blog/most-popular-discord-bots).

## Where Vetox fits

Vetox's self-roles have **no paid tier and no panel limit**. There is no entry for them in the
platform's feature limits or gates at all, so a Starter server gets **unlimited panels**, and the
per-panel caps — **20 roles on a reaction panel, 25 on a button panel, 25 on a dropdown** — are
identical on the free tier and the $17.99 one. Those numbers are Discord's own ceilings rather than
a commercial decision.

A panel binds to an already-sent message, so the embed is yours and the picker is attached to it
rather than replacing it. All three interaction surfaces are available on every panel type, and
**DM notifications are free**, which is the thing Zira sells.

The part worth reading closely is the exclusivity model. Each panel carries one of **five
behaviours**, and two of them are the exclusive-group mechanism most bots either lack or bolt on:

| Mode              | What a click does                                                                 |
| ----------------- | --------------------------------------------------------------------------------- |
| **Toggle**        | Has the role, it is removed; does not have it, it is added                        |
| **Give**          | Adds only. Never removes — right for opt-in ping roles                            |
| **Take**          | Removes only. Never adds — right for opting _out_ of something                    |
| **Auto-Replace**  | Removes every other role on this panel, then adds the chosen one                  |
| **Strict Single** | Refuses the click with a private message if the member already holds a panel role |

Auto-Replace and Strict Single are the same idea with opposite manners. Auto-Replace lets a member
change their region freely and silently swaps the old role out. Strict Single makes the first
choice final and says so. A region picker wants the first; a team or house assignment usually wants
the second, and most bots in this comparison can express neither.

The group is the panel's own role list, which means there is no separate "exclusive group" object
to keep in sync — a panel _is_ the group.

Alongside it, on the same configuration surface: **auto-roles on join are free, unlimited and
ungated** for humans and for bots, and a `/colors` name-colour picker is free, with palette
templates, sending a colour panel and colour-on-join at Basic. That last one has an unusual
mechanic worth knowing — Vetox **discovers** colour roles rather than storing a list. Any role whose
name is purely numeric and which holds none of eight dangerous permissions counts as a colour role.
A server that already has its own numeric colour roles gets a working `/colors` picker with no
setup and no payment.

The arrival path around it is in
[the best Discord welcome bots](/blog/best-discord-welcome-bots), and the whole free tier is
compared in [the best free Discord bots](/blog/best-free-discord-bots).

## Which one to install

| If your situation is                                  | Install                                          |
| ----------------------------------------------------- | ------------------------------------------------ |
| Several pickers, some exclusive, some not             | **Vetox** — unlimited panels, five modes         |
| One big picker and the largest free allowance         | **Zira** — 100 roles, $50 lifetime               |
| You want to script the behaviour                      | **Carl-bot** — Tagscript                         |
| Colour roles specifically, and nothing else           | **Color-Chan** — a specialist that outranks MEE6 |
| A handful of roles and you already run Dyno or Arcane | Their free caps, 3 and 10, may be enough         |
| You run MEE6                                          | Reaction roles are paid there                    |

## Frequently asked questions

**What is the best free reaction role bot?**
Vetox on structure — unlimited panels, free DM confirmations and five per-panel behaviours including two forms of exclusivity. Zira's raw allowance is larger at 100 roles per server free, then it paywalls the DM that confirms one landed. Carl-bot suits scripting rather than configuring, and Dyno's free cap of 3 and Arcane's of 10 run out quickly.

**Why are my reaction roles not working?**
Almost always role hierarchy. The bot's own role has to sit **above** every role it assigns in the
server's role list, and Discord refuses the assignment silently if it does not. The second most
common cause is a deleted or foreign custom emoji on a reaction panel — bots validate that the
emoji exists in your server, and a panel bound to one that does not will fail.

**Should I use reactions, buttons or a dropdown?**
Buttons for up to 25 roles that people pick several of. A dropdown for a long list where they pick
one or two — it collapses to a single line instead of a wall. Reactions only if you need the
original look, because they clutter the message and are the easiest to trigger by accident.

**Can a bot make roles mutually exclusive?**
Some can. Vetox has two modes for it — Auto-Replace swaps the old role out silently, Strict Single
refuses the second choice — and Atlas and Carl-bot support exclusive groups. Dyno, Koya, Circle and
MEE6 do not express exclusivity per panel, so a member can hold every region at once.

**How many reaction roles can one message have?**
Discord's own limits set the ceiling: 25 options in a select menu, and 25 buttons across five rows
of five. Emoji reactions are capped at 20 by most bots. That is why the useful comparison is panels
per server rather than roles per panel — the per-panel number is largely the platform's.

**Do reaction roles work if the bot goes offline?**
No. Every one of these bots assigns the role when it sees the click, so a click during an outage
does nothing and the member sees nothing. This is a genuine argument for a bot that also DMs a
confirmation, because silence and failure look identical to the member.

## Method

Every limit above was read from the vendor's own documentation on 30 August 2026, not from another
comparison article. Where a widely repeated third-party figure conflicts with the vendor's own docs
— as with Zira's free role allowance — the vendor page is used and the discrepancy is stated.
Absence claims cover the sixteen all-in-one bots and fourteen utility bots examined, not
Discord's full catalogue.