Tools / Vintage Story
Vintage Story Save Recovery
The game says your save may be corrupted, a world vanished from the list after a
rename, or a restore keeps failing? A Vintage Story world is one SQLite database -
Saves/<world>.vcdbs - and /genbackup plus the auto-backup keep
dated copies in Backups/. Point this page at your Saves folder (or
the single world file): it runs a structural SQLite check on the live world and
every backup - not just a size guess - shows which pass and when each was saved,
spots a world that lost its .vcdbs ending, and rebuilds a clean copy you can drop
back in.
Your world never leaves your browser. It reads only file names, sizes,
modified-times and each database's 100-byte SQLite header, copies the chosen database into a zip
locally, and never modifies your originals - and it deliberately drops the stale
-wal/-shm sidecars that re-corrupt restores.
Pick your Saves folder - or the world file itself
On the client the worlds live in VintagestoryData/Saves/ (Windows:
%appdata%\VintagestoryData\Saves); on a dedicated server it is
data/Saves/. Picking the whole VintagestoryData folder also brings the
Backups/ copies in for ranking. Stop the server / fully quit the game first so
nothing is mid-write.
- or a single world file (even one that lost its .vcdbs ending) -
Reads names, sizes, times & each file's 100-byte header locally. Nothing is uploaded.
Want this on a real server? Supercraft hosts Vintage Story →
How Vintage Story saves - and why restores fail
Vintage Story stores each world - terrain, player data, entities, everything - in a single
SQLite database, <world>.vcdbs, inside Saves/. The
/genbackup command and the server's auto-backup write dated copies into
Backups/. When the live world breaks - the process killed mid-save, a PC dying
while loading, a sync tool (Syncthing and friends) shipping a torn copy - the last intact copy
is usually one of those backups.
A second, sneakier failure: renaming a world (in the game's own dialog or by hand) can strip
the .vcdbs extension. The launcher only lists files ending in .vcdbs,
so the world simply disappears - with all its data intact. This tool reads the file's actual
bytes, so a renamed world is recognised by its SQLite header and handed back with the proper
name.
The third trap is the sidecar pair SQLite writes while the game runs:
.vcdbs-wal (the write-ahead log) and .vcdbs-shm. They belong to the
current database. Copy a replacement world in and leave them behind, and SQLite replays
them onto the new file - corrupting the world you just restored. This tool never carries
sidecars into the zip and tells you to delete them first.
Because the world is SQLite, its structure is checkable: the tool verifies the
SQLite format 3 header magic, that the file is a whole number of pages, and that it
is not shorter than the size the database's own header declares - so a truncated or
header-damaged world is flagged instead of handed back to you. A structural check catches the
common corruption but not every kind of internal damage; if a copy that passes still won't load,
the game's own repair option is the next step.
Manual recovery (no JavaScript needed)
- Stop the server (or fully quit the game) so nothing writes to the world.
- Open
VintagestoryData/Saves/(server:data/Saves/) and copy your.vcdbsworld and the newest file fromBackups/somewhere safe. - Delete
<world>.vcdbs-wal,-shmand-journalfiles if present - they describe the old database. - Rename the broken
<world>.vcdbsto<world>.vcdbs.broken, copy the chosen backup in, and make sure its name ends in.vcdbs- the game only lists worlds with that ending. - Start the game/server and confirm the world loads before deleting anything.
- If no copy loads: open the world in the game once and accept its repair offer
(load your mods first - repair on a modded world without the mods can lose modded content).
The wiki's
sqlite3 .recoverprocedure is the genuine last resort.
Corruption keeps coming back? It is usually a host killing the process instead of stopping it cleanly. Supercraft's Vintage Story servers stop cleanly and keep daily automated backups with quick restore.
FAQ
Is my save really not uploaded?
Really - there's no upload endpoint on this page. Reading the folder, checking each database's header, and building the recovery zip all happen in your browser; the network tab shows zero requests carrying your world.
Can it fix a world with no intact copy at all?
No tool can rebuild data that isn't on disk. If the live world and every backup fail the
structural check, this page says so honestly - then the game's repair option and the wiki's
sqlite3 .recover procedure are what's left, and keeping the broken file untouched
is what preserves your options.
Does it work for modded worlds?
Yes - mods change what's inside the database, not the container format this checks. One warning from hard experience: run the game's repair option with your mods installed, or modded blocks and items can be dropped from the repaired world.