YAGPDB Mutually Exclusive Roles and Reaction Roles Setup 2026
YAGPDB (Yet Another General Purpose Discord Bot) has a role menu system that lets users self-assign roles through reactions or buttons. Set role groups to mutually exclusive so users pick only one from a category.
What Are Mutually Exclusive Roles?
Mutually exclusive roles mean a user picks one role from a group and YAGPDB automatically removes any other role from that same group. Common uses:
- Color roles (pick one color, the previous one gets removed)
- Region roles (EU, NA, Asia: pick one)
- Notification tiers (Daily, Weekly, None)
Setup Steps
Step 1: Invite YAGPDB
Go to yagpdb.xyz and click "Add to Server." Open the control panel at yagpdb.xyz/manage.
Step 2: Create roles in Discord
Server Settings > Roles. Create the roles you want users to pick from. Make sure YAGPDB's role is positioned above them in the hierarchy.
Step 3: Configure role groups
In the YAGPDB control panel:
- Go to Role Commands in the sidebar
- Click Create Role Group
- Name it (example: "Color Roles")
- Set Mode to Single for mutually exclusive
- Add each role to the group
The Single mode is what enforces mutual exclusivity. When a user picks "Blue", YAGPDB removes "Red" or "Green" if they had one.
Mode options:
- Single: One role at a time (mutually exclusive)
- Multiple: Users pick as many as they want
- None: Disables the group
Step 4: Create a role menu message
Type -rolemenu create (group-name) in the target channel. YAGPDB posts a message with reactions for each role.
For a custom design: create an embed with -customembed, then run -rolemenu create (group-name) -m (message-id).
Step 5: Test
React with a second account. Verify the role is assigned, and that picking a different option removes the first role.
Troubleshooting
Bot does not assign roles:
- Check YAGPDB's role is above target roles in the role hierarchy
- Verify the bot has "Manage Roles" permission
- Confirm the role group mode is set to "Single" or "Multiple"
Roles not mutually exclusive:
- Confirm the mode is set to "Single" in the role group settings
- All exclusive roles must be in the same group
Hosting a Custom Bot 24/7
YAGPDB is hosted externally. For a fully custom bot with similar features and complete control, host on a VPS. Space-Node VPS plans start at 3.50 EUR/month with SSD storage and 99.9% uptime.
What reaction roles in YAGPDB actually look like in 2026
YAGPDB still ships a reaction roles system, but Discord deprecated message reaction events for new bots in favor of components. YAGPDB now supports both:
| Mode | UX | Pros | Cons |
|---|---|---|---|
| Reactions (legacy) | click an emoji | simple to set up | deprecated, may break long-term |
| Buttons (recommended) | click a button | future-proof, accessible | requires component setup |
| Select menu | dropdown | clean for many roles | one click extra |
For a new server in 2026, use buttons. Reactions are still functional but on borrowed time.
Setting up button-based role menu
In YAGPDB control panel: Tools & Utilities > Role Commands > New Role Group.
Create the group, e.g. "Pronouns". Then Add Role Command for each role:
| Field | Example |
|---|---|
| Name | He/Him |
| Role | @He/Him (must exist) |
| Group | Pronouns |
| Require Roles | empty |
| Ignore Roles | empty |
Common setup mistakes
| Mistake | Effect | Fix |
|---|---|---|
| YAGPDB role above target role | "I cannot assign that role" error | move YAGPDB role above target in role list |
| Manage Roles permission missing | nothing happens on click | grant Manage Roles to YAGPDB |
| Self-assignable roles also have other perms | users get unintended powers | strip non-cosmetic perms from those roles |
| Group set to "Single" with too many | only one role per group; user confused | use "Multiple" if intended |
Verify with the audit log
After setup, click your own button. Discord audit log should show "YAGPDB.xyz added role X". If it doesn't, the bot doesn't have the permission or the role hierarchy is wrong.
