---
title: "How to make reaction roles in Discord"
description: "Without a bot, Discord lets members pick roles only through Onboarding on a Community server. Ask Bond for a role menu or emoji reaction roles."
canonical_url: "https://www.bondbot.gg/use-cases/reaction-roles"
last_updated: "2026-10-05"
---

# How to make reaction roles in Discord

Without a bot, the only way members can pick their own roles in Discord is Onboarding, which needs a Community server. With Bond you ask for a role menu and it posts one where members pick their roles themselves, or builds the emoji-reaction version if you would rather react.

Verified 2026-09-28 on a test server, build 5330928.

## In Discord, without a bot

Discord's own self-serve roles are Onboarding questions, and Onboarding exists only on Community servers.

1. Create the roles first: **Server Settings**, **Roles**, **Create Role**. Leave every permission off. A role members give themselves should never open anything by accident.
2. If the server is not a Community server yet, open **Server Settings**, **Enable Community** and follow the steps. It asks for a verification level, the explicit media filter, a rules channel and an updates channel.
3. Open **Server Settings**, **Onboarding**. It needs at least 7 default channels, and at least 5 of them must let @everyone view them and send messages.
4. Add a question, such as "What are you into?", with one answer per role, and set each answer to give its role. Switch on **Allow multiple answers** if members may pick more than one.
5. Save and enable Onboarding. New members answer while they join, and anyone can change their picks later from **Channels & Roles** at the top of the channel list.

Without Community there is no self-serve option at all. Someone with **Manage Roles** gives every role by hand, from the member's profile or **Server Settings**, **Members**.

## With Bond, in two messages

A real run, recorded on a test server: what was asked, what Bond asked you to approve, what it did, and what members saw afterwards.

In #admin-chat:

> **You:** @Bond Post a role menu in #roles where members can pick Gaming, Music and Art.

> **Install a plugin**
> for @You
> Always allow stops asking about installing plugins · Expires in 10 minutes
>
> Buttons: Allow, Always allow, Deny. Pressed: Allow.

> **You:** @Bond Make it one role at a time, so picking a new role replaces the old one.

> **Change a plugin's settings**
> for @You
> Always allow stops asking about plugin setting changes · Expires in 10 minutes
>
> Buttons: Allow, Always allow, Deny. Pressed: Allow.

What Bond did:

- List plugins
- List channels
- List roles
- Install plugin
- Configure plugin

> **Bond:** Posted the role menu in #roles. Members can toggle Gaming, Music, and Art from the menu; selecting a role they already have removes it. The panel message ID is `100000000000000021`.

> **Bond:** Updated the role menu to **exclusive** mode: choosing Gaming, Music, or Art replaces the previously selected role. The change takes effect the next time someone uses the menu.

In #roles, afterwards:

> Pick your roles from the menu. Pick a role you already have to remove it.
>
> Menu "Choose a role": Gaming, Music, Art.

A member picked Gaming. Bond's reply, which only they see:

> Done: added **Gaming**.

A member picked Music. Bond's reply, which only they see:

> Done: removed **Gaming**, added **Music**.

Light tier · 2 messages · 37 seconds · 204K tokens

Recorded on a Bond test server on the Light tier, the tier every free plan runs on. Server, channel and member IDs are placeholders, the test bot is shown as Bond, and the steps where Bond loads its own tools or pages through a long result are left out. The test server has no plan limits, so the plan limits a step reports are left out. The Always allow line on each approval card is reworded in plain words.

The test server already had #roles and the Gaming, Music and Art roles, below Bond's own role, and Bond built the menu from them. Bond asked once, to install the plugin, and the recording pressed Allow. The first menu let members pick any mix of the three. The second message asked for one role at a time, so Bond changed that one setting after a second card, which the recording also allowed, and updated the same menu message. The menu shown is the one-at-a-time version. The test account then picked Gaming, and then Music, which took Gaming away.

## The permissions it takes

Bond checks every step against your own Discord permissions and role position before it acts, and what it reads back is only what you can already see.

### What you need

- List plugins: Nothing extra
- List channels: Nothing extra
- List roles: Nothing extra
- Install plugin: Administrator
- Configure plugin: Manage Server

Installing takes Administrator, the same bar as any automation, because an automation goes on acting as Bond long after you asked for it. Bond itself never needs Administrator.

### What Bond needs

- **Manage Roles**, because Bond gives and takes the roles.
- Its highest role above every role in the menu. Discord refuses any bot a change to a role at or above its own, whatever permissions the bot holds. Drag Bond's role up in **Server Settings**, **Roles**.
- **View Channel** and **Send Messages** in the channel the menu goes in.

Bond's invite already grants these. A channel's own permissions can still deny Bond's role, so check **Edit Channel**, **Permissions** if the menu does not appear.

## What to watch for

- One menu holds up to 25 roles, which is Discord's limit for a single menu.
- In one-at-a-time mode, picking a new role replaces the old one, and picking the role you already hold removes it.
- The reply after a pick is only visible to the member who picked.
- If you delete one of the menu's roles, ask Bond to update the menu so the role drops out of it.
- The role menu plugin does not use any of your automation slots. A server without a plan can have 5 plugins installed.

## Questions people ask

### Should I use a role menu, emoji reactions or Onboarding?

Onboarding is built into Discord and asks new members while they join, but it needs a Community server and some setup in Server Settings. A menu is one message that anyone can use at any time, and it shows the real role names. Emoji reactions are the classic look: ask Bond for the emoji version and it writes a small automation that gives the role when someone reacts. Creating that automation needs Administrator.

### Can members hold only one of the roles, like a color role?

Yes. Ask for one role at a time, as in the second message above, and picking a new role replaces the old one. You can also allow several and cap how many of the menu's roles one member can hold.

### Why did a member not get the role?

Almost always because the role sits above Bond's highest role, which Discord does not let any bot manage. The reply the member sees says so. Move Bond's role above it in Server Settings, Roles.

### How do I change or remove the menu?

Ask Bond, for example to add a role or change the text above the menu, and it edits the same message instead of posting a new one. Changing the settings needs Manage Server. Removing the plugin needs Administrator, and Bond shows you what it removes before it does.

### Is it free?

Yes. Every tool works on the free plan. Setting this up uses tokens from your weekly allowance, and the run above shows how many; a free account gets 600K tokens a week. Picks from the menu use none.

## Read next

- [How to auto assign roles in Discord](https://www.bondbot.gg/use-cases/auto-assign-roles-on-join): Give every new member a role when they join, after Rules Screening if you use it, with a greeting in the channel you choose.
- [How to give a role to everyone in Discord](https://www.bondbot.gg/use-cases/mass-assign-roles): Give a role to a whole group, or strip one back out, instead of opening the member list and doing it one person at a time.
- [How to make a welcome message in Discord](https://www.bondbot.gg/use-cases/welcome-messages): Greet new members by name in the channel you choose, with a welcome card and the wording you want. You describe it once, in plain English.
- [Discord permissions: role hierarchy and overwrites](https://www.bondbot.gg/blog/discord-permissions-explained-role-hierarchy-and-overwrites): Why your bot can't assign that role, how channel overwrites beat server permissions, and how to debug it in five minutes.
