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

# Reaction Roles

> Build reaction and button role menus on any message.

## Overview

Build flexible role menus without slash commands. Petto supports classic emoji reactions and clickable buttons, with independent toggle, add-only, or remove-only behavior for every role binding.

## Commands

<CodeGroup>
  ```javascript Syntax theme={null}
  !reactionrole add <message_id> <emoji> <role> [channel] [mode] [type] [label]
  !reactionrole remove <message_id> <emoji> [channel]
  !reactionrole list <message_id> [channel]
  !reactionrole clear <message_id> [channel]
  ```

  ```javascript Example theme={null}
  !reactionrole add 123456789012345678 🎮 @Gamer #general toggle
  !reactionrole list 123456789012345678
  !reactionrole add 123456789012345678 :joystick: @Gamer #general toggle button Gamer
  ```
</CodeGroup>

`channel` defaults to the current channel. `emoji` accepts both custom and default emoji.

`type` is `reaction` by default. Use `button` to turn the message into a clickable role menu; one message can contain up to 25 Petto buttons across five rows. `label` is the button text and defaults to the role name. Button mode cannot be added to a message that already has another component panel, such as a ticket or VoiceMaster panel.

## Modes

<AccordionGroup>
  <Accordion title="Toggle (default)">Reacting adds the role, reacting again removes it.</Accordion>
  <Accordion title="Add only">Reacting adds the role, removing the reaction does nothing.</Accordion>
  <Accordion title="Remove only">Reacting removes the role, useful paired with a role members start with.</Accordion>
</AccordionGroup>
