Button Roles
Overview
A drag-and-drop builder for buttons and select menus that run chains of role actions, with groups, conditions, timers, and cooldowns.
Button Roles is the way to hand out roles with Zira. Every button runs an ordered chain of actions, buttons can be tied together into groups, each action can carry its own conditions and timers, and a whole message can render as a select menu instead of buttons. You build it all on a drag-and-drop canvas, no JSON and no IDs.
Find it on your server's dashboard at Configuration → Button Roles.
What makes it different#
| Reaction Roles (legacy) | Button Roles | |
|---|---|---|
| One click can add and remove several roles | No | Yes |
| Buttons or a select menu, your choice | No | Yes |
| Per-button required / blacklist roles | No | Yes |
| Pick-N-of-many across the whole message | Toggle type only | Yes, even across messages |
| Roles that expire on a timer | No | Yes, per action |
| Conditions ("only if they have role X") | No | Yes (premium) |
| Per-button cooldowns | No | Yes (premium) |
| Reliability | Reactions can be missed | A click is never missed + durable retry |
The building blocks#
- Message (surface). A Zira-sent message that hosts the buttons. You create it in the Embed Builder and choose the button roles route, or pick an existing Zira message.
- Button. One clickable button. It has a label, an emoji, a color, an optional cooldown, and optional required / blacklist roles that decide who may use it.
- Select menu display. Any message can render its entries as one Discord select menu instead of buttons (up to 25 options, each with an optional description). Members pick from the list; deselecting removes the matching roles. Toggle it per message in the builder.
- Action chain. The ordered list of things a button does when clicked: add, remove, toggle, or grant a timed role. A button can have many actions. See Buttons and Actions.
- Group. A named set of buttons that caps how many of its roles a member can hold at once (a "pick 1 of these", or pick N). See Groups.
Reliability#
Every role change Zira receives is guaranteed to land. If Discord briefly rejects a role edit, Zira queues it and retries until it succeeds, so a click is never silently dropped. Members always get an ephemeral reply telling them exactly which roles were added or removed.