Publish a button or select menu that lets members add, remove or toggle approved Discord roles while respecting the bot's role hierarchy.
How to create self-assignable roles with GuildPilot
Self-role controls let members manage approved Discord roles without staff intervention. GuildPilot supports role buttons and select menus in Embeds and Smart Panels, with add, remove and toggle behavior.
Before you start
- Create the member roles in Server Settings → Roles.
- GuildPilot needs Manage Roles.
- Move the active GuildPilot bot role above every role it must assign.
- Do not select managed integration roles; Discord does not allow bots to assign them.
Warning: Do not expose staff, administrator or permission-sensitive roles through a self-role control. GuildPilot enforces Discord hierarchy, but you decide which assignable roles appear.
Create self-assignable roles
1. Prepare the role hierarchy
In Discord, open Server Settings → Roles. Drag the active GuildPilot role above the member roles you will offer and save the Discord order.
2. Open an Embed or Smart Panel
In GuildPilot, create or edit an Embed or Smart Panel. Choose the destination channel where members should find the role control.
3. Add a self-role action
For an Embed, select Add button, then choose Self role. For a Smart Panel, add a Button or Select menu and choose the self-role action.
4. Choose the role behavior
Select the role and choose Add role, Remove role or Toggle role. Toggle adds the role when absent and removes it when already assigned. Give the control a label that names the outcome.
5. Publish and verify
Publish the message, then open it in Discord with a normal member account.
Recommended configuration
Use Toggle role for opt-in interests and notification roles. Use separate add or remove controls only when the action must be explicit. Group related roles in a select menu when a row of buttons would be difficult to scan.
Test the setup
- Use a normal member account below the GuildPilot role.
- Select the role control once and confirm that Discord assigns the expected role.
- For a toggle action, select it again and confirm that the role is removed.
- Remove any remaining test role from the account.
What a successful setup looks like
The member receives the selected role immediately, and the action affects only the server where the panel was published. No moderator command is required.
Common problems
GuildPilot cannot assign the role
Cause: The bot lacks Manage Roles or its highest role is below the target role.
Fix: Open Server Settings → Roles and move the active GuildPilot role above every offered role.
No assignable roles appear
Cause: Discord returned no ordinary roles below the bot, or the cached role list is stale.
Fix: Create an ordinary role, correct the hierarchy, then use Settings → Refresh Discord data and reopen the builder.
The control assigns the wrong outcome
Cause: The saved action is Add role, Remove role or Toggle role rather than the behavior you expected.
Fix: Reopen the saved message, change Role action, and republish it.
