@helyx/module-reactionroles
v1.0.12
Published
Configurable self-service Discord role panels for Helyx.
Readme
Reaction Roles module
Reaction Roles lets server managers publish Helyx-owned panels from Discord or the dashboard. Members can select only the approved roles on each panel using buttons, a dropdown or emoji reactions.
Reaction messages include an automatically generated emoji-to-role key. Persistent reactions are enabled by default, so adding and removing a reaction synchronises the mapped role. Managers can turn persistence off so Helyx assigns the role and removes only the member's reaction. Non-persistent panels also support one-role-only reconciliation.
The module validates role ownership, hierarchy and dangerous permissions before publication and again before a role changes. Discord remains the source of truth for membership: Helyx does not store member selections, click history or reaction history.
Permissions
Helyx needs View Channel, Send Messages and Manage Roles. Embed panels also need Embed Links. Emoji-reaction panels need Read Message History and Add Reactions. Non-persistent emoji panels additionally need Manage Messages so Helyx can remove the reacting member's reaction. The module never requests Administrator or Message Content.
Stored data
Helyx stores panel and entry configuration, the Helyx-owned Discord message reference, lifecycle status, revision and privacy-detachable creator/updater IDs. It does not store lists of members holding a role.
This package remains in Testing until its automated and controlled Discord acceptance gates have passed.
Operator runbook
Before Beta, enable the Testing package in one dedicated guild and apply its guarded migration through the normal Helyx migration runner. Confirm module health is healthy, create one panel of each control type through both the dashboard and Discord, restart the shard worker, and verify the panels still respond.
If a role, channel, emoji or owned message is removed, the panel should become
needs_attention or message_missing. Correct the Discord resource and use
the module's Repair or Repost action. A cleanup_pending panel remains safe to
use while Helyx retries deletion of the old owned message. Repeated or
abandoned cleanup failures are an operator alert and must be investigated
before promotion.
Disabling the module stops its interactions without deleting configuration. Re-enable only after current channel permissions, role hierarchy and emoji availability have been checked. Rollback may restore compatible application code, but must not reverse the migration or delete panel data.
