How backups work
This article explains how Architect Agent creates, stores, lists and restores server backups. For the Manager UI overview, see Backup Management.
Backups must be enabled per server under Configuration, Server Operations. If backups are disabled, the Agent does not create automatic or at-startup backups.
What is included
Each backup is built from:
| Source | Details |
|---|---|
| Backup paths (`filelist`) | Relative paths under the server root. Folders are archived recursively. |
| Wildcards | Paths containing `*` are expanded before archival. Missing matches are skipped. |
| Missing paths | Paths that do not exist are skipped with a warning. The rest of the backup continues. |
Each configured path becomes its own `.zip` archive inside the backup record. A folder named `mpmissions` is stored as `mpmissions.zip`, not as loose files.
Storage layout
Local backups are written under the Agent backups directory (next to `deployments` by default):
backups/<server_id>/<timestamp>/
`
Optional S3 (or S3-compatible) backup targets are supported. In that case the Agent still builds the archives locally first, uploads them, then removes the temporary local copy. The backup metadata remains in the Agent database so Manager can list and restore those backups.
Archive format and size
Backups are packaged as ZIP files using store mode. Files are archived, but not compressed.
That means:
- On-disk backup size is roughly the same as the size of the selected source files
- Large worlds, mission folders or log trees produce large backups
- Frequent intervals multiply that disk usage quickly
Plan free disk space for at least one full copy of every path you include, plus headroom for several keep periods. At-startup backups of multi-GB trees are a common cause of long starts and full disks.
`original_size` and `compressed_size` in backup details both reflect the archived payload. Because store mode is used, they are typically very close.
When backups run
| Trigger | Behavior |
|---|---|
| Backup at Startup | Runs during `server_start`, before the game process is spawned. The start stays busy until the backup finishes. |
| Backup Interval | Minutes while the server is eligible. `0` disables the ticker. Automated backups are skipped if the server is busy, creating, removed or starting. |
| Manual backup | Created from the Backups tab (`create_backup`). |
| Maximum Keep Time | Days. `0` disables cleanup. The Agent periodically deletes backups older than this age. |
While a backup runs, server status may show `current_procedure` as `backup`.
Force-kill during an in-flight at-startup backup cancels the zip work and abandons that backup record so the start can finish cleaning up. Manual and scheduled backups are not tied to that abort path.
Locked files and VSS (Windows)
By default the Agent zips directly from the live server files. Files that cannot be opened (for example locked by a running process) are skipped.
On Windows you can opt into Volume Shadow Copy:
[filesystem]
backups_vss = true
| Value | Behavior |
|---|---|
| `false` (default) | Live zip. Locked or unreadable files are skipped. |
| `true` | Create a VSS snapshot first so locked files can be read while the server is running. If the snapshot fails, the Agent falls back to a live zip. |
Requires an Agent restart. See Configuration.
Partial success
Backup entries are processed with limited parallelism. If some paths fail and others succeed, the Agent keeps the successful entries and still creates a backup record. If no entry succeeds, the backup fails.
Always check backup details after large or first-time backups to confirm the paths you care about were actually archived.
Listing backups
Manager lists backups newest first. The Agent caps list responses (100 newest) and default query pages (50) so large histories do not stall the Agent. Older backups remain on disk or on the remote target until deleted or cleaned up by Maximum Keep Time.
Restore
Restore is available from the Backups tab.
Important notes:
- The server must not be running, starting or stopping
- Existing files at the original paths are removed, then replaced from the archive
- Restricted paths enforced by the Agent are skipped
- Remote-target backups are downloaded to a temporary folder, restored, then cleaned up
Restoring a backup will fully overwrite the restored files or folders.
Practical recommendations
- Prefer narrow `filelist` paths (world / save / config) over entire server trees
- Avoid backing up cache, steamcmd leftovers or huge log folders unless you need them
- Keep Maximum Keep Time enabled on busy servers
- Treat at-startup backups of multi-GB paths as a deliberate choice; they delay every start
- On Windows, enable `backups_vss` only when you need consistent running-server backups of locked files
- After changing Agent `config.toml`, restart Architect Agent
Related configuration (server)
| Setting | Unit | Notes |
|---|---|---|
| Enabled | — | Master switch. Off means no backups. |
| Backup at Startup | bool | Before process spawn. |
| Backup Interval | minutes | `0` disables. |
| Maximum Keep Time | days | `0` disables automatic deletion. |
| Backup paths | relative paths | Folders, files or `*` patterns. |
| Target | `local` or target id | Local disk by default; optional S3 target. |