Exclusions & File Selection
SaveVault gives you three related tools for controlling which files move: backup exclusions, restore excludes, and per-file restore selection. All three share one pattern dialect, and the GUI’s checkboxes are sugar over the same settings the CLI edits.
The pattern dialect
Section titled “The pattern dialect”Pattern matching is case-insensitive. (The one exact-match exception is
restore --file, which takes a literal in-archive path rather than a pattern. See
per-file selection.)
| Pattern | Matches |
|---|---|
*.log — no / |
A file name, or any single path component, anywhere. |
shadercache/ — trailing / |
Any directory with that name, anywhere. |
Saves/Autosave*/**, **/thumbs/*.png — contains / |
Relative to each save location (for backups) or the restored root (for restores). ** crosses directories. |
A trailing / always takes precedence: a pattern that ends in / is treated as a single
directory name, even if it also contains a / elsewhere. So Saves/Autosave*/ can never
match anything. Write Saves/Autosave*/** to exclude everything under those folders.
Patterns containing a / are also tried against the full absolute path, not just the path
relative to the save location. A leading ./ is an exact-path anchor: ./save.dat ties
that name to the save location it sits in, where a bare save.dat would match the name
anywhere. A pattern that isn’t a valid glob is skipped with a warning in the log, so a typo
can never fail a backup.
Registry ignores (Windows, and Proton hives on Linux) use subtree semantics: an entry ignores itself and everything under it.
Backup exclusions
Section titled “Backup exclusions”Exclusions apply wherever backups are collected: manual, scheduled, wrap, and live
snapshots. There’s a global list, a per-game list, and a built-in recommended preset
of common noise (*.log, logs/, *.tmp, *.dmp, *.mdmp, *.crash, cache/,
caches/, shadercache/, crashes/, crash_reports/, Thumbs.db, .DS_Store). The
preset deliberately leaves out *.bak and *.old, because many games use those extensions
for their own save redundancy; add them yourself if yours don’t.
Exclusions also shape the source-size estimates on the Backup page and the change check that lets scheduled and Smart Backups skip unchanged games, so a file you exclude changing doesn’t trigger a new backup.
In the GUI, Settings → Exclusions holds only the global patterns and the Use Recommended Exclusions toggle. Per-game patterns, and per-game registry ignores, are edited from that game’s row on the Backup page: the Exclusions section for patterns, and the Included/Skipped toggle beside each registry key for ignores. Global registry ignores can only be set from the CLI:
savevault-cli exclusions # show everythingsavevault-cli exclusions list --game "Cyberpunk 2077" # one game's section onlysavevault-cli exclusions recommended --enable # turn on the presetsavevault-cli exclusions add "*.bak" # globalsavevault-cli exclusions add "Screenshots/" --game "Cyberpunk 2077"savevault-cli exclusions add "HKCU\Software\Foo\Telemetry" --registrysavevault-cli exclusions remove "*.bak"The Files tree on the Backup page
Section titled “The Files tree on the Backup page”Each game on the Backup page has a Files section showing exactly what the next
backup would capture — the 9,000-file gameInstall case becomes a glance instead of
post-backup archaeology. Unchecking a file adds an exact-path exclusion to that game’s
per-game list (./slot1.sav for a file directly in a save location, or its relative path
such as nested/slot2.sav for a nested one); it appears as a chip in the Exclusions
editor immediately, and rechecking removes it. Each save location also has a root checkbox
that includes or excludes every file under it at once, and shows a partial state when only
some are included. A file excluded by a hand-written glob shows as unchecked-and-locked with the
winning pattern, editable only in the Exclusions editor.
New files default to included, the only default that can’t lose save data. Because
the checkboxes are the exclusion list, scheduled, CLI, wrap, and GUI backups always
agree.
The CLI twin is backup-preview, which lists excluded files too with the pattern that
excludes them:
savevault-cli backup-preview "Elden Ring"savevault-cli backup --games "Elden Ring" --dry-run # same plan, plus the archive pathChoosing what to restore
Section titled “Choosing what to restore”Per-file selection
Section titled “Per-file selection”The Restore page shows an archive’s file tree with checkboxes, so you can bring back
one save slot without touching the others. From the CLI, list the inventory and pass the
in-archive paths. --file matches each path exactly as list-files prints it (either
slash direction works) and is neither case-insensitive nor a glob:
savevault-cli list-files backup.zipsavevault-cli restore backup.zip --file "data/saves/appData/EldenRing/ER0000.sl2"Registry entries aren’t selectable per key; include or skip them all with
--include-registry / --no-include-registry.
The restore result says how much your choices held back: N skipped by file selection
and N skipped by restore excludes in the app, and N file(s) not in selection (--file)
and N file(s) excluded by restore-exclude glob on the CLI.
One-off excludes
Section titled “One-off excludes”Skip destination paths matching a glob for this restore only:
savevault-cli restore backup.zip --exclude "*.ini" --exclude "screenshots/"savevault-cli restore-batch ~/backups --exclude "*.ini"Persistent restore excludes
Section titled “Persistent restore excludes”Globs applied to every restore of a game, single or batch. Useful for a game whose config you never want overwritten, or a modded install whose loader files shouldn’t come back from an older archive. Always scoped to one game.
savevault-cli restore-excludes add "*.ini" --game "Skyrim"savevault-cli restore-excludes add "SKSE/" --game "Skyrim"savevault-cli restore-excludes list --game "Skyrim"savevault-cli restore-excludes remove "SKSE/" --game "Skyrim"Persistent restore excludes compose with --exclude and with per-file selection. In the
GUI, they’re set in the Restore Excludes section of the Restore page’s detail panel
for the selected game (separate from the Files tree, which drives per-file selection).
Saves vs. configs
Section titled “Saves vs. configs”Independently of all of the above, every archive keeps saves and configs in
separate trees. Restores copy back saves only by default (restore.include_mode, set
under Settings → Restore); any single restore can override with --include configs
or --include both. Scheduled backups include configs by default
(schedule.include_configs).