Reaction Roles

One message your members click on — and they get the matching role.

Reaction roles take the ever-repeating work off your hands: nobody has to ask the team any more whether they can have the Rust-Spieler role. You post one message, and from then on people fetch their roles themselves.

The module is built exactly like the Embed-Builder — the same message, the same buttons, the same order. Anyone who knows one can use the other straight away.

Two ways to the same panel

There is the role editor in the dashboard and the builder in Discord. Both write to the same list: what you create in Discord you can keep editing in the dashboard, and the other way round. The name is the key.

In the dashboard everything sits on one page — roles, emojis, labels — with the preview next to it. That is the more comfortable way, above all for the emojis: a Discord dialog holds four fields, and your computer's emoji picker does not open on top of one. In the dashboard twenty of them are there to click.

You find it under Dashboard → Reaction Roles → Open role panels, or in the sidebar next to the module.

In Discord it is quicker when you happen to be there anyway:

In four steps

/rollen erstellen name:farbrollen

The builder opens. Only you can see it.

  1. Nachricht (message) — title, text, colour, image. This is the message that later sits in the channel.
  2. Rolle hinzufügen (add role) — pick the role from the list first, then confirm the label. It is already filled in: the name of the role. You can add an emoji, but you do not have to — it is only required in the Reaktion type, because that is the thing people click there. Repeat until all roles are in.
  3. Art (type) — how people are meant to click (see below).
  4. Senden (send) — pick the channel, done. In reaction mode the bot puts the emojis under the message itself.

The three types

Type How it looks When
Reaktion (reaction) emojis under the message The classic. Looks tidy, works everywhere.
Knöpfe (buttons) one button per role When members are not allowed to add reactions in that channel.
Auswahlliste (select list) a drop-down menu From about eight roles upwards — otherwise the message turns into a wall of emojis.

The type can be changed at any time. With /rollen bearbeiten name:farbrollen you change the panel and send the change straight into the existing message with Aktualisieren (update) — no second one is created.

The role list in the message

By default the bot writes the roles into the message itself — below your text, above the buttons:

🔫 @Assault — Kämpft in der Zone und hält Boden
🩹 @Medic — Verbinden, wiederbeleben, rausziehen
🔭 @Recon — Aufklärung, Markieren, weite Distanz

Ein Klick gibt dir die Rolle, ein zweiter nimmt sie wieder weg.

Three things about this are deliberate:

The role appears as a mention, not as a word. That way it shows up in its own colour — you recognise it again when it turns up next to a name later on.

The explanatory text is the one you entered when creating the role. Without it, only the emoji and the role are there, and that is fine: "@Medic — Medic" reads like a mistake.

The last sentence follows your settings. With reactions it says something different than with buttons, and with "nur eine Rolle gleichzeitig" (only one role at a time) something different again. A fixed sentence would be wrong in half of the cases.

You can switch the list off with Rollenliste: an/aus (role list: on/off) in the builder — for instance if you would rather write it into your own text.

Two switches that make a lot of difference

Nur eine Rolle gleichzeitig. Whoever picks red loses blue. Exactly right for colour roles, team assignment or "which server do you play on". Without the switch, everyone can have everything at the same time.

Rolle wieder abnehmbar (role can be taken off again). On by default: clicking again removes the role. Off makes sense for things you only get once — for example a role that unlocks access to an area after someone has confirmed the rules.

Safety

A reaction-roles module that hands out admin permissions by accident is the most expensive mistake a Discord bot can make. That is why Fishbot checks again on every click:

  • The role must sit below the bot role. Discord forbids anything else, and the bot tells you that when you create the panel, not only when it jams.
  • Roles you have entered as gesperrt (locked) under /rollen setup are never granted by the bot — even if they end up in a panel by accident.
  • Roles belonging to an integration (bots, Twitch subscriptions, server boosters) are excluded. Technically nobody can grant those.

Enter everything that gives real permissions under Gesperrte Rollen (locked roles). It costs you a minute and is the cheapest insurance in this whole bot.

In the Protokoll (log) channel you also see every assignment with name and time — handy when someone wonders how they came by a role.

Using server emojis

Your own server emojis work exactly like normal ones. You only need their long notation: type a backslash in front of the emoji in chat (\:rust:) and send the message — Discord then shows <:rust:123456789012345678>. You copy that into the emoji field.

If the emoji is renamed on the server later, the panel keeps working. The bot remembers the ID, not the name.

What you should know

A deleted panel does not delete the message. /rollen loeschen only removes the mapping. The message stays in the channel and its buttons do nothing from then on — so delete it by hand afterwards.

More than 20 roles per panel is not possible. That is Discord's limit for reactions, and with us it applies to all three types, so that you can switch the type without losing entries. If you need more, create a second panel.

If the module is switched off, the messages stay. They only stop granting roles. Roles already granted stay with the members.

Commands

Command What it does
/rollen setup basic settings, locked roles, log
/rollen erstellen build a new panel
/rollen bearbeiten change an existing panel and update it
/rollen senden put a saved panel into a channel (again)
/rollen liste all panels on the server
/rollen loeschen delete a panel (the message stays)

When nothing happens

Usually it is the role hierarchy. /check tells you in one sentence what the matter is — the self-test checks the bot permissions, the position of the bot role and whether channels or roles have disappeared.

Second most common reason: the bot lacks the Reaktionen hinzufügen (add reactions) permission in the channel. Then the message is there, but without emojis underneath.

Last updated: 13 October 2026