Platforms
Platform and emulator setup guides.
Use the relevant section below depending on how the game stores achievements locally.
Detailed platform videos
These videos group multiple platform flows in one place.
- Multi-Platform Support covers Steam Official, Xenia, RPCS3, and ShadPS4.
- Multi-Platform Support V2 + Overlay Controller Support covers GOG Galaxy, Ubisoft Connect, EA Desktop, and overlay controller support.
- Epic Games Launcher Support Epic Games Launcher Support setup.
Platforms
Official launcher integrations, online services, and native client flows.
Steam Official
Local stats files, schema resolution, and unlock tracking.
Jump to sectionEpic Games
Library import, manifests, and official achievement polling.
Jump to sectionXbox PC
Microsoft sign-in, PC library import, and Xbox Network sync.
Jump to sectionRetroAchievements
Account library import and read-only achievement polling.
Jump to sectionGOG Galaxy
Gameplay database parsing and auto-generated official configs.
Jump to sectionUbisoft Connect
Spool and log-based official integrations.
Jump to sectionEA Desktop
Log-driven schema generation and official config monitoring.
Jump to sectionEmulators and Helpers
Emulators
Goldberg, Uplay, GOG, Epic, EA, and Games for Windows - LIVE helper-based generation methods.
GSE
Generate Goldberg Steam Emulator configs with Steam account data.
Jump to sectionAchievement Enabler
One auto-detected setup flow for Steam, Ubisoft, Epic, and GOG.
Jump to sectionUplay Goldberg
Steam AppID based schema generation for Ubisoft games.
Jump to sectionUplay LumaPlay
Registry-driven Uplay emulation with local achievement reports.
Jump to sectionXLiveLessNess
Games for Windows - LIVE schema extraction and local unlock tracking.
Jump to sectionGOG UniverseLAN
Global ProductID storage and supported legacy game-local setup.
Jump to sectionNemirtingasEpicEmu
Namespace-based Epic achievement generation and local settings.
Jump to sectionanadius Origin/EA Emu
Origin Helper based config generation for EA/Origin titles.
Jump to sectionConsole Emulators
Xenia, RPCS3, and ShadPS4 native emulator flows.
Platforms
Official launcher integrations, online services, and native client flows.
Steam Official support
-
Add
C:\Program Files (x86)\Steam\appcache\statsto Watched Folders. - Start and play the game through Steam.
- The app reads Steam's local stats files, resolves the schema and images, generates configs automatically, and tracks unlocks.
Epic Games launcher support
- Connect an Epic account in Settings - Advanced and use Import Library.
-
Owned titles with achievements are imported automatically as
epic-officialconfigs. - Local manifests are used to resolve install path, executable, and process name.
- Polling runs only for the detected running Epic game or the selected Epic Official config.
Store images are resolved through Epic metadata first and fall back to SteamGridDB only when needed.
For Epic emulator folders that use an artifact or AppID instead of a namespace, schema generation resolves the related catalog item and namespace before continuing through the normal Epic schema flow.
Xbox PC (Microsoft / Xbox Network) support
- Open Settings - Advanced and select Connect Xbox under Xbox PC (Microsoft / Xbox Network).
- Sign in through Microsoft OAuth with the account used by the Windows Xbox app.
-
Use Import Xbox PC. The app reads
achievement-enabled Windows/PC titles from the Xbox profile,
scans local
XboxGamesand packaged GDK installations, generatesxbox-pcconfigs and achievement schemas, and correlates local executable or AUMID information when available. - Achievement state is refreshed directly from Xbox Network for the selected Xbox PC config, with request throttling and a local cache fallback.
Important notes
- Xbox console-only history is excluded. A title is imported only when Xbox reports a Windows/PC device or its Title ID matches a locally installed game.
- Games delegated to EA App, Ubisoft Connect, or another launcher may not provide Xbox achievements on PC.
- Microsoft refresh tokens and Xbox XSTS sessions are stored encrypted. The app never asks for or stores the Microsoft account password or an Entra client secret.
- The experimental authentication route uses the public desktop OAuth identity published by the OpenXbox Xbox-WebAPI project. This identity is not owned by the Achievements project; Microsoft may restrict or revoke its use, and direct Xbox Network endpoints may still reject requests.
-
xbox-pcconfigs are generated automatically and are not meant to be created manually.
RetroAchievements support
- Open Settings - Advanced and enter your RetroAchievements username and Web API key from the RetroAchievements control panel.
-
Select Connect, then
Import Library. The app creates separate
retroachievementsconfigs and achievement schemas for the account history. - Select a RetroAchievements config in the dashboard to start its API poller. New unlocks received after the initial cached state generate notifications.
Important notes
- This integration uses only the read-only RetroAchievements Web API. It does not scan emulators, ROMs, processes, or local game folders.
- The Web API key is stored with Electron safe storage and is not written as plaintext to preferences or config files.
- Polling runs only for the RetroAchievements config explicitly selected in the UI. It stops when another platform or config is selected, or when the account is disconnected.
- The initial import seeds existing unlocks silently, preventing historical unlocks from producing a notification burst.
GOG Galaxy launcher support
- Install and sign in to GOG Galaxy.
-
Add
%LOCALAPPDATA%\GOG.com\Galaxy\Applicationsto Watched Folders. - Start and play the game via GOG Galaxy at least once.
-
The app resolves local client id to product id mapping, watches
gameplay.db, generates agog-officialconfig, buildsachievements.jsonandachievementpercentages.json, and then monitors later changes.
Important notes
-
gog-officialis auto-generated and not meant to be created manually. -
The config is created only after
gameplay.dbexists and the achievement table is populated and stable. -
If a game has only
Storagedata and noGameplay\<userId>\gameplay.db, the install is detected but config generation waits for the gameplay database. -
Runtime progress is read from
gameplay.dbeven though the saved config points to the concrete gameplay folder.
Ubisoft Connect launcher support
- Install and sign in to Ubisoft Connect.
-
Add
%LOCALAPPDATA%\Ubisoft Game Launcher\spoolmanually to Watched Folders. - Start and play the game at least once so the local spool or cache files exist.
-
The app detects
spool\<userId>\<productId>.spool, generates local schema, rarity sidecar, and images from Ubisoft's local achievements cache, then creates aubisoft-officialconfig automatically.
Important notes
-
ubisoft-officialis generated from a manually watched spool root and is not meant to be created manually. - Config generation waits until both the spool file and local achievement archive are available.
-
The config points to the concrete
spool\<userId>folder while runtime progress is read from<productId>.spool.
EA Desktop launcher support
- Install and sign in to EA Desktop.
-
Add
%LOCALAPPDATA%\Electronic Arts\EA Desktop\Logsmanually to Watched Folders. -
Start and play the game at least once so
EADesktopVerbose.logcontains the achievement set. -
The app generates local schema and images, creates an
ea-officialconfig, and monitors later log changes.
Important notes
-
ea-officialis generated from a manually watched EA Desktop logs root and is not meant to be created manually. - Config generation waits until EA Desktop logs a complete achievement set for the game.
-
The config points to the EA Desktop
Logsfolder; runtime progress is read fromEADesktopVerbose.log. -
The app also reads
EADesktopVerbose.bak, preventing achievement events from being lost when the verbose log rotates.
Emulators
Goldberg, Uplay, GOG, Epic, and EA helper-based generation methods.
GSE
-
Download and extract
generate_emu_config. -
Create
my_login.txtin that folder and save your Steam account as:username password -
Run
generate_emu_config.exe_user.exeand enter the target Steam AppID. - If the account uses 2FA, complete the code prompt when asked.
-
Rename the game's original
steam_api64.dlltosteam_api64.dll.bak. -
Copy everything from
_OUTPUT\appidnext to the renamed DLL. -
Run
gse_generate_interfaces.exeonce, then launch the game. -
In Achievements,
%APPDATA%\GSE Savesis a default watched folder, so the AppID can be detected and the config can be generated automatically.
Achievement Enabler by Roschach96
-
Download the latest
Achievement Enablerrelease and extract the ZIP into a separate working folder. -
For Steam and Ubisoft, rename
dummy_account.txt.exampletodummy_account.txtand enter the credentials for a throwaway Steam account. GOG and Epic do not require this file. - Keep a backup of the extracted release. The setup removes its script-related files from the game folder after it finishes.
- Copy all extracted script files and folders into the game's main folder.
-
Run
_Achievement_Enabler.batand follow the prompts. This is the only script that must be launched.
Account file example
username
password
How the unified setup works
- The script detects the appropriate adapter from the files in the game folder. Steam ColdClient is used as the fallback when no other adapter loader is detected.
- Steam and Ubisoft need their additional adapter asset files. Use the files and version information supplied with the current Achievement Enabler release.
- The setup performs crack-state checks, finds or confirms the Steam AppID, retrieves achievement data, checks launch arguments, generates the platform configuration, exports the game to Achievements, creates a desktop shortcut, and cleans up its temporary script files.
- For Ubisoft Uplay R1/R2, the matching loader and INI files must already be present. If they are missing, setup stops and asks you to apply the required adapter files before running it again.
-
For Steam ColdClient, choose either clean Steam files or the
voices38release flow when prompted. Ifvoices38.dllis already present before setup, the safety check stops and asks for a clean reinstall before retrying. - The generated JokerVerse config includes the detected executable and process information so Achievements can use it for launch, selection, and playtime monitoring.
Uplay Goldberg method
-
Download
Uplay.rar. -
Extract Uplay.rar and copy the Uplay folder into the
generate_emu_configfolder. -
Create
my_login.txtin that folder and save your Steam account as:username password -
Open the
generate_uplay_achievements_from_steam.batfile and run it using the Steam AppID of the Ubisoft title. -
This produces
achievements_schema.jsonfor the Uplay game. -
Copy demde's version of Goldberg Uplay R1 or R2 files and
achievements_schema.jsoninto the game folder and replace the original Uplay DLLs. Check the Uplay R1/R2 ini file for the Achievements configuration to be enabled. -
Start the game if game is using r2 version. Achievements can
auto-detect it from the default watched folder
%APPDATA%\Goldberg UplayEmu Saves. -
Start the game if game is using r1 version. Achievements can
auto-detect it from the default watched folder
%APPDATA%\R1 UplayEmu Saves.
Video demo:
Ubisoft Games with Achievements
Uplay Emus:
R1
R2
Uplay LumaPlay
x86 installation
-
Copy
LumaPlay_x86.exeand theLumaPlayFilesfolder into the game folder. -
Copy the original
uplay_r1.dllfromC:\Program Files (x86)\Ubisoft\Ubisoft Game LauncherintoLumaPlayFilesand rename it toUbiAPI.dll. -
Update the executable name, appid and other settings in
LumaPlay.ini. - Continue with the x64 achievement configuration steps below.
x64 installation
-
Copy
LumaPlay_x64.exeandLumaPlayFilesinto the game folder. -
Copy
uplay_r164.dllfrom the Ubisoft launcher intoLumaPlayFilesand rename it toUbiAPI.dll. -
Update the executable name, appid and other settings in
LumaPlay.ini. -
Configure the
[Achievements]section, for example:[Achievements] GenerateAchievementReportOnExit = 1 NumberOfAchievements = 50 UplayGameID = 1803 Achievement_1 = The Spark - Complete the game intro by liberating Dutch's island (Solo Campaign only). Achievement_2 = You Are Wrath - Be deemed the Sin of Wrath (Solo Campaign only). Achievement_3 = Special Delivery - Ensure a baby's safe passage into this world (Solo Campaign only). Achievement_4 = Only You - Successfully complete the First Trial (Solo Campaign only). ... - In Achievements, enable Settings - Folders - Enable LumaPlay Watcher.
-
Start the game through LumaPlay. The app scans achievement
entries under
HKCU\SOFTWARE\LumaPlay, detects the AppID, and generates a matchinguplayconfig withemu=lumaplaywhen possible.
Important notes
- While enabled, native registry change events trigger achievement refreshes and notifications without repeatedly polling the entire registry tree.
- The LumaPlay registry watcher is Windows-only and starts only while the option is enabled.
- Disabling it stops LumaPlay registry monitoring, but does not disable watched-folder monitoring or normal process detection.
Make sure uplay_r1_loader(64).dll in the main game
folder is as close to the original file as possible.
XLiveLessNess support
- Install and configure XLiveLessNess for the supported Games for Windows - LIVE title. Start the game once if the emulator needs to create its profile data.
- Add the installed game directory in Settings - Folders. You may add the game root or a parent containing the required files within the supported discovery depth.
-
Confirm that one executable directory contains
xlive.dll,<game>.exe, and the matching<game>.exe.cfg. Use Folders - Rescan if the folder was added before these files were installed. -
The app reads the title ID from
<game>.exe.cfgand the executable's embeddedSPAFILEresource to obtain localized achievement names and descriptions, Gamerscore values, and images. -
A local
xlivelessnessconfig and schema are generated. The executable and process names are saved for launch, process detection, auto-selection, and playtime. -
Unlocks are read from each matching
<profile>\achievements.datbelowXLiveLessNess\profile\title\<TITLEID>.
Expected game-side layout
<Game folder>\
└─ <executable directory>\
├─ xlive.dll
├─ <game>.exe
└─ <game>.exe.cfg
Important notes
- Discovery and SPAFILE/schema processing run asynchronously and are shown in the standard generation progress rail.
-
achievements.datis not required during initial config generation. The adaptive watcher attaches after XLiveLessNess creates the profile or title path. -
The default
%LOCALAPPDATA%\XLiveLessNessroot and game-local XLiveLessNess roots are monitored adaptively. A custom storage root can also be added in Settings - Folders. -
When process command-line detection is available,
-xllnconfig=<path>is resolved and its containing directory is added automatically as another state root. - Multiple executables for the same title ID are stored as process-name alternatives in one config. Profiles keep separate baselines to prevent false notifications when switching users.
- Schema languages follow Settings - Advanced - Achievements Schema Languages when the embedded SPAFILE contains those localizations.
- The app reads the installed executable, title config, and achievement state without modifying game or emulator data.
GOG UniverseLAN
Current global storage layout
-
Install and configure UniverseLAN so its game data is stored
under
%LOCALAPPDATA%\UniverseLAN. -
Keep each game in an immediate ProductID directory:
%LOCALAPPDATA%\UniverseLAN\<ProductID>. -
Runtime progress must be available at
%LOCALAPPDATA%\UniverseLAN\<ProductID>\UniverseLANData\Achievements.ini. -
The default watched root is treated as a strict GOG source. The
app maps each immediate ProductID directory to a GOG config and
monitors its
Achievements.inifile.
Legacy game-local setup
Existing game-local UniverseLAN installations remain supported. Keep this setup if the game already works with the legacy layout.
-
Check which
galaxy64.dllversion the game uses, download the matching UniverseLAN build, and extract it into the game folder. -
Run
UniverseLANServer64.exe, keep it open, and then launch the game executable. -
The legacy installation generates local achievements in
<gamefolder>\UniverseLANData\Achievements.ini. -
Add the game folder to Watched Folders. Legacy
discovery continues to use
UniverseLAN.inito identify and generate the config.
NemirtingasEpicEmu
- Open egdata.app and copy the game's Namespace.
-
Extract and run
fetch_epic_achievements.bat. -
Copy the generated
achievements_db.jsonand achievement images intonepice_settingsnext toEOSSDK-Win64-Shipping.dll. -
Edit
NemirtingasEpicEmu.jsonand replace theAppIdwith the Namespace. -
Create a
Launcher.txtfile next to the game executable, put this content inside it, then rename the file to.bat:
Change the values for the target game:@echo off cd /d "%~dp0" start /b "Alan Wake 2" "AlanWake2.exe" -AUTH_LOGIN=unused -AUTH_PASSWORD=cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd -AUTH_TYPE=exchangecode -epicapp=c4763f236d08423eb47b4c3008779c84 -epicenv=Prod -EpicPortal -epicusername="Player" -epicuserid=4340353b292a150000e7d9b5a47b6343 -epicsandboxid=c4763f236d08423eb47b4c3008779c84 -epiclocale=enAlan Wake 2is the window title,AlanWake2.exeis the game executable name, andepicappplusepicsandboxidmust use the Namespace taken fromegdata.app. -
Add
%APPDATA%\NemirtingasEpicEmuto Watched Folders. The app can detect the Namespace and generate the config automatically.
anadius Origin/EA Emu
-
Get anadius Origin emulator tools, including
example config + tools.7zandget_token.exe. - Install the Tampermonkey browser extension.
-
Drag
Origin Helper.user.jsfromexample config + toolsinto Tampermonkey. -
Open
ea.com, click Origin Helper in the top-left area, then click Generate emulator config. -
Select the game's
__Installer\installerdata.xml. -
Check these options:
Use default portAdd Content sectionAdd placeholder EntitlementAdd achievements
-
In a new tab open
https://isthereanydeal.com/and search for the game. -
Open the game page, scroll to or search for
Products, find the EA Store entry, and copy the
Origin.OFRid. - Paste that id into the Origin Helper field and click Continue.
- Run EA App, sign in, then run
get_token.exe. -
Copy the four output lines from
get_token.exe: access token, username, user ID, and persona ID. Paste them into Origin Helper and click Continue. -
On the next screen, open the SteamDB link in a new tab, go to
the Achievements page, press
F12, and paste this into the console:copy(document.documentElement.outerHTML) - Paste the copied HTML into the Origin Helper field. After the achievements show up as Green Fields, click Continue.
-
Save
anadius.cfgand copy it together withanadius32.dlloranadius64.dllinto the game folder next togame.exe. -
Add
%LOCALAPPDATA%\anadius\LSX emu\achievement_watcherto Watched Folders. The app can detect the AppID and generate the config.
Console Emulators
Xenia, RPCS3, and ShadPS4 native emulator flows.
Xenia-Canary support
- Open Xenia and create a user profile.
-
Add the generated
Xenia\Content\xxxxxx\xxxx\xxxx\xxxxxxpath to Watched Folders. - Start and play the game.
- The app reads the generated file, fetches game name, schema, and images, auto-generates the config, and shows notifications on new unlocks.
RPCS3 support
-
Add
RPCS3\dev_hdd0\home\xxxxxxx\trophyto Watched Folders. - Start and play the game.
- The app reads trophy files, fetches schema and images, generates configs automatically, and shows notifications on unlock.
ShadPS4 support
-
Add the ShadPS4 root folder:
%APPDATA%\shadPS4. - Start and play the game so ShadPS4 creates trophy schema and user progress files.
-
The app reads schema from
%APPDATA%\shadPS4\trophy\<NPWR>\Xml, copies icons from%APPDATA%\shadPS4\trophy\<NPWR>\Icons, and reads progress from%APPDATA%\shadPS4\home\<userId>\trophy\<NPWR>.xml. - Local ShadPS4 logs or legacy data are used to map NPWR trophy IDs to CUSA game IDs when that mapping is available.
- All local user progress XML files for the selected game are monitored so user switches are detected automatically.
Important notes
- Modern ShadPS4 storage is preferred when both modern and legacy layouts exist.
-
Legacy storage under
%APPDATA%\shadPS4\game_data\<CUSA>\TrophyFiles\trophy00is still supported. - If multiple users exist, achievement caches are scoped per user.