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.

  • 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

Give roles automatically when someone joins:

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

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

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


Let users pick roles by clicking reactions:

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

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

“Let users pick a color by reacting:

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

“Users react to get access to optional channels:

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

Let users give themselves roles with commands:

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

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

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


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

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

“Remove ‘Event Access’ role after 24 hours”


Reward active members:

“Track user messages. Award roles at milestones:

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

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


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

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

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


  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

“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”

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

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

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


References