> ## Documentation Index
> Fetch the complete documentation index at: https://docs.newt.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# Role Buttons: Let Members Self-Assign Server Roles

> Create button panels that let members give themselves roles by clicking — with private feedback, single-select mode, and up to 25 buttons per panel.

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.

<Warning>
  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.
</Warning>

## Buttons versus reactions

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

| Command | What it does | Who can use it |
| - | - | - |
| `/rolepanel create <channel> <title> [description] [mode]` | Start a new panel | Manage Roles |
| `/rolepanel addrole <panel> <role> [label] [emoji]` | Add a button to the panel | Manage Roles |
| `/rolepanel removerole <panel> <role>` | Remove a button from the panel | Manage Roles |
| `/rolepanel list` | List every panel, its roles, and any errors | Manage Roles |
| `/rolepanel delete <panel>` | Remove the panel and its message | Manage Roles |
