Skip to content

Reaction Roles

✨ Introduced in Frogge v1.0

Reaction Roles posts a panel of buttons where clicking one grants (or removes) a Discord role: pronouns, DC/world, notification opt-ins, whatever your community self-selects.

Quick Start

  1. Run /admin menuReaction RolesAdd, then choose Blank Panel or From Template (six ready-made panels, including Pronouns, Sexual Orientation, DM Preference, Gaming Platform, Data Center, and Zodiac Signs, that create their own roles automatically).
  2. For a blank panel, add role options: Create New Role lets the bot make a fresh Discord role on the spot, or Use Existing Role to link one you already have.
  3. Post to Channel and pick a channel: the panel's buttons go live immediately.

The Reaction Roles home screen in Discord, listing three panels with Add, Modify, Remove, and Home buttons. A panel's detail screen in Discord, showing Title, Description, Thumbnail, Color, Message Type, and its Role Options.

  1. Open Reaction Roles → + New Panel, give it a title.
  2. On the panel's page, edit Details/Appearance, then add options: pick an existing Discord role for each, or use + Create New Role to have the Dashboard make one on the spot.
  3. Request a post to a channel; the Bot picks it up and posts it within a couple of minutes.

The Reaction Roles list page in the Dashboard, showing three panels with their Message Type and a New Panel field. A panel's page in the Dashboard, showing its Details and Appearance & Behavior forms.

Full reference

Creating & editing a panel

A panel has a Title, optional Description and Thumbnail, a Color, and a Message Type (see below). Up to 20 role options per panel.

Add offers Blank Panel or From Template (the six bundled templates, see Quick Start above). Every field is editable afterward from the panel's detail screen.

+ New Panel only creates a blank panel; there's no template picker. Once created, its own page covers the same Title/Description/Thumbnail/Color/Message Type fields, split into a Details section and an Appearance section.

Message types

Set per panel, this controls what clicking a button actually does:

  • Normal: toggles that one role on or off, independent of any other button on the panel.
  • Unique: clicking clears every other role from this panel first, then adds the new one (radio-button behavior, good for pronouns or a single "which world" choice).
  • Verify: clicking only ever adds the role; members can't remove it themselves by clicking again. Good for one-way opt-ins an admin should manage removal for.

Role options

Each button links to one Discord role, with an optional custom Label and Emoji: type a standard emoji directly, or use Pick a Server Emoji for one of your server's own custom emoji (there's no way to type a custom emoji's code by hand, so this picker is the only way to use one).

Adding an option offers Create New Role (the bot makes it for you) or Use Existing Role.

A role option's detail screen in Discord, showing Label, Emoji, and Role fields each with their own Edit button.

Adding an option offers the same choice as Discord: pick an existing Discord role from the dropdown (or paste an ID via Enter ID), or use + Create New Role to have the Dashboard create a fresh Discord role for you, pre-labeled with the new role's own name.

The Options section on a panel's Dashboard page, showing four role options with Label/Emoji/Pick/Save/Remove, an existing-role picker, and a Create New Role form.

For safety, a role can't be linked (or created) if it has Administrator permission, is managed by another bot/integration, or is @everyone. Clicking a button should never be able to hand out real server power.

Posting

Post to Channel posts the panel's buttons (up to 5 per row) to a channel immediately: you can post the same panel to multiple channels, and every copy stays in sync automatically as you edit the panel or its options.

A posted reaction role panel in Discord, showing its title, description, and four role buttons.

The panel's Posts section requests a post to a channel; the Dashboard itself can't post to Discord directly, so a background sweep on the Bot's side picks up the request and posts it, typically within about 2 minutes. Once live, it's the same auto-syncing post as the Discord side, and either surface can request another one to a different channel or cancel a pending request.

The Posts section on a panel's Dashboard page, showing a link to the live posted message and a channel picker to request another post.

Deleting

Both panel and option removal only ever remove the panel/option from Frogge.

You're also asked what to do with the underlying Discord role(s): Remove [Panel/Option] Only leaves the role(s) in your server, or Also Delete Discord Role(s) removes them too (best-effort: a role that's since become unsafe to touch, been deleted, or that the bot can't manage is skipped and reported, while everything else still gets cleaned up).

Deleting a panel or option never touches the underlying Discord role(s); they stay in your server either way. Delete them yourself in Discord's own role settings if you want them gone too.

  • Standalone: doesn't connect to any other module.