Skip to content
How to Self-Assign Roles in Discord Using ProBot

How to Self-Assign Roles in Discord Using ProBot

Reaction-role bots are the classic way to let members pick their own roles, and ProBot’s take on it uses buttons instead of emoji reactions: you post one message, attach a button per role, and members click to give themselves a role and click again to drop it. The recording builds the whole thing in the demo server “Delftstack tutorial”: four plain roles (role 1–role 4) already exist, ProBot gets added, an embed goes to #general, and the last shot shows the role badges landing on the test profile.

✅ Tested on
  • SystemWindows (browser)
  • AppDiscord web app + ProBot dashboard
  • Also works onAny Discord server where you can manage roles
  • Last verifiedOctober 28, 2026

Every screenshot below is taken from the actual recording on this device — no stock images.

Before you start

  • You need the Manage Roles permission on the server — without it you cannot create roles or authorize the bot.
  • Create the roles before opening ProBot; the dashboard can only hand out roles that already exist.
  • Role order matters: a bot can only assign roles that sit below its own role in Server Settings → Roles. Step 4 is the one everyone forgets.

Steps

Create the roles first

In Server Settings → Roles, create every role members should be able to pick. The demo server keeps it simple: role 1, role 2, role 3 and role 4.

Create the roles first

Find ProBot in the App Directory

Still in Server Settings, open App Directory and search probot.

Find ProBot in the App Directory

Authorize ProBot for your server

On ProBot’s page, add it to your server: choose the server in the Add to server dropdown (here: Delftstack tutorial) and click Continue, then approve the permissions.

Authorize ProBot for your server

Move the ProBot role above your roles

Back in Server Settings → Roles, drag the new ProBot role above the roles it must hand out (here: above role 1). If ProBot’s role stays below yours, assigning will silently fail.

Move the ProBot role above your roles

Create the embed in ProBot

Open the ProBot dashboard for your server → Embed Messages and create the message members will see. The recording names it self assign and writes a short “choose a role” text as an embed.

Create the embed in ProBot

Send the embed to a channel

Click Send New Message, choose the channel (#general) and press SEND NEW MESSAGE. The embed now exists as a real message in your server.

Send the embed to a channel

Select that message in Self-Assignable Roles

In the dashboard, open Self-Assignable Roles and, under Choose a message, select the message you just sent — it is listed by channel and timestamp (#general - 2026-01-04 12:46:37 AM in the recording).

Select that message in Self-Assignable Roles

Add one button per role

Set the type to Button. For each role: add a button, pick its colour, bind the role, and label the button with the role’s name (the recording works through role 1 to role 4 the same way).

Add one button per role

Set Role Mode to Toggle and save

Under Role Mode choose Toggle — one click assigns the role, the next click removes it — then click Save Changes.

Set Role Mode to Toggle and save

Test the buttons in Discord

Back in Discord, click a role button under the ProBot message. Your profile pop-out immediately shows the roles you picked (role 1 and role 2 here) — the setup works end to end.

Test the buttons in Discord

If the buttons do nothing

  1. Re-check step 4 — ProBot’s own role must sit above every role it assigns; this is the cause in most failed setups.
  2. Make sure you saved in the dashboard: the “Careful — you have unsaved changes!” bar means your edits are not live yet.
  3. Roles with administrator or other elevated permissions cannot be handed out by the bot for security reasons — self-assign cosmetic and opt-in roles only.

More on Discord