Reaction Roles
Let members self-assign configured roles from reusable panels.
How it works
Reaction Roles uses reusable Discord button panels to let members opt into configured interests, notifications, or access roles.
Before you start
- Create the assignable roles and place all of them below Airwavy's role.
- Keep privileged roles out of self-service panels.
Configure it
- Open Reaction Roles in the dashboard and create a panel.
- Set its channel and message, then map each option to a role.
- Save or publish the panel and test both adding and removing a role with a normal account.
Button panels and limits
- Panels can be published in text or announcement channels with a custom title, description, and button label, emoji, and visual style.
- Free servers can publish one panel with up to five roles.
- Premium servers can publish up to ten panels with up to 20 roles on each panel.
- The feature name is retained for familiarity, but members select Discord buttons rather than adding emoji reactions.
Role safety
- Offer only roles that are safe for any eligible member to self-assign.
- Keep Airwavy above every panel role and grant Manage Roles.
- Never expose Administrator, moderation, staff, integration-managed, or otherwise privileged roles.
- Re-test panels after changing role order, channel access, or the panel message.
Expected result
- Selecting a panel option grants its mapped role.
- Removing or toggling the selection follows the panel behavior configured in the dashboard.
Common errors
The interaction responds but the role is unchanged
Grant Manage Roles and place Airwavy above the mapped role. Never map administrator or similarly privileged roles.
Saved changes do not take effect
Reload the feature page and confirm the saved values. Then verify that the selected Discord channel or role still exists and that Airwavy can access it.
Discord reports missing permissions
Check the permission on both the server role and the target channel. Channel overwrites and role hierarchy can deny an action even when the server-level permission is present.