Repository navigation
Role Menus
Self-service roles. Admins post a role menu, and members pick their own roles from it: pronouns, game pings, colour roles, access to optional channels.
- The menu is a message with a Select your roles button.
- A member presses it. Only they see a dropdown of the menu's roles, already ticked for the roles they have.
- They tick or untick roles. The bot adds newly ticked ones and removes unticked ones, then refreshes their dropdown to show the result.
Details:
- A menu only manages its own roles. Roles that aren't on it are never touched.
- Up to 25 roles per menu. That's Discord's limit for a dropdown. Make more menus for more roles.
- Each role shows its current name, so renaming a role updates every menu at once. An optional descriptor adds a second line of text under it.
- If one role can't be given, for example because it sits above the bot's, the others in the same pick still are.
Put the bot's role above every role you'll offer, in Server Settings → Roles. The bot checks this when you add each role, and refuses with the fix.
Create a menu with its first role:
/roles dropdown create channel:#roles role:@Gamer descriptor:Pings for game nights
| Option | Effect |
|---|---|
channel |
Where to post it |
role |
The first role to offer |
title |
The menu's heading. Default: Pick your roles |
description |
Text under the heading |
descriptor |
The second line shown under this role in the dropdown |
message_id |
Turn an existing message the bot posted into a menu, instead of posting a new one |
apply_channel_defaults |
Also lock the channel down. See below |
Add more roles, one per command:
/roles dropdown add-role message:<pick> role:@Artist descriptor:Art channel access
message suggests your menus as you type.
Remove a role from a menu:
/roles dropdown remove-role message:<pick> role:@Artist
Members who already picked that role keep it. Removing it only stops it being offered.
See your menus:
/roles list
This lists every menu in the server, how many roles it has, and a link to it.
/roles apply-channel-defaults channel:#roles
This makes a channel suitable for role menus:
- Only the member role can see it. If no member role is set (see Server-Roles), everyone can.
- Nobody but admins and the bot can post in it.
Administrators can always post, since Discord lets them ignore channel permissions. Mod roles aren't given posting rights here.
| What happens | Fix |
|---|---|
| "My highest role isn't above @Role" | Drag PariahBot above that role in Server Settings → Roles |
| A role doesn't get added, but others do | That role is above the bot's. Same fix |
| "This menu doesn't have any roles configured yet" | Add one with /roles dropdown add-role
|
| "This role menu no longer exists" | The menu was removed. Post a new one |
| "I can only attach a role dropdown to a message I posted myself" |
message_id has to be a message from the bot. Leave it out to post a new menu |
Permissions needed: Manage Roles, and Read Message History to update the menu message later. See Permissions.