Role buttons let your members self-assign roles by clicking a button on a message in any channel you choose. There is no command for members to remember and no staff involvement — they click, and the role appears or disappears.
Setting it up
Dashboard: Open your server on the dashboard, go to Role buttons, and add a panel. Give it a heading, pick the channel it should post in, tick the roles you want as buttons, and save. Newt posts the message within a few seconds.
Slash commands: Run /rolepanel create <channel> <title> to create an empty panel, then /rolepanel addrole <panel> <role> for each role you want to add. The message appears in the channel as soon as the first button is added.
Drag Newt’s role above every role on the panel in Server Settings → Roles. Discord will not allow a bot to assign a role that sits higher than its own in the hierarchy, no matter what permissions it has. This is the same requirement as autorole.
Role buttons improve on reaction roles in several important ways. When someone clicks a button, Newt replies privately — only that person sees the response. This means:
- Members get instant confirmation that their role was added or removed, or a clear explanation if something went wrong.
- Nothing breaks if a custom emoji is deleted later.
- Buttons do not require extra channel permissions the way reactions do.
If a click does nothing and no error appears, the most likely cause is that Newt’s role sits below the role it is trying to assign — fix the role order in Server Settings.
Single-role mode
Set a panel to single-role mode and selecting a new role automatically removes the one the member had before. This is ideal for colour roles, pronoun roles, or anything where holding more than one at a time makes no sense. Set the mode when you create the panel with the [mode] option on /rolepanel create, or update it from the dashboard.
Panel limits and editing
Each message supports up to 25 buttons — Discord’s limit of 5 rows of 5. If you need more than 25 roles, create a second panel in the same channel.
When you edit a panel on the dashboard or with commands, Newt edits the existing message in place. Any links you have shared to that message continue to work. When you delete a panel with /rolepanel delete, the message in the channel is removed as well.
Role buttons keep working across bot restarts and updates — nothing is held in memory.
Command reference