RMRP BackUp
A service Discord bot for backing up and restoring the structure of the servers of the RMRP game project (rmrp.ru). The bot takes a full snapshot of a server — channels, roles, permissions, bans, nicknames, threads and messages — and can restore the server from that snapshot. It runs only on the project's internal servers and is available only to administrators on the allow-list.
🗃️ Full server snapshot
A single backup stores the whole server structure: channels and their permissions, roles, bans, member nicknames, threads and the latest messages in every channel.
🧯 Restore
Restore a server from a backup by ID or from a JSON file: channels, roles, overwrites, bans and messages — optionally without deleting existing channels and roles.
🔒 Administrators only
Commands are restricted to allow-listed users, and the access level is configured per server. There is no public access to the bot.
Purpose
The bot was built exclusively for the RMRP game project and is used only on its internal Discord servers. Its tasks:
- protecting server structure against mass deletions, raids and moderation mistakes — a snapshot is always available to restore from;
- scheduled backups with an interval from 1 to 720 hours;
- transferring and synchronising roles and bans between the project's servers;
- exporting server data to JSON/CSV for the project's internal reporting.
Features
- Manual backup — a server snapshot with a configurable number of latest messages per channel and thread (0–1000; 100 by default).
- Scheduled interval backup — enable, disable and inspect the schedule; at most 3 interval backups are kept per server (ring buffer).
- Restore — by backup ID or from a JSON file, choosing what to restore (bans, members, threads, messages) and optionally keeping existing channels/roles.
- Synchronisation — one-off ban transfer and granting role B on another server to everyone holding role A.
- Export — the server, channels, a channel, roles, a role and bans are exported to JSON or CSV.
- Role cloning — an exact copy of a role: permissions, colour, icon and all channel overwrites.
- Cleanup — removing duplicate roles with identical names after a restore.
- Storage with auto-cleanup — outdated manual backups are deleted by retention policy, and the deletion report goes to an internal admin channel.
Commands
| Command | What it does |
|---|---|
/backup create | Full server snapshot: channels, roles, permissions, bans, nicknames, threads, messages (messages option 0–1000). |
/backup all | Snapshot of every server the bot is on (one by one; allow-listed users only). |
/backup load | Restore a server from a backup by ID or from a JSON file; data-selection options and a mode that keeps existing channels/roles. |
/backup list | List of stored backups. |
/backup delete | Delete one backup by ID. |
/backup delete-all | Delete every backup in storage (explicit confirmation required). |
/backup dedupe-roles | Remove duplicate roles with identical names. |
/backup interval | Enable, disable and inspect the interval backup schedule (1–720 hours). |
/intervals | Overview of interval backups across all servers, with filters. |
/sync bans | Transfer bans between two servers (one direction or both). |
/sync roles | Grant the second server's role to members holding a given role on the current server. |
/sync list · /sync delete | List and delete configured synchronisations. |
/export | Export the server, channels, a channel, roles, a role or bans to JSON/CSV. |
/role clone | Exact copy of a role: permissions, colour, icon, channel overwrites (separate allow-list). |
/settings permissions | Command access level for the server: admins_full, admins_restricted or owner_only. |
/servers · /help | List of servers the bot is on and full command reference. |
Discord permissions used
The bot requests only the permission set required for its tasks:
View Channels Send Messages Read Message History Embed Links Attach Files Manage Messages Manage Channels Manage Roles Manage Webhooks Ban Members
Manage Channels,Manage Roles,Ban Members,Manage Webhooks— creating and deleting channels and roles, applying bans during a restore, and operating relay webhooks.Manage MessagesandRead Message History— saving the latest messages of a channel/thread into a backup and restoring them.- A full server restore (deleting and recreating channels and roles) uses the
Administratorpermission, which the project grants the bot only on its own internal servers. - Intents: Server Members (member data and nicknames) and Message Content (saving and restoring message text). The Presence intent is neither requested nor used.
What data is processed and why
| Data | Why | Where it is stored |
|---|---|---|
| Server structure: channel names and topics, positions, permission overwrites, slowmode, roles with their permissions, colour and icon | Restoring the server to its previous state after a failure or mass deletion | MongoDB (compressed backup documents) and JSON files in data/backups/ |
| Bans: user IDs and the reasons given by moderators | Restoring the ban list and synchronising bans across the project's servers | MongoDB + JSON export |
| Member IDs and their server nicknames | Restoring nicknames and keeping role synchronisation membership consistent | MongoDB + JSON export |
| Latest messages of channels and threads (text, attachments, author, time, IDs) — up to 1000 per channel/thread, 100 by default | Restoring the content of the project's internal channels after a failure | MongoDB + JSON export |
| Bot settings: server IDs, access level, interval schedules, synchronisation definitions | Access control and schedules, service notifications to administrators | MongoDB (settings and synchronisation collections) |
| Technical logs: time, server/channel IDs, operation result, errors | Diagnostics and incident investigation | Local log files on the project's server |
The bot does not process: direct messages (DMs), data of servers it is not installed on, payment or biometric data, voice data, health information, location data, or the Presence intent.
Retention
- manual backups — 180 days by default from creation, then deleted automatically together with the JSON export (configurable; 0 disables auto-cleanup);
- interval backups — the latest 3 per server at most, older ones are overwritten;
- server settings and synchronisation definitions — for as long as the bot runs on the server;
- technical logs — up to 7 days (daily rotation; files older than 7 days are deleted automatically);
- on a justified request, data is deleted within 30 days (see the Privacy Policy section for RMRP BackUp).
Legal documents
- Privacy Policy — section “RMRP BackUp” · Политика конфиденциальности (RU)
- Terms of Use — section “RMRP BackUp” · Условия использования (RU)
- Full Privacy Policy · Full Terms of Use
Contact
Official project Discord: discord.gg/6Az63EPEAA
Player support: forum.rmrp.ru — help
Project support e-mail: donate@rmrp.ru
Project website: rmrp.ru