Skip to Content
Haven Documentation is the shared home for product guides, plugin setup, and release docs.

Setup

Requirements

  • AthenaBot with the core plugin enabled
  • Dashboard access for the easiest panel editing experience
  • Bot permissions:
    • Manage Roles
    • Send Messages
    • Embed Links
    • Add Reactions if using reaction emoji panels
    • Manage Messages if using auto-remove reaction behavior
    • Read Message History

Discord role hierarchy matters. The bot can only assign roles below its highest role. Keep role_hierarchy_check enabled unless you are debugging.

Installation

  1. Place the plugin folder at plugins/reactionroles.
  2. Start AthenaBot so configuration/reactionroles.json5 is generated.
  3. Open the dashboard page for Reaction Roles.
  4. Enable the plugin.
  5. Create or edit a panel.
  6. Select a channel and map every role entry to a Discord role.
  7. Click Save Changes, then Send to Discord.

First Panel

The fastest working panel is a mixed select-menu panel:

  1. Click Create Panel.
  2. Give the panel a unique key such as notifications.
  3. Select the channel where the panel should be posted.
  4. Add an embed title and description.
  5. Enable Select Menu.
  6. Add each role option with:
    • label
    • emoji
    • description
    • Discord role
  7. Keep Show Check My Current Roles button enabled.
  8. Save and send the panel.

Slash Commands

CommandPurpose
/reactionroles statusShows plugin status, panel count, auto-remove setting, logging state, max role limit, and hierarchy check.
/reactionroles reloadRe-sends or verifies all configured panels.
/reactionroles resend panel:<name>Deletes the stored panel record and sends a fresh copy of one panel.

The slash command requires Discord’s Manage Roles permission by default.

How Startup Sending Works

When the Discord client becomes ready, the plugin:

  1. Loads the reactionroles config.
  2. Checks whether the plugin is enabled.
  3. Looks up each configured panel.
  4. Checks the database for an existing panel record.
  5. Verifies the stored message still exists and was sent by the bot.
  6. Sends a new panel only when needed.

This prevents duplicate panels on every restart while still recovering from deleted panel messages.

Dashboard Versus File Config

Use the dashboard for normal operation. The dashboard editor supports live preview, role/channel pickers, sub-panel editing, and panel send/delete routes.

If dashboard-backed config storage is enabled, editing configuration/reactionroles.json5 might not change the live configuration until the dashboard data is updated.