How to back up, restore and move a Rust server
A map file is not a copy of everything your players could lose. Buildings, learned blueprints and plugin balances belong to different saved state. Decide what must return after a restore, then check that the recovery set contains it.
Locate the active identity
Section titled “Locate the active identity”Read the startup settings and find the actual server.identity directory. Facepunch’s server-file reference describes its contents. For a stopped recovery copy, preserve the full directory instead of choosing familiar file extensions.
The .map describes terrain. The matching .sav holds world entities, including buildings and deployables. player.blueprints files hold blueprint data. Recovering a world save alone can leave other expected state behind.
Record the identity, map name, seed, world size and protocol/build. Starting with a different identity or map setting can create a fresh world while the files you meant to restore remain elsewhere.
Facepunch warns against renaming an old save to match a new protocol and bypass a forced wipe. Use compatible files and follow release requirements; changing the filename does not make the save compatible.
Include framework and plugin storage
Section titled “Include framework and plugin storage”| Recovery component | What to record |
|---|---|
| Identity directory | The actual save, map, player databases, config and associated files. |
| Framework and plugins | Installed versions, extensions, dependencies and any required licenses. |
| Plugin configuration | The paths selected by this host and framework. |
| Plugin data and permissions | Storage for balances, kits, ranks, progress and user/group permissions. |
| External databases | Their supported export and restore method, plus which data belongs to this server. |
| Service settings | Values selecting identity, map and storage; destination endpoints need their own assigned values. |
Oxide’s data-file guide explains the distinction between configuration and saved plugin data. Defaults include oxide/config and oxide/data, but the paths can move. Check its permission reference and retain the actual user/group storage too. For Carbon, check that installation’s layout before reusing an Oxide path list.
Keep SQLite state together
Section titled “Keep SQLite state together”A SQLite -wal file can contain committed transactions that have not reached the main .db file. SQLite’s WAL documentation explains why the database and WAL must stay together when copying that state.
Capture a stopped, consistent set, retaining associated journal files. Do not discard them just because they look temporary. If an online backup is necessary, use an application-supported method. SQLite’s backup API can produce a consistent database snapshot, but it does not coordinate the Rust world save and all plugin databases.
Capture and inspect the set
Section titled “Capture and inspect the set”Announce maintenance, save through the supported server procedure and let normal shutdown finish. Check that the game and related writers have stopped before copying the identity and framework/plugin storage. Use supported exports for external databases.
Fill in the recovery inventory with actual paths, versions, timestamps and expected state. Preserve the source copy and keep another outside the live service. Extract a duplicate, inspect coverage and compare file sizes or hashes. An archive success message cannot prove that a player will recover their progress.
For VYKIX, use backup help to check the current service’s inclusion and restore controls. The DayZ panel example does not establish a Rust-specific configuration. Check your selected service; copies on the same server can be lost with its storage.
Rehearse a restore
Section titled “Rehearse a restore”Preserve the destination’s current state, stop it, then restore the dated set into its actual identity and framework paths. Check ownership, permissions, map settings and compatible game/framework/plugin versions before startup.
Restrict access while checking errors and saved state. Join to inspect known buildings, player inventory, blueprints, signs where relevant, plugin balances and admin permissions. Stop if the world is unexpectedly fresh or state is missing. Allowing new gameplay would make the recovery comparison harder.
Facepunch’s Rust+ identity rules require keeping private companion.id with the server and its backups, and avoiding its reuse across multiple servers. Arrange the drill through a supported isolation method. Do not start a clone using the production Rust+ identity or change the source identity to accommodate the test.
Cut over with a retained source
Section titled “Cut over with a retained source”For a host move, rehearse first. Stop the old service for the final copy and keep it stopped while checking the destination. Update assigned endpoints and reopen only after the state checks pass. Keep the old recovery set until acceptance.
If you roll back, stop the destination before resuming the source. Otherwise, players can create two conflicting histories. Tell them which saved point will return.
Compare Rust hosting with your inventory and restore requirements. A move cannot preserve a save across every forced wipe or incompatible update. Copying the world alone cannot recover every plugin or external service.