Backups
Take consistent backups of your world without corrupting it.
A live Bedrock world is a LevelDB database that the server writes to constantly. Copying the worlds/ folder while the server is running can capture a half-written database and produce a corrupt backup. There are two safe ways to avoid that.
The simple way: stop, copy, start
For most servers this is the most reliable option. With the server stopped the world is in a consistent state, so a plain copy is guaranteed valid:
- Stop the server (
stopin the console). - Copy the world folder -
worlds/<level-name>/- somewhere safe. - Start the server again.
The downside is the brief downtime while you copy. For small worlds that's a few seconds.
The no-downtime way: save hold / query / resume
BDS can hand you a consistent snapshot while it keeps running. It's driven by three console commands:
| Command | What it does |
|---|---|
save hold | Asks the server to prepare a backup. Returns immediately. |
save query | Poll this repeatedly. Once it succeeds it returns the list of files to copy, each with a byte length. |
save resume | Tells the server you're done so it can resume managing files normally. |
The catch is in save query: the server may still be writing, so you must copy only the files it lists and truncate each copy to the exact length it reports. Copy more than that and the backup can be inconsistent.
This dance is fiddly to do by hand, which is why it's normally automated by a script or a backup plugin rather than typed manually.
What to back up
At minimum, the active world:
worlds/<level-name>/For a full restore you'll also want the files that define how the server runs:
server.propertiesendstone.tomlallowlist.json,permissions.json, and the ban lists- your
plugins/folder and any installed packs
Automating
On a bare-metal install, schedule the stop/copy/start routine - or a save hold-based script - with cron (Linux) or Task Scheduler (Windows). If you run as a Docker service, back up the host ./data folder the container mounts; a scheduled copy of ./data/worlds on the host works the same way.
Restoring
- Stop the server.
- Replace
worlds/<level-name>/with your backup copy (delete the live folder first so no stale files remain). - Start the server. Make sure
level-namestill points at the restored folder.