Skip to content

Role Persistence

Snapshots a member's roles on leave and restores them on rejoin. Stops "I left for an hour, lost my XP role and verified status, now I have to re-do everything."

How it works

  • On leave: Phantom records the member's current role IDs.
  • On rejoin: Phantom restores them, skipping any role that's been deleted since.

The snapshot is per-(guild, user) and persists indefinitely until you delete the entry from the dashboard.

Where it lives

Dashboard: Community → Role Persistence. Includes a snapshots view (every snapshotted member) + recovery tools.

Settings

SettingWhat it does
EnabledMaster switch.
Snapshot on leaveWhen on, record roles. When off, the feature is essentially dormant.
Restore on rejoinWhen on, apply snapshotted roles on rejoin. When off, no restoration.
Exclude rolesRoles to NEVER snapshot/restore (e.g. a "muted" role you don't want auto-coming-back).
Snapshot retention (days)Auto-prune snapshots older than N days. 0 = keep forever.

Tips

  • Always exclude moderation roles like "muted" / "naughty list". Otherwise a banned-and-rejoined member auto-restores their bad-actor role and looks weird.
  • Exclude "@Owner" or any role that should not be auto-granted.
  • 30-day retention is a sensible default. Members who haven't been around in a month are unlikely to want their old roles back.

Permissions

  • community.view — see snapshots
  • community.edit — change settings, manually restore / delete

Behaviour

  • Per-user snapshot is replaced on each leave (not appended). So multiple leaves overwrite each other.
  • Restore is best-effort: if Phantom's role hierarchy doesn't permit a role grant, that role is silently skipped (logged in Error Log).

Phantom is a product of Hydra Labs. The bot is run as a managed service; you do not need to host it yourself.