Reaction Roles
A comprehensive guide to setting up and configuring reaction role panels in DrakoBot.
Overview
Reaction roles allow members to self-assign roles by clicking buttons, selecting from dropdowns, or reacting with emojis. DrakoBot supports three panel types with advanced features like role limits, conditions, and auto-granting.
Configuration Location
Edit the reaction roles in: config/modules/roles.yml
All panels go under the ReactionRoles: section.
Panel Types
BUTTON
Interactive buttons below the message
2-5 roles, clean look
SELECT
Dropdown menu
5+ roles, saves space
REACT
Traditional emoji reactions
Simple setups, legacy style
Basic Setup
Minimal Configuration
Required Fields:
type- Panel type (BUTTON, SELECT, or REACT)ChannelID- Where to post the panel (supports arrays for multi-guild)Reactions- Array of role configurations
Per-Reaction Fields:
Name- Display name for the roleEmoji- Emoji to showRoleID- Role ID to assign (supports arrays for multi-guild)RemoveRoles- Roles to remove when this is selected (optional)
Button Styles: Primary (blue), Success (green), Danger (red), Secondary (gray)
Advanced Features
Panel-Level Options
Options:
MaxSelections- Limit how many roles can be selected from this panelRequiredRoles- Member must have ALL these roles to use the panelresetReacts- Remove user's reaction after clicking (REACT type only)UseComponentsV2- Enable modern Discord UI components
Per-Role Advanced Options
RemoveRoles- Automatically removes these roles when selected (e.g., remove "Blue" when selecting "Red")GrantRoles- Automatically grants additional roles (e.g., give "Has Color Role" category separator)
Conditions:
RequiredRoles- Must have ALL of these to select this roleExcludedRoles- Cannot select if member has ANY of theseForbiddenRoles- Can only select if member has NONE of these
Quick Examples
ComponentsV2 (Modern UI)
ComponentsV2 provides a modern Discord UI experience with rich formatting and media support.
Basic ComponentsV2 Example
ComponentsV2 Structure:
Type: "container"- Main containerAccentColor- Hex color for the accent barType: "section"- Content sectionText.Content- Markdown-formatted contentAccessory.Type: "thumbnail"- Optional thumbnail image
Multi-Guild Support
All ID fields support arrays for multi-guild setups:
The bot will match the channel ID's index with the role ID's index (first channel uses first role, second channel uses second role).
How to Deploy Panels
Edit
config/modules/roles.ymlAdd or modify panels under
ReactionRoles:Restart the bot completely
Panels will automatically appear in their configured channels
Note: Any time you edit a panel configuration, you must restart the bot for changes to take effect.
Troubleshooting
โ Buttons/Reactions Not Working
Check:
ReactionRoles.Enabled: trueis setBot has
Manage RolespermissionBot's highest role is above all roles being assigned
Member meets panel's
RequiredRoles(if set)Member meets reaction's
Conditions(if set)
โ Panel Not Appearing
Solutions:
Verify
ChannelIDis correct (right-click channel โ Copy ID)Ensure Developer Mode is enabled in Discord settings
Restart the bot completely
Check bot has
Send MessagesandEmbed Linkspermissions in channel
โ Roles Not Being Assigned
Check:
Replace all
ROLE_IDplaceholders with actual role IDsBot's role is higher in the role hierarchy than assigned roles
Bot has
Manage RolespermissionRoles aren't marked as "managed" (bot roles, booster roles can't be assigned)
โ "Max Selections Reached" Error
Solution:
Remove some roles first, then add new ones
Or increase
MaxSelectionsvalue
โ "Missing Required Roles" Error
Check:
Member has all roles listed in panel's
RequiredRolesMember has all roles listed in reaction's
Conditions.RequiredRoles
โ "Excluded By Role" Error
Solution:
Member has a role in
ExcludedRolesorForbiddenRolesRemove the conflicting role first
โ Multiple Panels Interfering
Solution:
Each panel must have a unique name (e.g.,
Panel1,Panel2, not both namedRoles)Use descriptive names like
ColorRoles,NotificationRoles,GamingRoles
โ Panel Posted in Wrong Channel
Solutions:
Double-check
ChannelIDvalueFor multi-guild: ensure channel IDs are in correct order matching role IDs
Delete old panel messages manually if needed
Best Practices
Use descriptive panel names (
ColorRolesnotPanel1)Set
MaxSelectionsfor exclusive role categoriesUse
RemoveRolesto prevent conflicting role combinationsAdd
RequiredRolesto panels for verified members onlyUse ComponentsV2 for modern, polished appearance
Use appropriate button styles (Primary/Success/Danger/Secondary)
Getting Role & Channel IDs
Enable Developer Mode in Discord:
User Settings โ App Settings โ Advanced โ Developer Mode: ON
Get Role ID:
Server Settings โ Roles โ Right-click role โ Copy ID
Get Channel ID:
Right-click channel โ Copy ID
Last updated