How to let members pick their own roles without giving them Manage Roles
Members can choose a game, interest or notification role without being allowed to edit your server’s roles. Build Discord Bots offers command-based self-roles in Role Management and emoji or button panels in Reaction Roles. Role Management also lets selected trusted helpers assign approved roles to other members with !assignrole and !unassignrole. Both modules require Pro. Choose the route that fits who should make the choice: the member or a trusted helper.
Start freeStart free. Free includes 1 bot and the Free modules; Pro is $9.99/month and adds more bots, every module and custom modules.
Before you start
- Have an online bot in a test server, with Role Management or Reaction Roles enabled on Pro. Use a staff account with Manage Roles for Discord setup commands.
- Create an ordinary role such as Game Night without moderation permissions. Give the bot Manage Roles and place its highest role above every role it will assign. Keep integration-managed roles and @everyone out of your choices.
- Use a test member with no Manage Roles permission. Let that member view and use the command or panel channel, and let the bot read and reply there. Replace ! in the examples if your bot uses another prefix.
Set up command-based self-roles in Role Management
Enable Role Management in your bot’s Modules tab. Open Settings, select the intended server, and add Game Night to Self-Assignable Roles. Keep Allow Self Assign and Allow Self Remove enabled if members should be able to opt in and out. Save the server settings. Excluded Roles are removed from the self-assignable list, so do not also exclude a role you intend members to choose.
You can configure the list in Discord instead: from an account with Manage Roles, run `!selfrole add @Game Night`, selecting the actual Discord role mention. `!selfrole list` shows the configured choices; `!selfrole remove @Game Night` removes a choice from the list. Removing a choice is a configuration change, not a request to strip that role from everyone who already holds it.
Let members use !selfroles, !iam and !iamnot
The test member runs `!selfroles` to see available roles, then `!iam @Game Night` to add the chosen role to themselves. `!iamnot @Game Night` removes it from themselves when self-removal is enabled. These member commands have no Manage Roles requirement. They operate only on the caller and accept a role mention, role ID or role name; mentions avoid selecting the wrong similarly named role.
Only a configured self-assignable role is accepted, and it must still be editable by the bot. The default maximum is five configured self-roles per member. Max Self Roles Per Member can be set from 1 to 25; that is a module setting, not a Free versus Pro quota. Check the member’s actual roles after each command, then try an unlisted ordinary role and confirm it is refused.
Offer an emoji or button panel with Reaction Roles
For a visual choice, enable Reaction Roles and run `!reactionrole` (alias `!rr`) as a staff member with Manage Roles. Follow the interactive setup to choose a channel, panel text, roles and emojis, then publish. The setup role picker excludes @everyone and integration-managed roles and shows roles below the bot’s highest role. Members use the published choices without needing Manage Roles.
Adding a mapped emoji reaction grants its role. Removing that reaction removes the role only when Allow Role Removal is enabled. The module also handles role buttons: clicking a button grants a missing role or removes an existing one when removal is allowed. Test the panel as an ordinary member rather than testing only as an administrator. If using quick setup on an existing message, the exact syntax is `!rradd <#channel> <messageId> <emoji> <@role>`; this staff command also requires Manage Roles.
Let trusted helpers assign approved roles to other members
This is a separate Role Management workflow for helpers who need to give someone else a role. In the selected server’s Settings, find Trusted Role Assignment. Fill Trusted Operator Roles with the existing role held by your helpers, and Approved Assignable Roles with only the roles they may grant or remove. Both lists start empty, so delegated assignment stays off until both are configured. Save before testing.
A helper who holds a selected operator role can run `!assignrole @Alex @Game Night` and `!unassignrole @Alex @Game Night`, using actual member and role mentions. Manage Roles is not required for these two commands. The selected role must be on the approved list, editable by the bot, and strictly below both the bot’s highest role and the helper’s highest role. Equal positions are refused. Manage Roles or Administrator alone does not bypass the selected operator-role requirement.
Trusted assignment rejects @everyone, integration-managed roles, and roles carrying Administrator, Manage Server, Manage Roles, Ban Members, Kick Members or Manage Channels. These checks apply to removal too. Do not confuse this delegation with `!giverole` and `!removerole`, which require Manage Roles. With a Role Log Channel configured, trusted assignments and removals send a log there; check it during your controlled test.
Check plan access and a failed assignment
Role Management and Reaction Roles are Pro modules, not Free features. Pro is $9.99/month by upgrading, or comes from a beta code our team issues. The public Free allowance is 1 bot and 10 custom commands; Pro provides 3 bots and 200 custom commands. These are account limits; the five-role default is configured separately in Role Management settings. Use Pricing below to compare the plans.
When a choice fails, check module access, the selected server’s saved list, the bot’s Manage Roles permission and role order. For trusted commands, also check the helper’s operator role, approved list and hierarchy. For self-removal or panel removal, inspect the relevant removal switch. Never solve an ordinary member’s failed opt-in by giving that member Manage Roles; fix the bot permissions or approved choices instead.
Frequently asked questions
Do members need Manage Roles to choose a role?
No. Members use configured self-role commands or published reaction-role choices without that permission.
Who can run !assignrole and !unassignrole?
Members holding a configured Trusted Operator Role, for approved roles below both their highest role and the bot’s.
Can a helper assign an Administrator role?
No. Trusted assignment rejects Administrator and the other powerful permissions checked by the module.
Are these modules available on Free?
No. Role Management and Reaction Roles require Pro.
Related modules
Related guides
Ready to configure your bot?
Start freeStart free. Free includes 1 bot and the Free modules; Pro is $9.99/month and adds more bots, every module and custom modules.
