Web Analytics Made Easy - Statcounter

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.

Your world never leaves your browser SQLite structural check - not just file size Rebuilt .vcdbs is local; originals untouched

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.

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)

  1. Stop the server (or fully quit the game) so nothing writes to the world.
  2. Open VintagestoryData/Saves/ (server: data/Saves/) and copy your .vcdbs world and the newest file from Backups/ somewhere safe.
  3. Delete <world>.vcdbs-wal, -shm and -journal files if present - they describe the old database.
  4. Rename the broken <world>.vcdbs to <world>.vcdbs.broken, copy the chosen backup in, and make sure its name ends in .vcdbs - the game only lists worlds with that ending.
  5. Start the game/server and confirm the world loads before deleting anything.
  6. 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 .recover procedure 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.

This tool: v1.5 · updated 19 Aug 2026