Setup
First-run flow, manual setup, and auto configuration.
This page reorganizes the main onboarding and configuration steps
into a shorter flow users can follow without reading the full
project README.
Video walkthroughs
Use these when the written steps are not enough.
-
First Run
covers the first boot flow and initial setup.
-
Controller Support
includes a Dashboard introduction and controller navigation.
-
Manual Config
shows the manual configuration flow.
-
Auto Config
shows watched folders, detection, and automatic config
generation.
Quick start
-
Download the Windows installer from
GitHub Releases, install Achievements, and open the application. Node.js and Git
are needed only when running the project from source.
-
Open Settings and choose a preset and scale.
-
Add Watched Folders so the app can discover save
or emulator folders.
-
Start the game once so its save folder or local achievement files
exist.
-
Let the watcher auto-create a config when possible, or create the
config manually.
-
Select the config and choose the language to view achievements,
progress, and playtime.
-
Optionally mute progress notifications for the active config.
Open an existing config from the command line
Pass both the AppID and platform to the installed or unpacked
executable to open an existing config directly:
Achievements.exe --appid=239140/steam
Achievements.exe --appid=239140 --platform=steam
- Both formats are supported and equivalent.
-
If Achievements is already running, the existing instance opens
and navigates to the matching config.
-
AppID and platform must exactly match an existing config. These
arguments do not generate a config or launch the game.
-
Supported platform values are the same values listed in the
Config JSON reference below.
First-run onboarding
-
On first run, or after the onboarding version changes, the
welcome dialog offers Restore from Backup and
Set Up as New Device.
-
Restoring opens the profile backup flow. Setting up a new device
continues to folder selection before the full automatic scan
begins.
-
In folder selection, Back returns to the welcome
dialog without completing onboarding.
-
The app searches for known achievement signals such as
achievements.json, achievements.ini,
stats.bin, trophy files, and emulator progress
files.
-
Start Auto-Config keeps selected folders active
and mutes unchecked discovered folders.
-
Skip and mute all continues startup immediately
and mutes the discovered or default auto-config roots.
-
Folder watchers and boot auto-config scans remain deferred while
onboarding is pending, preventing unwanted config generation.
-
Onboarding state is stored in
%APPDATA%\Achievements\preferences.json using
autoConfigOnboardingCompleted,
autoConfigOnboardingVersion, and
autoConfigOnboardingCompletedAt.
-
If startup is still gated but the modal is hidden, use tray
action Resume Startup (Mute all).
Achievements files generation
Auto-configuration follows a defined Steam lookup order depending
on whether a Steam Web API key is stored in Settings.
-
With a key, the app tries the Steam Web API
GetSchemaForGame endpoint first, followed by
GetGameAchievements.
-
Without a key, it tries Schema Parse, the public Steam
achievement JSON, SteamCommunity, and then SteamDB.
-
SteamCommunity supplies achievement IDs, text, color and gray
icons, and available translations directly, without opening a
browser.
-
Exophase can add translations when needed. If a requested
translation is unavailable, the app falls back to English.
-
Sources used when available include Steam Web API, Schema Parse,
SteamCommunity, SteamDB, Exophase, GOG, and Epic.
Manual configuration
Create a config with the following fields:
- Name: your preferred identifier.
-
AppID: Steam AppID or folder identifier used
for the game.
-
Config Path: folder containing
achievements.json and img/, or leave
empty to generate it.
-
Save Path: location of progress or save data.
-
Executable and Arguments:
optional launch settings.
-
Process Name: optional explicit process name to
monitor.
Names are sanitized before saving, and that sanitized value is
used on disk and for playtime totals.
Config JSON reference
appid – game id.
-
platform – one of steam, steam-official, uplay,
ubisoft-official, ea-official, epic, epic-official, gog,
gog-official, xbox-pc, retroachievements, x360recomp,
ps3recomp, ps4recomp, pcports, xenia, rpcs3, shadps4, kytyps5,
markerpatch, madnesspatch, or xlivelessness.
-
config_path – folder that contains
achievements.json and image assets.
-
save_path – folder containing the local file or
files where unlocked achievement state is saved. This is the
achievement progress location, not necessarily the game's
normal save-game folder.
-
process_name – executable name used for process
tracking.
-
executable / arguments – optional
launch metadata.
If config_path points to a custom location, schema
regeneration and cleanup will not overwrite that folder.
pcports, x360recomp,
ps3recomp, ps4recomp, and
kytyps5 configs are generated from supported folders
through watched-folder discovery and Rescan. They
are not intended for manual creation from the platform selector.
Auto configuration
Auto-config works best when the app can scan watched folders
regularly.
-
Add one or more Watched Folders that contain
emulator data, save folders, or launcher caches.
- The app detects app ids and resolves the platform.
-
It fetches the game name, schema, achievement data, and images
when sources are available.
- It generates configs automatically.
Default watched folders
- %PUBLIC%\Documents\Steam\CODEX
- %PUBLIC%\Documents\Steam\RUNE
- %PUBLIC%\Documents\OnlineFix
- %PUBLIC%\Documents\EMPRESS
- %APPDATA%\Goldberg SteamEmu Saves
- %APPDATA%\Goldberg UplayEmu Saves
- %APPDATA%\R1 UplayEmu Saves
- %APPDATA%\GSE Saves
- %APPDATA%\NemirtingasEpicEmu
- %APPDATA%\EMPRESS
- %LOCALAPPDATA%\anadius\LSX emu\achievement_watcher
- %APPDATA%\Steam\CODEX
- %APPDATA%\SmartSteamEmu
- %LOCALAPPDATA%\SKIDROW
- %LOCALAPPDATA%\UniverseLAN
Goldberg UplayEmu Saves and
R1 UplayEmu Saves use the Uplay-to-Steam mapping
while retaining the original Uplay AppID and schema storage.
%LOCALAPPDATA%\UniverseLAN is treated as a strict GOG
root; see the UniverseLAN platform guide for its layout.
RUNE Ubisoft Connect saves
This integration is optional and must be added as a watched
folder manually.
-
Open Settings - Folders and add either
%USERPROFILE%\Documents\RUNE\Ubisoft Connect or its
achievements subfolder.
-
Start the game once so RUNE creates
<root>\achievements\<UserID>\<Uplay
AppID>\achievements.cfg.
-
Use Folders - Rescan if the config is not
generated immediately.
Achievements sends this file through the existing Uplay schema
and AppID mapping flow. The sibling savegames tree is
ignored. This location is intentionally absent from the default
watched-folder list, so adding it manually is required.
Folder rescan and blacklist
-
Folders - Rescan opens a modal containing the
active watched folders. Use Select All or
Deselect All, then scan only the selected roots.
-
Ignored folders and nested ignored folders remain excluded even
when their parent watched folder is selected.
-
Rescan does not clear the folder ignore list or the AppID
blacklist.
-
Ignoring a configured game uses its AppID and platform identity,
so the same AppID on another platform can remain active.
-
Settings - Advanced - Add Blacklisted AppIDs
accepts multiple AppIDs, including incorrectly detected user
IDs. Separate values with commas, spaces, or new lines.
-
Reset Blacklist removes global and
platform-specific blacklist entries without removing watched
folders or rescanning unrelated configs.
-
Automatic emulator discovery records confirmed missing IDs
separately for Steam, Uplay, GOG, and Epic. A generic scan skips
only the blacklisted provider and continues trying the other
applicable providers; a known source skips its own blacklisted
ID directly.
-
When a game is identified successfully but the provider
confirms that it has no achievements, discovery stops for that
game and its AppID is blacklisted only for the identified
platform.
-
A network, authentication, parser, or other technical failure
is not treated as proof that an AppID is invalid or that the
game has no achievements. Ambiguous identification is also not
a confirmed negative result.
-
An AppID becomes globally blacklisted only when every
applicable provider returns a confirmed negative result, with
no technical failures, ambiguity, or previously identified
game.
-
Automatically recorded lookup reasons are removed together
with their blacklist entries. Legacy entries that have no
recorded reason are never used as evidence for creating a
global blacklist entry.
Steam emulator progress files
-
Online-Fix unlock state comes from
Achievements.ini. Stats.ini supplies
only mapped achievement progress and progress notifications.
-
An empty Online-Fix
Stats.ini remains monitored. It
does not unlock achievements or clear the current cache; later
stat values are applied when written.
-
Tenoke reads unlock state and stats from
user_stats.ini. Stats map to schema progress rules
through the achievement operand1 value when
available.
-
Stats never unlock achievements by themselves. The emulator's
achievement state remains the source of truth.