VaultBridge
VaultBridge is a free companion app that converts backups between SaveVault and two other save managers, in both directions:
- GameSave Manager (
.gsbabackups) ⇄ SaveVault - Ludusavi (its per-game backup folders) ⇄ SaveVault
It is a separate download, not part of SaveVault, and it never touches your games or your live saves. It reads backups one tool made and writes backups another tool understands. Download it from the VaultBridge page.
Into SaveVault
Section titled “Into SaveVault”Point the output at your SaveVault backup folder and the archives are adopted the next time SaveVault looks at the folder, exactly as if SaveVault had made them:
- The original backup time is kept. Retention orders backups by date, so an import from 2019 sits where 2019 belongs instead of looking like it was made today.
- Every file is hashed (BLAKE3) and keeps its modification time, so restores verify the way native backups do.
- Save locations become SaveVault’s portable placeholders (
appData,documents,gameInstall, and so on), so an imported backup restores on a different machine, not only to the path it came from. - Registry data comes along. GameSave Manager registry exports and Ludusavi registry data become SaveVault registry exports; Ludusavi backups from a Steam Deck keep their Proton prefix hives.
- Ludusavi’s lock and comment become SaveVault’s pin and label. Each full backup and each differential backup becomes one self-contained archive.
Anything that cannot be carried over is listed in the conversion log for that archive. Nothing is dropped silently.
Convert GameSave Manager backups on the Windows PC that has the games installed when you can. Saves that GameSave Manager located through the game’s install folder or the registry are resolved while converting, so the game (or Steam) needs to be present. On macOS or Linux those roots are recorded unresolved with a warning, and SaveVault asks for the install folder when you restore. Registry exports restore on Windows only.
Retention
Section titled “Retention”SaveVault keeps a limited number of backups per game (four by default) and prunes the oldest. Importing more than that for one game means the oldest imports are pruned on the next backup of that game. VaultBridge warns when more than four archives (SaveVault’s default cap) are imported for one game unless they are pinned; turn on Pin backup to keep every import, or raise the cap in SaveVault’s settings first.
Options
Section titled “Options”| Option | What it does |
|---|---|
| Archive format | zip (default), tar.gz, or tar.zst, the same choices SaveVault offers. |
| Parallel jobs | How many backups convert at once. Auto, the default, uses half the CPU threads like SaveVault; 1 to 32 can be set. |
| Pin backup | Mark every archive pinned; pinned backups skip automatic retention pruning. |
| Backup label | A label shown next to each import on SaveVault’s Restore page. For Ludusavi backups the comment is used when no label is given. |
| Match game names to the Ludusavi manifest | On by default in the app once a manifest copy is present (the CLI needs --normalize-names). GameSave Manager and Ludusavi name games their own way, and an import under a different name shows up in SaveVault as a second entry for the same game. With this on, a game is renamed to its manifest title only when its name is a known alias or differs from the title just in case or punctuation; anything else keeps its name, and every rename is listed in the conversion log. A matched game also gets the manifest’s save locations, Steam id and cloud flags, so it restores across platforms like a native backup. The manifest is SaveVault’s or Ludusavi’s copy when either is installed; otherwise the app offers to download its own copy (about 17 MB) and the CLI fetches one automatically; VaultBridge’s own copy is refreshed once it is a week old. |
Out of SaveVault
Section titled “Out of SaveVault”- SaveVault → GameSave Manager writes a
.gsbafor each archive, registry included. GameSave Manager lists and restores them like its own backups. - SaveVault → Ludusavi adds each archive as a full backup of its game inside a Ludusavi
backup folder, creating or updating the game’s
mapping.yamlthe way Ludusavi expects. Choose the folder layout or zip layout to match your Ludusavi settings. Archives are written one at a time so a game’s mapping is never updated twice at once, and a backup Ludusavi already has is skipped rather than duplicated.
Proton prefix hives have no equivalent in GameSave Manager and are reported as skipped in that direction.
Using the app
Section titled “Using the app”Drop files or folders onto the page for the direction you want, or use the Browse buttons. Dropped items are staged; nothing runs until you click Convert. For Ludusavi, drop the whole backup folder and VaultBridge finds every game and every backup inside it, including one level of nested folders if you keep one folder per machine.
Each result shows where the archive was written and any warnings for it. You can switch between directions while a conversion runs; the header shows which one is busy.
Command line
Section titled “Command line”Every direction is also a vaultbridge CLI command, useful for scripting a one-time
migration:
vaultbridge gsm-to-sv --input "D:\GameSave Manager\Backups" --output-dir "D:\SaveVault Backups" --pin --normalize-namesvaultbridge ludusavi-to-sv --input "D:\Ludusavi Backups" --output-dir "D:\SaveVault Backups" --jobs 4vaultbridge sv-to-gsm --input "D:\SaveVault Backups" --output-dir "D:\GSM Imports"vaultbridge sv-to-ludusavi --input "D:\SaveVault Backups" --output-dir "D:\Ludusavi Backups" --layout simpleRun any command with --help for the full option list. The CLI prints a report per input
with the same warnings the app shows. Folder inputs are scanned recursively (--recursive
is still accepted and changes nothing). An archive that already exists in the output folder
is never overwritten: it is skipped and reported. --jobs sets how many conversions run at
once; 0 (the default) means auto, half the CPU threads, and any value is capped at 32. The
exit code is 0 when something converted, 1 when any item failed, and 2 when there was
nothing to do (every input skipped, or no matching archives), so a script notices a wrong
path.
Checking an import
Section titled “Checking an import”SaveVault can verify any archive VaultBridge wrote, the same way it verifies its own:
savevault-cli verify "D:\SaveVault Backups\Chex Quest HD_2026-05-12_03.00.45.zip"savevault-cli explain "D:\SaveVault Backups\Chex Quest HD_2026-05-12_03.00.45.zip"verify checks every file against its hash; explain shows where each root restores to
on this machine and prints the README that ships inside the archive.
Updates and source
Section titled “Updates and source”VaultBridge checks savevault.app for updates when it starts (you can turn that off on its About page) and installs them in place; every in-place update is verified against the signing key built into the app. A Linux copy installed from the .deb cannot be replaced in place: the About page still shows the new version, with a link to download the current .deb from savevault.app instead of an Install button. The Windows installer is not yet code-signed, so SmartScreen shows “unknown publisher” the first time you run it, and the macOS app is not notarized, so open it with right-click → Open the first time. VaultBridge is free software under the GPL-3.0, with source and release downloads on GitHub as well.