Skip to content

Self-Assign Roles

Pixl supports two methods for self-assignable roles: Reaction Roles and Button Roles.

Button roles use Discord buttons for a cleaner, more reliable experience.

  1. Create the menu:

    /buttonrole create channel:#roles title:"Pick Your Roles" description:"Click a button to toggle a role"
  2. Add buttons:

    /buttonrole add message_id:123456789 label:"Announcements" role:@Announcements style:primary
    /buttonrole add message_id:123456789 label:"Events" role:@Events style:success emoji:🎉
  3. Members click buttons to toggle roles.

StyleColorUse Case
primaryBlueDefault choice
secondaryGrayLess prominent
successGreenPositive actions
dangerRedWarnings, removals
/buttonrole list # List all menus
/buttonrole remove <message_id> <label> # Remove a button
/buttonrole delete <message_id> # Delete entire menu

Reaction roles use emoji reactions on existing messages.

/reactionrole add message_id:123456789 emoji:🔔 role:@Notifications

The bot will:

  1. Add the reaction to the message
  2. Watch for users reacting
  3. Assign/remove roles based on reactions
/reactionrole list # List all reaction roles
/reactionrole list message_id:123456789 # List for specific message
/reactionrole remove message_id:123456789 emoji:🔔 # Remove a reaction role

Both button and reaction roles support different behaviors:

TypeBehavior
normalToggle on/off (default)
uniqueOnly one role from a group
verifyOne-time add, cannot remove
dropOne-time remove, cannot add

Use unique roles when users should only have one option from a set (e.g., color roles):

/buttonrole add message_id:123 label:"Red" role:@Red type:unique group:colors
/buttonrole add message_id:123 label:"Blue" role:@Blue type:unique group:colors
/buttonrole add message_id:123 label:"Green" role:@Green type:unique group:colors

When a user picks “Blue”, their “Red” role is automatically removed.

Use verify roles for one-time verification:

/buttonrole add message_id:123 label:"I agree to the rules" role:@Verified type:verify

Once clicked, the user gets the role and cannot remove it themselves.


  1. Use buttons for new setups - They’re more reliable and look cleaner
  2. Group related roles - Use the group option for mutually exclusive choices
  3. Check role hierarchy - Bot’s role must be above roles it assigns
  4. Avoid managed roles - Bot/integration roles cannot be assigned
  5. Limit options - Max 25 buttons per menu (5 rows × 5 buttons)

The bot’s highest role must be above the role you’re trying to assign. Go to Server Settings > Roles and drag the Pixl role higher.

  1. Check if the bot has Add Reactions permission
  2. Verify the emoji is valid (server emojis must be from your server)
  3. Run /reactionrole list to confirm the configuration exists
  1. Check if the menu still exists: /buttonrole list
  2. Verify the bot has Send Messages permission in the channel
  3. Ensure the role still exists and isn’t managed