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.

Platforms

Official launcher integrations, online services, and native client flows.

Emulators and Helpers

Emulators

Goldberg, Uplay, GOG, Epic, EA, and Games for Windows - LIVE helper-based generation methods.

Console Emulators

Xenia, RPCS3, and ShadPS4 native emulator flows.

Platforms

Official launcher integrations, online services, and native client flows.

Steam Official support

  1. Add C:\Program Files (x86)\Steam\appcache\stats to Watched Folders.
  2. Start and play the game through Steam.
  3. The app reads Steam's local stats files, resolves the schema and images, generates configs automatically, and tracks unlocks.

Epic Games launcher support

  1. Connect an Epic account in Settings - Advanced and use Import Library.
  2. Owned titles with achievements are imported automatically as epic-official configs.
  3. Local manifests are used to resolve install path, executable, and process name.
  4. 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

  1. Open Settings - Advanced and select Connect Xbox under Xbox PC (Microsoft / Xbox Network).
  2. Sign in through Microsoft OAuth with the account used by the Windows Xbox app.
  3. Use Import Xbox PC. The app reads achievement-enabled Windows/PC titles from the Xbox profile, scans local XboxGames and packaged GDK installations, generates xbox-pc configs and achievement schemas, and correlates local executable or AUMID information when available.
  4. 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-pc configs are generated automatically and are not meant to be created manually.

RetroAchievements support

  1. Open Settings - Advanced and enter your RetroAchievements username and Web API key from the RetroAchievements control panel.
  2. Select Connect, then Import Library. The app creates separate retroachievements configs and achievement schemas for the account history.
  3. 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

  1. Install and sign in to GOG Galaxy.
  2. Add %LOCALAPPDATA%\GOG.com\Galaxy\Applications to Watched Folders.
  3. Start and play the game via GOG Galaxy at least once.
  4. The app resolves local client id to product id mapping, watches gameplay.db, generates a gog-official config, builds achievements.json and achievementpercentages.json, and then monitors later changes.

Important notes

  • gog-official is auto-generated and not meant to be created manually.
  • The config is created only after gameplay.db exists and the achievement table is populated and stable.
  • If a game has only Storage data and no Gameplay\<userId>\gameplay.db, the install is detected but config generation waits for the gameplay database.
  • Runtime progress is read from gameplay.db even though the saved config points to the concrete gameplay folder.

Ubisoft Connect launcher support

  1. Install and sign in to Ubisoft Connect.
  2. Add %LOCALAPPDATA%\Ubisoft Game Launcher\spool manually to Watched Folders.
  3. Start and play the game at least once so the local spool or cache files exist.
  4. The app detects spool\<userId>\<productId>.spool, generates local schema, rarity sidecar, and images from Ubisoft's local achievements cache, then creates a ubisoft-official config automatically.

Important notes

  • ubisoft-official is 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

  1. Install and sign in to EA Desktop.
  2. Add %LOCALAPPDATA%\Electronic Arts\EA Desktop\Logs manually to Watched Folders.
  3. Start and play the game at least once so EADesktopVerbose.log contains the achievement set.
  4. The app generates local schema and images, creates an ea-official config, and monitors later log changes.

Important notes

  • ea-official is 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 Logs folder; runtime progress is read from EADesktopVerbose.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

  1. Download and extract generate_emu_config.
  2. Create my_login.txt in that folder and save your Steam account as:
    username
    password
  3. Run generate_emu_config.exe_user.exe and enter the target Steam AppID.
  4. If the account uses 2FA, complete the code prompt when asked.
  5. Rename the game's original steam_api64.dll to steam_api64.dll.bak.
  6. Copy everything from _OUTPUT\appid next to the renamed DLL.
  7. Run gse_generate_interfaces.exe once, then launch the game.
  8. In Achievements, %APPDATA%\GSE Saves is a default watched folder, so the AppID can be detected and the config can be generated automatically.

Achievement Enabler by Roschach96

  1. Download the latest Achievement Enabler release and extract the ZIP into a separate working folder.
  2. For Steam and Ubisoft, rename dummy_account.txt.example to dummy_account.txt and enter the credentials for a throwaway Steam account. GOG and Epic do not require this file.
  3. Keep a backup of the extracted release. The setup removes its script-related files from the game folder after it finishes.
  4. Copy all extracted script files and folders into the game's main folder.
  5. Run _Achievement_Enabler.bat and 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 voices38 release flow when prompted. If voices38.dll is 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

  1. Download Uplay.rar.
  2. Extract Uplay.rar and copy the Uplay folder into the generate_emu_config folder.
  3. Create my_login.txt in that folder and save your Steam account as:
    username
    password
  4. Open the generate_uplay_achievements_from_steam.bat file and run it using the Steam AppID of the Ubisoft title.
  5. This produces achievements_schema.json for the Uplay game.
  6. Copy demde's version of Goldberg Uplay R1 or R2 files and achievements_schema.json into the game folder and replace the original Uplay DLLs. Check the Uplay R1/R2 ini file for the Achievements configuration to be enabled.
  7. Start the game if game is using r2 version. Achievements can auto-detect it from the default watched folder %APPDATA%\Goldberg UplayEmu Saves.
  8. 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

  1. Copy LumaPlay_x86.exe and the LumaPlayFiles folder into the game folder.
  2. Copy the original uplay_r1.dll from C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher into LumaPlayFiles and rename it to UbiAPI.dll.
  3. Update the executable name, appid and other settings in LumaPlay.ini.
  4. Continue with the x64 achievement configuration steps below.

x64 installation

  1. Copy LumaPlay_x64.exe and LumaPlayFiles into the game folder.
  2. Copy uplay_r164.dll from the Ubisoft launcher into LumaPlayFiles and rename it to UbiAPI.dll.
  3. Update the executable name, appid and other settings in LumaPlay.ini.
  4. 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).
    ...
  5. In Achievements, enable Settings - Folders - Enable LumaPlay Watcher.
  6. Start the game through LumaPlay. The app scans achievement entries under HKCU\SOFTWARE\LumaPlay, detects the AppID, and generates a matching uplay config with emu=lumaplay when 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

  1. 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.
  2. 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.
  3. 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.
  4. The app reads the title ID from <game>.exe.cfg and the executable's embedded SPAFILE resource to obtain localized achievement names and descriptions, Gamerscore values, and images.
  5. A local xlivelessness config and schema are generated. The executable and process names are saved for launch, process detection, auto-selection, and playtime.
  6. Unlocks are read from each matching <profile>\achievements.dat below XLiveLessNess\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.dat is not required during initial config generation. The adaptive watcher attaches after XLiveLessNess creates the profile or title path.
  • The default %LOCALAPPDATA%\XLiveLessNess root 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

  1. Install and configure UniverseLAN so its game data is stored under %LOCALAPPDATA%\UniverseLAN.
  2. Keep each game in an immediate ProductID directory: %LOCALAPPDATA%\UniverseLAN\<ProductID>.
  3. Runtime progress must be available at %LOCALAPPDATA%\UniverseLAN\<ProductID>\UniverseLANData\Achievements.ini.
  4. 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.ini file.

Legacy game-local setup

Existing game-local UniverseLAN installations remain supported. Keep this setup if the game already works with the legacy layout.

  1. Check which galaxy64.dll version the game uses, download the matching UniverseLAN build, and extract it into the game folder.
  2. Run UniverseLANServer64.exe, keep it open, and then launch the game executable.
  3. The legacy installation generates local achievements in <gamefolder>\UniverseLANData\Achievements.ini.
  4. Add the game folder to Watched Folders. Legacy discovery continues to use UniverseLAN.ini to identify and generate the config.

NemirtingasEpicEmu

  1. Open egdata.app and copy the game's Namespace.
  2. Extract and run fetch_epic_achievements.bat.
  3. Copy the generated achievements_db.json and achievement images into nepice_settings next to EOSSDK-Win64-Shipping.dll.
  4. Edit NemirtingasEpicEmu.json and replace the AppId with the Namespace.
  5. Create a Launcher.txt file next to the game executable, put this content inside it, then rename the file to .bat:
    @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=en
    Change the values for the target game: Alan Wake 2 is the window title, AlanWake2.exe is the game executable name, and epicapp plus epicsandboxid must use the Namespace taken from egdata.app.
  6. Add %APPDATA%\NemirtingasEpicEmu to Watched Folders. The app can detect the Namespace and generate the config automatically.

anadius Origin/EA Emu

  1. Get anadius Origin emulator tools, including example config + tools.7z and get_token.exe.
  2. Install the Tampermonkey browser extension.
  3. Drag Origin Helper.user.js from example config + tools into Tampermonkey.
  4. Open ea.com, click Origin Helper in the top-left area, then click Generate emulator config.
  5. Select the game's __Installer\installerdata.xml.
  6. Check these options:
    • Use default port
    • Add Content section
    • Add placeholder Entitlement
    • Add achievements
    Then click Continue.
  7. In a new tab open https://isthereanydeal.com/ and search for the game.
  8. Open the game page, scroll to or search for Products, find the EA Store entry, and copy the Origin.OFR id.
  9. Paste that id into the Origin Helper field and click Continue.
  10. Run EA App, sign in, then run get_token.exe.
  11. 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.
  12. 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)
  13. Paste the copied HTML into the Origin Helper field. After the achievements show up as Green Fields, click Continue.
  14. Save anadius.cfg and copy it together with anadius32.dll or anadius64.dll into the game folder next to game.exe.
  15. Add %LOCALAPPDATA%\anadius\LSX emu\achievement_watcher to Watched Folders. The app can detect the AppID and generate the config.

Console Emulators

Xenia, RPCS3, and ShadPS4 native emulator flows.

Xenia-Canary support

  1. Open Xenia and create a user profile.
  2. Add the generated Xenia\Content\xxxxxx\xxxx\xxxx\xxxxxx path to Watched Folders.
  3. Start and play the game.
  4. The app reads the generated file, fetches game name, schema, and images, auto-generates the config, and shows notifications on new unlocks.

RPCS3 support

  1. Add RPCS3\dev_hdd0\home\xxxxxxx\trophy to Watched Folders.
  2. Start and play the game.
  3. The app reads trophy files, fetches schema and images, generates configs automatically, and shows notifications on unlock.

ShadPS4 support

  1. Add the ShadPS4 root folder: %APPDATA%\shadPS4.
  2. Start and play the game so ShadPS4 creates trophy schema and user progress files.
  3. 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.
  4. Local ShadPS4 logs or legacy data are used to map NPWR trophy IDs to CUSA game IDs when that mapping is available.
  5. 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\trophy00 is still supported.
  • If multiple users exist, achievement caches are scoped per user.