How to make a Discord reaction role bot

A reaction role bot lets members choose their own roles: their pronouns, the games they play, which pings they want. The reaction roles template posts a role picker panel, and pressing a button or picking from the menu hands out the role. It runs on buttons, so it is free. If you want classic emoji reactions instead, that works too, on a bot that stays connected.

5 stepsNo codeUses the Role picker templateUpdated

Steps

  1. Make the roles

    In your server settings, create the roles members can pick, such as Announcements or Minecraft.

  2. Start from the reaction roles template

    Open the reaction roles template in Buildcord. It makes a bot with the panel, its buttons and the flows that give each role already drawn.

  3. Put your roles on the panel

    Rename the buttons on the Components page, and set the role each one gives in its flow's Add role step. A select menu fits better when there are many roles to choose from.

  4. Put the bot's role above the ones it gives

    Discord only lets a bot give roles below its own. In your server settings, drag the bot's role above every role on the panel.

  5. Deploy and post the panel

    Paste your Discord token, add the bot with its invite link and deploy. Post the panel in your roles channel and press a button from a test account.

Good to know

  • Buttons and menus run on the Free plan. Discord sends each press to the bot, so nothing has to stay connected.
  • For emoji reactions, draw an Event flow on Reaction added, check {reaction.emoji} with a Switch, and add the matching role. Reactions are server events, so this needs Buildcord Boost, the $8-a-month plan.
  • A Role check before the Add role step lets a second press take the role away instead.
  • To give every new member a role without asking, see how to give roles automatically.

Questions

Are buttons better than emoji reactions for roles?

Buttons are clearer for new members, can reply privately to say what changed, and run free. Reactions look the way older servers are used to, but need a bot that stays connected to Discord.

Why didn't the bot give the role?

Almost always the bot's role sits below the role it is trying to give. Move the bot's role higher in your server's role list.

Can members only pick one role from a group?

Yes. Before adding the new role, add Remove role steps for the others in the group, so picking one swaps it for the last.

More guides

Draw the first flow.

A command, a reply and a deploy is a working bot. It takes a few minutes.

Start buildingOpen dashboard