Unlock Epic Games Store achievements in any EOS‑powered game – with or without an overlay.
Features • Quick Start • How It Works • Configuration
Epic Unlocker is a DLL injection tool that hooks the Epic Online Services (EOS) SDK. It lets you unlock any achievement in games that use EOS – even if the game uses DirectX 12 where traditional overlays fail.
No more staring at a black overlay.
PressCtrl+Shift+U/Land watch your achievements pop.
- ❌ ScreamAPI removed the feature.
- ❌ Many games use DX12 / Vulkan – standard D3D11 overlay hooks don't work.
✅ Global hotkeys – unlock everything with Ctrl+Shift+U (works anywhere, even in DX12).
✅ Selective unlock – use Ctrl+Shift+L with a simple text file.
✅ Clean overlay – a modern ImGui window shows progress, search, and filter.
✅ External GUI – a standalone Achievement Unlocker window for unlocking without touching the game.
✅ No background threads – the tool is lightweight and won't trigger anti‑tamper.
| Feature | Description |
|---|---|
| 🕹️ Universal | Works with any EOS‑powered game (e.g., TMNT: Splintered Fate, Dying Light, Northgard). |
| ⌨️ Global Hotkeys | Ctrl+Shift+U → unlock all. Ctrl+Shift+L → unlock list from unlock_list.txt. |
| 🖥️ Overlay | Beautiful ImGui window with stats, search/filter, and per‑achievement unlock buttons (press Shift+F5). |
| 🪟 External GUI | Standalone dark-themed GUI app — connect to any running game and unlock achievements without an overlay. Double-click any achievement to unlock instantly. |
| 📁 File‑based unlock | Drop a text file with achievement IDs – press hotkey to unlock only those. |
| 📊 Auto‑logging | Achievement statistics are written to ScreamAPI.log every time player data loads. |
| ⚙️ Configurable | Toggle overlay, DX12 hook, logging, forced achievement queries, custom EOS SDK path, etc. |
| 🔌 MinHook + Kiero | Reliable hooking of both EOS functions and graphics APIs. |
Get Epic Unlocker running in your favourite game in under 5 minutes.
Grab EOSSDK-Win64-Shipping.dll (and ScreamAPI.ini) from the Releases page.
You have two options:
- Rename the game's original
EOSSDK-Win64-Shipping.dlltoEOSSDK-Win64-Shipping_o.dll. - Copy
EOSSDK-Win64-Shipping.dllinto the same folder. - Launch the game – Epic Unlocker will forward most calls to the original DLL.
- Download Koaloader.
- Rename our DLL to
ScreamAPI64.dll(or 32) and place it (with the INI) in your game directory. - Configure
Koaloader.jsonto injectScreamAPI64.dllinto the game process. - Launch the game – no file renaming needed.
Press Shift+F5 to toggle the overlay. Search, filter, and unlock achievements directly from inside the game.
⚠️ Fullscreen Exclusive games will minimize when you click overlay buttons. Either:
- Switch the game to Borderless Windowed mode, or
- Double-click an achievement in the list to unlock it (no minimize).
Launch EpicAchievementUnlocker.exe while the game is running. The GUI connects automatically and shows all achievements. Double-click any achievement to unlock it instantly.
⚠️ The external GUI also minimizes fullscreen exclusive games when using the Unlock Selected button. Use double-click or switch to Borderless Windowed.
- Unlock everything – press
Ctrl+Shift+Uanywhere. - Unlock specific achievements
- Create
unlock_list.txtin the same folder as the game's .exe. - Put one achievement ID per line (IDs shown in
ScreamAPI.logor the overlay). - Press
Ctrl+Shift+L.
- Create
Epic Unlocker uses two powerful hooking libraries:
- MinHook – intercepts EOS SDK functions (
EOS_Achievements_UnlockAchievements,EOS_Auth_Login, etc.). - Kiero – hooks the graphics API (
IDXGISwapChain::Present) to render the ImGui overlay.
When the game requests achievement definitions or player progress, Epic Unlocker stores the data locally.
When you press a hotkey or click unlock, it calls the original (hooked) EOS_Achievements_UnlockAchievements with the correct parameters – instantly unlocking the achievement on Epic's servers.
The external GUI communicates with the in-game DLL over a named pipe. Unlock commands are queued and executed safely on the game thread during EOS_Platform_Tick – avoiding any thread-safety issues with the EOS SDK.
Edit ScreamAPI.ini to customise behaviour:
[ScreamAPI]
; General options
EnableOwnershipUnlocker = True ; Unlock DLC ownership checks (was EnableItemUnlocker)
EnableEntitlementUnlocker = True ; Unlock entitlement queries
EnableLogging = True ; Generate ScreamAPI.log
EnableOverlay = True ; Show achievement overlay
ForceAchievementsConfig = False ; Force achievement definitions query before unlock
EnableKeyboardNavigation = True ; Allow keyboard navigation in overlay (arrows, Tab, Enter, Esc)
EnableDX12Hook = False ; Hook DX12 games (DX11 is always tried first)
BlockMetrics = True ; Block Epic telemetry/metrics (if supported)
; Optional custom paths / overrides
CustomEOSPath = ; Absolute path to EOSSDK-Win64-Shipping.dll (optional)
NamespaceId = ; Override the game's namespace ID (rarely needed)
[Logging]
LogLevel = INFO ; DEBUG / INFO / WARN / ERROR
LogFilename = ScreamAPI.log
LogDLCQueries = True ; Log DLC ownership/entitlement checks
LogAchievementQueries = True ; Log achievement queries and unlocks
LogOverlay = True ; Log overlay (initialization, toggles, etc.)
[Overlay]
LoadIcons = False ; Download achievement icons (True = download, False = no icons)
CacheIcons = True ; Save icons locally (if LoadIcons=True)
ValidateIcons = True ; Check cached icon size against online version (if LoadIcons=True)
ForceEpicOverlay = False ; Re-enable the original Epic overlay if the game disabled it
[DLC]
UnlockAllDLC = True ; Respond positively to all DLC requests
ForceSuccess = False ; Always return EOS_SUCCESS even if internal checks fail
; ----------------------------------------------------------------------
; NEW: Per-item DLC override (replaces old [DLC_List] for fine control)
; Format: {item_id} = unlocked | locked | original
; unlocked – always return owned/unlocked
; locked – always return not owned/locked
; original – use the value returned by the EOS backend (or game default)
; ----------------------------------------------------------------------
[DLC_Override]
; Example: 56acef6d526e4b819caff773dd244635 = unlocked ; Subject 2923 DLC unlocked
; Example: 14d1517dbd7242bcb5cb94881ca1c28f = locked ; Swamps of Corsus locked
; ----------------------------------------------------------------------
; NEW: Manually inject extra entitlements (useful for testing or adding missing items)
; Format: {entitlement_id} = Display Title
; ----------------------------------------------------------------------
[Extra_Entitlements]
; Example: some_entitlement_id = My Custom Item
; ----------------------------------------------------------------------
; LEGACY: Old-style DLC list (still supported, but consider using [DLC_Override] instead)
; This section is only used when UnlockAllDLC = False.
; Format: {item_id} = True (to unlock) or = False (to block)
; ----------------------------------------------------------------------
[DLC_List]
; Example: 56acef6d526e4b819caff773dd244635 = True
; Example: 14d1517dbd7242bcb5cb94881ca1c28f = FalseOnly enable this for true DX12 games (e.g., games where neither the overlay nor the DX11 fallback renders). For most games — including DX11 games that load d3d12.dll — leave it False. The hotkeys and external GUI always work regardless of this setting.
