Skip to content

Role Management

TL;DR

Have your bot assign, remove, and manage roles automatically.

Role hierarchy and permissions affect what your bot can change.

Let your bot assign, remove, and manage roles for your Discord server members.

What Your Bot Can Do

  • Auto-assign roles when members join
  • Reaction roles — click to get a role
  • Self-assignable roles — use a command to pick roles
  • Timed roles — temporary or earned roles
  • Level-based roles — roles for active members

Auto-Assign Roles

Give roles automatically when someone joins:

Simple Join Role

“Give new members the ‘Member’ role when they join”

Multiple Roles

“When someone joins, give them ‘Member’ and ‘New User’ roles”

Conditional Roles

“Give ‘Verified’ role only after they react to the rules message”


Reaction Roles

Let users pick roles by clicking reactions:

Basic Reaction Roles

“In #pick-roles, create a message where users can react to get roles:

  • 🎮 = Gamer role
  • 🎨 = Artist role
  • 🎵 = Music role”

Color Roles

“Let users pick a color by reacting:

  • 🔴 = Red
  • 🔵 = Blue
  • 🟢 = Green
  • 🟡 = Yellow”

Opt-In Channels

“Users react to get access to optional channels:

  • 📢 = Announcements ping
  • 🎮 = Gaming chat access
  • 📸 = Selfie channel access”

Self-Assign Commands

Let users give themselves roles with commands:

Role Menu

“/roles — Shows a list of available roles users can pick”

Direct Assignment

“/role [rolename] — Assigns or removes the specified role”

With Categories

“/color red — Gives red color role (removes other colors first)“


Removing Roles

Toggle Behavior

“If a user already has the role, clicking the reaction removes it”

Exclusive Roles

“When picking a color role, remove any other color roles first”

Timed Removal

“Remove ‘Event Access’ role after 24 hours”


Level-Based Roles

Reward active members:

Activity Roles

“Track user messages. Award roles at milestones:

  • 100 messages = ‘Regular’ role
  • 500 messages = ‘Active’ role
  • 1000 messages = ‘Veteran’ role”

Time-Based Roles

“Give ‘Established’ role to members who’ve been here 30 days”


Role Permissions

Who Can Manage

“Only users with ‘Admin’ role can use /giverole and /removerole”

Self-Service Restrictions

“Users can self-assign roles from the ‘Self-Assign’ category but not ‘Staff’ roles”

Protected Roles

“Never let the bot remove or modify ‘Admin’ or ‘Moderator’ roles”


Setting Up Reaction Roles Step by Step

  1. Create roles in Discord — Make the roles you want to offer
  2. Order matters — Put your bot’s role above the roles it will assign
  3. Create a #roles channel — Where the reaction message will live
  4. Describe to your bot — Tell it what reactions = what roles
  5. Test it — Click reactions yourself to verify it works

Example: Full Role Setup

“Role management bot:

Auto-assign:

  • Give ‘Member’ role on join

Reaction roles in #pick-your-roles:

  • Message 1: Color roles (🔴🔵🟢🟡) — exclusive, can only have one
  • Message 2: Interest roles (🎮 Gamer, 🎨 Artist, 🎵 Music) — can have multiple
  • Message 3: Ping roles (📢 Announcements, 🎉 Events, 🎁 Giveaways)

Commands:

  • /roles — Shows all available self-assign roles
  • /myroles — Shows roles you currently have

Staff only:

  • /giverole @user [role] — Assign any role
  • /removerole @user [role] — Remove any role”

Troubleshooting

Bot can’t assign roles

Make sure the bot’s role is above the role it’s trying to assign in your server settings.

Reactions not working

Check that the bot has permission to read messages and add reactions in the channel.

Role disappeared

Someone may have deleted the role in Discord. Recreate it and update your bot.


Need More Help?

References