Save layouts
A save layout tells Save Override what counts as a save for a game: which files belong to a save, how they group into slots, and how one save is told apart from the next. Auto-discovery writes this for most games, so you’ll never see it. You need this guide for the exceptions — a game Save Override got wrong, or one it doesn’t know yet and you want to teach it.
Layouts are crowd-sourced. When you fix one, you can share it, and everyone with that game gets your fix.
Author it in the app
You don’t hand-edit files on disk. Save Override has a built-in layout editor: a structured form on the left, the raw YAML in the middle, and a live preview on the right that shows exactly which files your layout matches on your machine. Edit either side — they stay in sync — and click Save.
The form covers what most layouts need — how saves are found, what gets captured, and how each one is named (including pulling a name out of a filename with a pattern). A few advanced touches live only in the YAML pane: a screenshot that rides along with its save, files that aren’t always there, a clause that only applies on one OS. Open a layout that uses one and the form switches to read-only, with the YAML pane as the place to edit it.
Not sure what a section does? Turn on Explain values and the editor writes a plain-English note above each part.
Two ways in:
- Edit layout — on a game’s detail screen, when an existing layout needs fixing.
- Author a layout — on the Add Game screen, when you’ve found a game’s install but no layout exists for it yet.
Save publishes your layout as a proposal and switches the game to use it — you’ll see a Custom layout badge. That proposal is also how your fix gets shared back and folded into the catalog.
One limit: a game that isn’t in Save Override’s catalog at all can’t be authored in the app yet. The cookbook below still shows you the shape a layout needs.
Screenshot — The layout editor: structured form on the left, YAML in the middle, a live preview of matched files on the right.
Alt: the two-pane Save Override layout editor, form and YAML side by side, with a live filesystem preview listing the files the layout matches.
Cookbook
Find the structure closest to your game and copy it. Paste the YAML into the editor’s YAML pane, then change the path to match where the game lives on your machine. Placeholders like {APPDATA} are spelled out in the Save locations guide.
A single save file
Your game if: it keeps everything in one file — or one folder it never splits into slots.
path:
file: "{APPDATA}/MyGame/save.dat"
platform: [windows]
save_layout:
discover: singleton
singleton means the whole thing is one save. For a game that uses a single folder instead of one file, swap file: for dir: and point it at the folder.
One file per save slot
Your game if: each save is its own file in a single folder — user1.dat, user2.dat, and so on. (This is how Hollow Knight stores its slots.)
path:
dir: "{APPDATA}/Hollow Knight"
platform: [windows, linux]
save_layout:
discover:
files: "user*.dat"
files with a glob makes every matching file its own save, so each slot keeps its own history.
Numbered profile folders
Your game if: saves live in a per-account folder, and only some of the files inside are the real save. (This is Elden Ring: a Steam-ID folder holding numbered profiles, each with .sl2 save files.)
path:
dir: "{APPDATA}/EldenRing/{USER_ID:STEAM}"
platform: [windows]
save_layout:
discover:
dirs:
regex: "^[0-9]+$"
payload:
- files: "*.sl2"
{USER_ID:STEAM} fills in your Steam account folder. dirs with a regex treats each numbered folder as a save, and payload narrows what’s captured to the .sl2 files.
Screenshot — The live preview confirming the layout above: the numbered profile folders show up as discovered saves, with their
.sl2files listed as the captured payload.Alt: the layout editor’s live preview pane listing numbered profile folders as matched saves and their
.sl2files as payload.
A save plus its screenshot
Your game if: every save is a file paired with a matching file of the same name — a screenshot or metadata file. (This is The Witcher 3: each .sav has a .png thumbnail beside it.)
path:
dir: "{MY_DOCUMENTS}/The Witcher 3/gamesaves"
platform: [windows]
save_layout:
discover:
files: "*.sav"
payload:
- subtree
- sibling_files_same_stem: "*.png"
sibling_files_same_stem pulls in the file that shares the save’s name (Quicksave.sav → Quicksave.png), so the screenshot travels with the save.
Reference
When an example isn’t quite enough, these pages cover every layout feature in detail.
Discovering saves
How a layout finds the individual saves under a game's save folder — one save, named files and folders, or glob and regex matches.
Payload, trigger, and ignore
Pick which files get captured in each save, which changes start a snapshot, and what to leave out entirely.
Names and continuity
How each save gets its display name and its stable identity across snapshots — and the defaults you usually don't need to touch.