Recovery is a sequence, not one button. Restore the structure, pull members back, then restore their roles. If the server was attacked, contain the attacker before any of it — restoring into a live compromise repeats the damage and destroys the evidence.
Which path do you need?
- Situation
- Only members need to move
- What to do
- Pull members. No backup restore needed — skip to step 3
- Situation
- Only channels or roles were damaged
- What to do
- Restore a backup over the existing server — skip to step 2
- Situation
- The server was nuked or the owner was compromised
- What to do
- Start at step 1. Contain access before restoring anything
- Situation
- The server was deleted
- What to do
- Create a new one, invite the bot, restore the backup into it, then pull members
- Situation
- You have no backup
- What to do
- Rebuild manually, then pull members — see If no backup exists
| Situation | What to do |
|---|---|
| Only members need to move | Pull members. No backup restore needed — skip to step 3 |
| Only channels or roles were damaged | Restore a backup over the existing server — skip to step 2 |
| The server was nuked or the owner was compromised | Start at step 1. Contain access before restoring anything |
| The server was deleted | Create a new one, invite the bot, restore the backup into it, then pull members |
| You have no backup | Rebuild manually, then pull members — see If no backup exists |
The order
Secure owner, revoke access, rotate tokens
Channels, roles, permissions, messages
Prior-authorized members only
Re-assign saved roles to members who returned
Staff first, then the community
Do not start a production restore while a compromised owner, admin, bot token, webhook or integration can still change the server.
1. Contain the damage
Secure the owner account
Change the password from a trusted device, verify MFA, review active sessions, and secure the connected email. If ownership is lost, use Discord's official support path.
Cut off access
Revoke unknown admin roles, integrations, applications and webhooks. Rotate exposed bot tokens and API keys. Never paste replacement secrets into chat or tickets.
Preserve evidence and pick a snapshot
Record UTC timestamps, audit-log entries and affected objects before rebuilding. Then choose a recovery point created before the first malicious change — not automatically the newest one.
2. Restore the server
Prepare the destination
Install the secured bot, drag its role above everything it must create, and confirm the exact guild shown in RestoreCord before starting.
Run the restore
Pick the snapshot, the message count, and whether to clear the destination. Clearing is destructive — use it only for a deliberate clean rebuild.
Watch the task
Structure comes back first, then history. Record permission failures, rate limits and skipped objects instead of launching overlapping restores.
Dashboard controls are in the Snapshots guide.
3. Pull members back
Members are not in a snapshot. Only people who authorized through RestoreCord before the incident are eligible, and Discord can still refuse individual adds.
- Start only once the target server, bot permissions and verification config are stable.
- Let the migration reconcile members already present so they are not counted as failures.
- Track outcomes separately — succeeded, already present, skipped, ineligible, failed. Do not report the pre-incident member count as recovered.
- Tell members some will need a fresh invite; no service can force an ineligible account into a guild.
See Pull Members for the procedure.
4. Restore member roles
A restore recreates roles with new Discord IDs, so old assignments cannot carry over automatically. RestoreCord re-maps every member's saved roles to the new IDs and holds that mapping for 7 days, surfaced as a Pending Role Restore banner in the dashboard.
412 members have roles waiting to be restored · 968 role assignments · Expires in 6d 21h
Roles are recreated with new IDs; each member's saved roles are re-mapped and queued for 7 days.
“Pending Role Restore” shows on the dashboard with member and assignment counts.
Roles can only be assigned to members already in the server.
Runs in the background at Discord-safe rates; cancel any time, assigned roles are kept.
Pull members before restoring roles. Discord only assigns roles to members already in the server — anyone still missing stays pending until the 7-day window expires.
- The restore runs in the background at Discord-safe rates and reports progress in Running Tasks.
- Cancelling stops after the current batch; roles already assigned are kept and the rest stay pending.
- The bot needs Manage Roles, and its own role must sit above every role it assigns.
- Roles managed by integrations, or deleted since the restore, are reported as skipped in the modal.
- Deleting the pending data is permanent — the remaining roles then have to be reassigned by hand.
5. Validate and reopen
- Owner and admin accounts use MFA; unknown sessions are gone.
- Bot tokens, API keys and webhook secrets were rotated.
- Permission overwrites match the intended design and private channels are still private.
- Role restore finished, and the skipped list was reviewed and handled manually.
- Verification, firewall rules and webhook logging were tested end to end.
- A fresh snapshot was taken after stabilization, and the next restore test is on the calendar.
Reopen in stages — staff, then a small member group, then everyone — and watch the audit log between stages.
If no backup exists
- Secure the guild and document whatever roles, channels, permissions and audit evidence remain.
- Rebuild only the essential channels and least-privilege roles first.
- Invite members through trusted official channels; use the member pull only if valid prior authorization exists.
- Create a snapshot once stable, preview it, test-restore it into a spare server, and enable a schedule if your plan allows.