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
- Create roles in Discord — Make the roles you want to offer
- Order matters — Put your bot’s role above the roles it will assign
- Create a #roles channel — Where the reaction message will live
- Describe to your bot — Tell it what reactions = what roles
- 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.