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

# Reaction Roles

> Let members assign themselves roles by reacting to messages

## Overview

Reaction roles allow members to assign themselves roles by clicking reactions on messages. Perfect for role selection panels, color roles, notification preferences, and self-assignable team roles.

<Info>
  Members can add or remove roles simply by clicking emoji reactions - no commands needed!
</Info>

***

## Commands

<AccordionGroup>
  <Accordion title="reactionrole add" icon="plus">
    Add a reaction role to a message.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~reactionrole add <message_link> <emoji> <@role>
      ```

      ```bash Example theme={null}
      ~reactionrole add https://discord.com/channels/123/456/789 🎮 @Gamer
      ~rr add https://discord.com/channels/123/456/789 🎨 @Artist
      ~reactionrole add <link> <:custom:123456789> @VIP
      ```
    </CodeGroup>

    **Parameters:**

    * **message\_link** — Link to the message (right-click → Copy Message Link)
    * **emoji** — Emoji to react with (unicode or custom)
    * **@role** — Role to assign

    **What It Does:**

    * Adds the emoji reaction to the message
    * Members who react get the role
    * Removing reaction removes the role
    * Works with both unicode and custom emojis

    **Aliases:** `rr add`, `reactionroles add`\
    **Permissions:** Administrator
  </Accordion>

  <Accordion title="reactionrole remove" icon="minus">
    Remove a specific reaction role from a message.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~reactionrole remove <message_link> <emoji>
      ```

      ```bash Example theme={null}
      ~reactionrole remove https://discord.com/channels/123/456/789 🎮
      ~rr remove <link> 🎨
      ```
    </CodeGroup>

    **Parameters:**

    * **message\_link** — Link to the message
    * **emoji** — Emoji to remove

    **What It Does:**

    * Removes the reaction role configuration
    * Removes the emoji reaction from the message
    * Members keep the role if they already have it

    **Aliases:** `rr remove`, `reactionroles remove`\
    **Permissions:** Administrator
  </Accordion>

  <Accordion title="reactionrole removeall" icon="trash">
    Remove all reaction roles from a message.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~reactionrole removeall <message_link>
      ```

      ```bash Example theme={null}
      ~reactionrole removeall https://discord.com/channels/123/456/789
      ~rr removeall <link>
      ```
    </CodeGroup>

    **What It Does:**

    * Removes all reaction role configurations from the message
    * Clears all reactions from the message
    * Shows count of removed reaction roles

    **Aliases:** `rr removeall`, `reactionroles removeall`\
    **Permissions:** Administrator
  </Accordion>

  <Accordion title="reactionrole list" icon="list">
    View all reaction roles configured in your server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~reactionrole list
      ```

      ```bash Example theme={null}
      ~reactionrole list
      ~rr list
      ```
    </CodeGroup>

    **What It Shows:**

    * All messages with reaction roles
    * Emojis and their assigned roles
    * Jump links to each message
    * Organized by message

    **Aliases:** `rr list`, `reactionroles list`\
    **Permissions:** Administrator
  </Accordion>

  <Accordion title="reactionrole reset" icon="rotate-left">
    Reset all reaction roles in the server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~reactionrole reset
      ```

      ```bash Example theme={null}
      ~reactionrole reset
      ~rr reset
      ```
    </CodeGroup>

    **What It Does:**

    * Removes ALL reaction role configurations
    * Shows count of removed roles
    * Cannot be undone

    <Warning>
      This removes all reaction roles from your entire server.
    </Warning>

    **Aliases:** `rr reset`, `reactionroles reset`\
    **Permissions:** Administrator
  </Accordion>
</AccordionGroup>

***

## How It Works

<Steps>
  <Step title="Create a Role Selection Message">
    Create an embed or message explaining the roles:

    ```bash theme={null}
    ~embed create {embed}
    $v{title: Select Your Roles}
    $v{description: React to get roles!
    🎮 - Gamer
    🎨 - Artist
    📚 - Reader}
    {embed}
    ```
  </Step>

  <Step title="Add Reaction Roles">
    Add reaction roles to the message:

    ```bash theme={null}
    ~rr add <message_link> 🎮 @Gamer
    ~rr add <message_link> 🎨 @Artist
    ~rr add <message_link> 📚 @Reader
    ```
  </Step>

  <Step title="Members React">
    Members click reactions to get roles:

    * Click emoji = get role
    * Unclick emoji = lose role
    * Works instantly
  </Step>
</Steps>

***

## Permission Requirements

<CardGroup cols={2}>
  <Card title="Bot Permissions" icon="robot">
    The bot needs:

    * Manage Roles
    * Add Reactions
    * Read Messages
    * View Channel (for the reaction message)
  </Card>

  <Card title="User Permissions" icon="user">
    Command Requirements:

    * **Administrator** — All reaction role commands
    * **None** — Using reactions (any member)
  </Card>
</CardGroup>

***

## Role Hierarchy

<Warning>
  **Important Hierarchy Rules**

  * Bot's role must be **higher** than roles it assigns
  * Your role must be **higher** than roles you configure
  * Bot cannot assign roles equal to or higher than its highest role
  * Server owner bypasses user hierarchy restrictions
</Warning>

***

## Aliases

<CardGroup cols={3}>
  <Card title="reactionrole" icon="hand-pointer">
    Full command
  </Card>

  <Card title="rr" icon="r">
    Short alias
  </Card>

  <Card title="reactionroles" icon="hand-pointer">
    Alternative
  </Card>
</CardGroup>

***

## Usage Examples

<Tabs>
  <Tab title="Basic Setup">
    ```bash theme={null}
    # 1. Create role panel message
    ~embed create {embed}
    $v{title: Role Selection}
    $v{description: Click reactions to get roles}
    {embed}

    # 2. Copy message link (right-click message)

    # 3. Add reaction roles
    ~rr add <link> 🎮 @Gamer
    ~rr add <link> 🎨 @Artist
    ~rr add <link> 📚 @Reader

    # 4. Members can now react!
    ```
  </Tab>

  <Tab title="Color Roles">
    ```bash theme={null}
    # Create color selection
    ~embed create {embed}
    $v{title: Choose Your Color}
    $v{description: 
    🔴 - Red
    🟢 - Green
    🔵 - Blue
    🟡 - Yellow}
    {embed}

    # Add reactions
    ~rr add <link> 🔴 @Red
    ~rr add <link> 🟢 @Green
    ~rr add <link> 🔵 @Blue
    ~rr add <link> 🟡 @Yellow
    ```
  </Tab>

  <Tab title="Notification Preferences">
    ```bash theme={null}
    # Create notification panel
    ~embed create {embed}
    $v{title: Notification Settings}
    $v{description:
    📢 - Announcements
    🎉 - Events
    📰 - News
    🎮 - Gaming}
    {embed}

    # Add reactions
    ~rr add <link> 📢 @Announcements
    ~rr add <link> 🎉 @Events
    ~rr add <link> 📰 @News
    ~rr add <link> 🎮 @Gaming
    ```
  </Tab>

  <Tab title="Team Selection">
    ```bash theme={null}
    # Create team panel
    ~embed create {embed}
    $v{title: Join a Team}
    $v{description:
    🔴 - Team Red
    🔵 - Team Blue
    🟢 - Team Green}
    {embed}

    # Add reactions
    ~rr add <link> 🔴 @Team Red
    ~rr add <link> 🔵 @Team Blue
    ~rr add <link> 🟢 @Team Green
    ```
  </Tab>

  <Tab title="Management">
    ```bash theme={null}
    # View all reaction roles
    ~rr list

    # Remove one reaction role
    ~rr remove <link> 🎮

    # Remove all from message
    ~rr removeall <link>

    # Reset entire server
    ~rr reset
    ```
  </Tab>
</Tabs>

***

## Common Use Cases

<AccordionGroup>
  <Accordion title="Self-assignable color roles" icon="palette">
    ```bash theme={null}
    # Members choose their name color
    ~rr add <link> 🔴 @Red
    ~rr add <link> 🟠 @Orange
    ~rr add <link> 🟡 @Yellow
    ~rr add <link> 🟢 @Green
    ~rr add <link> 🔵 @Blue
    ~rr add <link> 🟣 @Purple
    ```

    Let members customize their appearance.
  </Accordion>

  <Accordion title="Notification opt-in/opt-out" icon="bell">
    ```bash theme={null}
    # Members control what they're pinged for
    ~rr add <link> 📢 @Announcements
    ~rr add <link> 🎉 @Events
    ~rr add <link> 🎁 @Giveaways
    ```

    Reduce unwanted pings, increase engagement.
  </Accordion>

  <Accordion title="Game/interest roles" icon="gamepad">
    ```bash theme={null}
    # Members show what they play/like
    ~rr add <link> 🎮 @Valorant
    ~rr add <link> ⚔️ @Minecraft
    ~rr add <link> 🎨 @Artist
    ~rr add <link> 💻 @Developer
    ```

    Help members find others with shared interests.
  </Accordion>

  <Accordion title="Regional/language roles" icon="globe">
    ```bash theme={null}
    # Members select their region/language
    ~rr add <link> 🇺🇸 @English
    ~rr add <link> 🇪🇸 @Spanish
    ~rr add <link> 🇫🇷 @French
    ~rr add <link> 🇩🇪 @German
    ```

    Connect members by location or language.
  </Accordion>

  <Accordion title="Access control roles" icon="key">
    ```bash theme={null}
    # Members request access to channels
    ~rr add <link> ✅ @Verified
    ~rr add <link> 🔞 @18+
    ~rr add <link> 🎓 @Student
    ```

    Gate certain channels behind self-verification.
  </Accordion>
</AccordionGroup>

***

## Tips & Best Practices

<Info>
  **Design Tips**

  * Use clear emoji that represent the role
  * Create organized embed panels with descriptions
  * Group similar roles together
  * Use color coding for visual clarity
  * Keep role names short and clear
</Info>

<Note>
  **Management Tips**

  * Regularly check `~rr list` to audit configurations
  * Test with an alt account before going live
  * Pin role selection messages for easy access
  * Document what each role does
  * Set up role colors to make roles visible
</Note>

<Warning>
  **Common Issues**

  * **Bot can't assign role**: Check role hierarchy
  * **Reaction not working**: Verify bot has Add Reactions permission
  * **Role not assigning**: Bot needs Manage Roles permission
  * **Custom emoji not working**: Bot must be in server with that emoji
</Warning>

***

## Troubleshooting

### Role Not Being Assigned

1. Check bot has **Manage Roles** permission
2. Verify bot's role is **higher** than the role being assigned
3. Ensure the role isn't @everyone
4. Check bot can see the channel

### Reaction Not Adding

1. Verify bot has **Add Reactions** permission
2. For custom emojis, bot must be in a server with that emoji
3. Check the emoji still exists
4. Ensure message isn't in an archived thread

### "I Cannot Manage This Role"

The role you're trying to assign is either:

* Equal to bot's highest role
* Higher than bot's highest role
* **Solution:** Move bot's role higher in Server Settings → Roles

***

## Related Features

<CardGroup cols={2}>
  <Card title="Role Management" icon="user-gear" href="/role">
    Create and configure roles for reaction roles
  </Card>

  <Card title="Embed Builder" icon="code" href="/embed-builder">
    Create beautiful role selection panels
  </Card>

  <Card title="Server Settings" icon="server" href="/server">
    Configure overall server settings
  </Card>

  <Card title="Autorole" icon="user-plus" href="/autorole">
    Assign roles automatically when members join
  </Card>
</CardGroup>
