Settings reference
Every knob in Recall, what it does, and when to touch it. Recall has two configuration surfaces:
- Settings (01) — everything you set up. Folders, Tesseract, theme, calendar, backup + restore, plus a collapsible Advanced section for power-user controls.
- Parse (02) — the operational tab. Watch Folder toggle + the Run Parse button. That's the whole tab — nothing to configure here.
Persistence: every setting saves to the active profile's
settings.json (see How it works → Where things live on disk)
the moment you change it. No "Save" button. Switching profiles via
the masthead chip loads a different settings.json — so each
profile has its own screenshots folder, Tesseract path, toggle
states, etc.
The one exception is the window's size and position, kept in
window.json next to the profiles folder rather than inside one.
Which window you like has nothing to do with which profile you are
looking at, so switching profiles does not move or resize the window.
Settings tab
The numbers are the ones on screen. Two sections are documented elsewhere rather than here — 05 / Profiles in How Recall works and 08 / Coaching further down this page — and 07 / Window is two rows whose labels say what they do: what closing the window does, and a reset for the window's size and position.
01 / Directories
Screenshots Folder
The folder Recall watches for new Overwatch screenshots.
On Windows, the first-run Settings hero presents a 2 × 2 card grid naming each canonical capture source. Click a card with a green "found" dot and that folder becomes the watch directory in one step; cards with a gray "not found" dot are read-only and tell you which path Recall expected for that source so you can configure your capture tool to write there. A Pick a different folder… tile under the grid opens the native folder picker for everything else.
| Card | Path expansion | Filename shape |
|---|---|---|
| Nvidia Overlay | %USERPROFILE%\Videos\NVIDIA\Overwatch 2 |
Overwatch 2 Screenshot YYYY.MM.DD - HH.MM.SS.ff.png |
| OW PrntScn default | %USERPROFILE%\Documents\Overwatch\ScreenShots\Overwatch (and the OneDrive variant) |
ScreenShot_YY-MM-DD_HH-MM-SS-fff.jpg |
| Win Snip tool | %USERPROFILE%\Pictures\Screenshots (and the OneDrive variant) |
Screenshot YYYY-MM-DD HHMMSS.png |
| Steam install | <SteamInstall>\userdata\<id>\760\remote\<OW-app-id>\screenshots (resolved via the HKCU\Software\Valve\Steam registry) |
(Steam's own F12 captures) |
Once a folder is set, the steady-state Settings row exposes Reveal (opens the folder in your OS file manager), Detect (re-runs the legacy single-best-path probe), Change… (native picker), and Reset (clears the folder and re-shows the picker grid). You can point Recall at any directory — useful if you keep screenshots in a synced folder (Dropbox, OneDrive, iCloud Drive) or want to feed it screenshots from a friend's matches. Changing the folder while Watch Folder is armed restarts the watcher against the new directory; no manual restart needed.
Data Location
Read-only paths showing where Recall stores its database and
settings.json on this machine. Each path has a Copy button;
in the desktop app, Open opens the directory in your OS file
manager.
02 / Engine
Tesseract Binary
Path to the Tesseract OCR binary Recall shells out to. The status row underneath shows:
- Detected (green) + version + path: Recall found a working Tesseract. You're good.
- Not Found (red) + the OS error: Recall looked at the default install path for your OS and didn't find anything. Click Locate Tesseract… to point it at the real binary.
Recall auto-detects the UB-Mannheim default on first launch:
C:\Program Files\Tesseract-OCR\tesseract.exe.
Version compatibility: Tesseract 5.x is the supported series. Versions 3.x and 4.x predate the Overwatch post-match font and misread "ELIMINATIONS" / "ASSISTS" / "DEATHS" reliably. Recall shows an amber "not officially supported" warning under the status row when it detects 3.x or 4.x — parsing still runs but you'll see lower accuracy.
If your install path has drifted, the Use default link under the path row resets to the default in one click.
03 / Appearance
Theme
Two preview cards: Day (light palette, cream + brand orange) or Night (dark palette, off-black + brand orange). Click a card to apply; the active card shows an orange ring. Recall remembers the choice across launches.
Live session banner
Off by default. Turned on, a thin rail sits under the masthead while you are playing: the rank you are on, and what the running session has done to it — games, W-L, and the meter movement when the rank pills were readable.
It is off by default on purpose. The Matches tab already tallies the session in four places; the rail exists because it follows you onto every tab and because it carries the rank, which none of the others do. Dismissing it dismisses that session — the next game does not bring it back — and it says "No rank read" rather than printing a tier it never saw.
04 / Calendar
First Day of Week
Anchors the Week of … headers on the Matches tab when you group by week. Seven-cell grid (S / M / T / W / T / F / S). The selected cell fills orange; a caption underneath spells it out ("Weeks begin on Sunday") so the two-T / two-S ambiguity is always resolved. Matches the cultural default in your region:
- US, Canada, Japan: Sunday
- Most of Europe + ISO 8601: Monday
- Middle East: Saturday
Doesn't change which matches appear in which week — Recall calculates the week boundary from this setting, so a Tuesday match shows up under either "Week of Sunday Jan 12" or "Week of Monday Jan 13" depending on what you picked.
06 / Backup & Restore
Export Data
Download a portable backup of every parsed match. Two formats:
- JSON — the canonical Recall format. Smallest, round-trips losslessly through Import. One file.
- CSV — a ZIP archive of one CSV per database table, for opening in Excel / Google Sheets.
Settings and screenshots aren't included — only parsed match records. A confirmation chip flashes the save path once the export completes.
Import Data
Restore a previously-exported backup. JSON and CSV (the same ZIP format Export emits) both work — Recall sniffs the content type automatically.
Two-step confirm: clicking Import Backup… arms the action and turns the row's stripe red, then Choose File… opens the file picker. Replaces the current database — local matches that aren't in the backup will be lost. Cancel button next to it backs out without touching anything.
09 / Roster
The people you queue with. A BattleTag you save here shows up as the name you gave it wherever you tagged that person, and completes as you type in a match's Group field. The optional note is for anything worth remembering ("main tank, Tuesdays").
Removing somebody stops showing their name. It does not touch the matches they played on — the tag stays exactly where you put it, and the roster is only a lookup over it.
10 / Advanced
A collapsible section, closed by default. Contains power-user controls most players never need to touch.
Clear Parse Database
Permanently delete every parsed match record from the local SQLite database. Settings and the screenshots folder are untouched — you can re-parse at any time to rebuild from scratch.
Two-step confirm (the button label changes to Delete N Records in red after the first click). Cancel button next to it to back out.
When to use:
- You want a fresh start.
- A parser upgrade meaningfully changed how fields are extracted and you'd rather re-parse everything than live with mixed-version rows.
- You're sharing a screenshot bug with the maintainer and want a clean reproduction.
When NOT to use:
- You think Recall is showing stale data. The right move is Parse → Run Parse (which re-reads any unparsed screenshots) — not a full wipe.
- You think a single match record is wrong. Re-capture the SUMMARY and PERSONAL screens for that match into the folder; Recall will merge them into the existing record without duplicating it.
Re-parse All Screenshots
Re-runs Tesseract OCR on every PNG / JPG in the watched folder, including files already in the database. Use after a Recall release that tightens hero/map matching — for example the short-name fuzzy fix that stopped Miyazaki from being silently attributed to Mei — to retroactively correct older records. Two-step confirm (button flips to Confirm re-parse for 6 seconds; Cancel backs out).
Screenshots another profile parsed first stay skipped: re-parse reads only what belongs to this profile, plus anything nobody has parsed yet. To bring another profile's screenshots over, use Move them here… on the Parse tab.
Annotations, queue and play-mode overrides, hidden flags, and
reviews all key on match_key (which is timestamp-derived and
stable) so they survive the re-parse — only the parsed hero / map /
mode / stats are rewritten.
Estimated time: ~1 second per screenshot. The masthead Parse indicator + status bar mirror the activity in real time; nothing else changes while it runs.
When to use:
- When the Parse tab says so. Every record is stamped with the parser version that read it, so Recall can count the ones an older parser produced and tell you: "14 matches were read by an older parser." That line is the reliable trigger — it appears exactly when a re-parse would actually change something, and disappears when it would not.
- After upgrading Recall to a version whose release notes mention a parser tightening or YAML roster update.
- After the new Reference data gaps section on the Unknown tab surfaces records the latest release can now resolve.
08 / Coaching
Your coach name
Signs the notes you write while reviewing another player's bundle, and names you on the file they get back. Notes cannot be exported until it is set — an unsigned review gives the player no way to tell two coaches apart.
Only used when you are the one reviewing. Nothing about being coached needs it.
Your player handle
The name your coach sees when you share matches with them. It is filled in from the last time you shared, so the share dialog stops asking — and it is what a coach who reviews you twice files both sessions under.
Changing it does not orphan an earlier review: the bundle also carries a permanent id for you, and that is what the coach's notes are keyed on.
See Reviews for reviewing yourself, getting coached, and coaching someone.
Parse tab
Watch Folder
Auto-parse new screenshots as they appear in the screenshots folder. Big switch — Off by default, Armed when on. Disabled (greyed out) when Tesseract is not detected.
Behavior when armed:
- Recall registers a filesystem watch on the screenshots folder.
- When a new
.pngor.jpglands, Recall starts a 60-second timer. Every subsequent new file resets the timer. - After 60 seconds of silence, Recall runs Parse against all new files in one batch.
The debounce window matches a typical post-match capture session (SUMMARY → TEAMS → PERSONAL × hero count, ~5–15 seconds of tabbing). The whole batch lands as one match record instead of several "partial-data" rows.
Run Parse
Big primary button. Same parse logic as the watcher but on demand — useful if you just dragged screenshots into the folder from another machine, want to re-parse after upgrading Tesseract, or simply prefer not to leave the watcher armed.
The button shows the count of new screenshots in the folder (Run Parse · 5) and disables itself when there's nothing new to parse. Re-running it against the same screenshots is idempotent — Recall stores which files it's already seen, so duplicates don't create duplicate matches.
Screenshots another profile already parsed don't count: each screenshot belongs to the first profile that parses it, and every other profile skips it. When the folder holds some, an Other profiles' screenshots row says how many and offers Move them here…. Confirming (Confirm move) moves those screenshots and every match built from them into this profile, out of the one that had them. If their matches were already gone, the row asks you to run Parse to read them.
The status line below shows either:
- Last run · X ago · N records on record — when there are no new screenshots to process.
- All screenshots already parsed — nothing new in the folder. — same idea, sterner.
- All new screenshots parsed — N parked after repeated failures. — the only files left are ones OCR gave up on after three failed attempts; they no longer count toward the button. Retry them from the Unknown tab's Failed to read section, or re-attempt everything with Re-parse all screenshots.
- N parked after repeated failures — retry from the Unknown tab. — the same note as an extra line while new files are also waiting.
- Blocked — needs Tesseract. — Engine row needs fixing first; click Fix in Settings → to jump to Settings → Engine.
While parsing, the button reads Parsing… and a progress panel expands under the row showing per-file status. Click the chevron to collapse it down to a single progress bar.
Updates & game data
Recall ships two parallel update channels — the binary itself, and the reference data the parser uses (hero roster, map roster, capture-tool filename grammars). The data files travel separately from the app so a new hero added in a roster patch can land in your install the same day, without waiting for a Recall release.
Check for updates (About Recall)
Open About Recall from the ⋮ menu (or click Check now on the reminder banner below). Opening it queries GitHub's releases API and the project's GitHub Pages live-data channel in parallel, then shows the result in two sections.
Recall app — shows the running version vs the latest release.
The first ~500 chars of the release notes render inline. On an
installed Windows release, Install update downloads the new build,
checks it against the release's SHA256SUMS and against its .sig
signature from Recall's release key, stages it, and then offers
Restart now to apply. Recall never updates itself without that
click. If the release fails those checks, the dialog shows Update
not installed and changes nothing: don't install that release by
hand; wait for the next release, or check the project's
Security advisories
page. Open release page takes you to the full GitHub release page,
and is the only path on a development build or on a legacy machine-wide
install Recall can't write to.
Game data — shows what's different between the rosters bundled
into your binary, anything you've previously applied, and the live
main channel published at
https://sound-barrier.github.io/recall/data/. The header line
spells out the comparison frame ("MAIN @ abc1234 · 14 d ago →
MAIN @ def5678 · just now"), the headline gives a count
("3 NEW · 1 RETIRED"), and the diff manifest lists every changed
hero / map / source name with a + (added) or − (removed) sign.
Update game data downloads the three YAMLs + per-file SHA-256
sidecars, verifies each, atomically writes them under
<RECALL_DATA_DIR>/data/, and triggers an in-process parser
reload so new heroes/maps are recognized immediately. No restart
needed. The button is disabled when game data is already current;
the modal shows MAIN UNREACHABLE when GitHub Pages is blocked
or down.
Applied state writes to <RECALL_DATA_DIR>/data/manifest.json so a
future Check for updates can show "MAIN @ abc1234 · 2 d ago" in the
freshness header. Embedded YAML stays in the binary as a safety net
— if a downloaded file is ever corrupted, the parser falls back to
the embedded version on next launch.
Note: Recall does not ship a release-channel YAML apply path. If you want the YAMLs that were bundled with a specific Recall release, upgrade the Recall binary — same bytes, simpler model.
"Haven't checked in a while" banner
If you've never run a check, or your last successful check was more than 90 days ago, a slim banner appears above the tab nav saying Update check overdue with a Check now button and a dismiss ×. Dismissing snoozes the banner until the next 90-day cycle (or until you run a check yourself, which resets the timer). The cadence is a code constant — not user-tunable — chosen so a quiet install gets nudged roughly twice a season.
Where applied YAMLs live
<RECALL_DATA_DIR>/
data/
heroes.yaml # applied override (release or main)
heroes.yaml.tmp # only present during an in-flight apply
maps.yaml
maps.yaml.sha256 # local copy of the verified sidecar
screenshot_sources.yaml
manifest.json # applied tag/commit + per-file SHA-256
check_state.json # {"last_checked_at": "RFC3339"}
Delete the data/ directory or manifest.json to revert to the
binary's embedded roster. Recall reads it back into memory on next
launch; no restart of the parser pipeline needed.
Steam install path (auto-correlation works on all supported sources)
The four canonical capture sources Recall auto-detects on Windows —
Nvidia Overlay, OW PrntScn default, Win Snip tool, and Steam install
— all parse end-to-end. Steam's in-game F12 captures
(YYYYMMDDHHMMSS_N.jpg) folded in alongside the other three in
mid-2026; nothing extra to configure.
Sidebar version block (masthead, lower-right)
Not strictly a "setting" but worth knowing about:
- The version chip shows the running Recall version (or
vX.Y.Z-devon builds from source). - Updates are checked from About Recall in the ⋮ menu, not from a separate button — see Updates & game data above. There's no silent on-mount network call.
Next chapter
- Slice your match history: Filtering and grouping
- Triage parse failures: Unknown screenshots