Custom in-game achievement overlay — appears directly over Elden Ring. Press F9 (default) to open/close the achievement screen.
- Visual Studio 2022 (Desktop C++ workload)
- CMake 3.20+
- Git
git clone https://github.com/ocornut/imgui vendor/imgui
- Download from: https://github.com/TsudaKageyu/minhook/releases
- Extract
MinHook.x64.lib→vendor/minhook/lib/MinHook.x64.lib - Copy
MinHook.h→vendor/minhook/include/MinHook.h
- Download single header: https://github.com/nlohmann/json/releases
- Place
json.hpp→vendor/nlohmann/json.hpp - Add
vendor/nlohmannto include dirs in CMakeLists.txt (already there)
mkdir build && cd build
cmake .. -G "Visual Studio 17 2022" -A x64
cmake --build . --config ReleaseOutput: build/Release/dinput8.dll
Copy dinput8.dll → <Steam>\steamapps\common\ELDEN RING\Game\
- Install Mod Engine 2: https://github.com/soulsmods/ModEngine2
- Copy
dinput8.dll→ your ModEngine mod folder - Add to
config_eldenring.toml:[[mods]] enabled = true name = "er_achievement_mod" path = "mod/er_achievement_mod"
| Key | Action |
|---|---|
| F9 | Toggle achievement screen |
| In settings tab | Change hotkey, sound, duration |
- Launch Elden Ring (offline mode)
- Press F9 → Diff Tool tab
- Click 📷 Snapshot
- Collect the item in-game (wait for auto-save)
- Press 🔍 Find Changes
- Click [+] next to the changed byte
- Assign to an achievement → label it → click Add Condition
- Repeat for every item in the achievement (e.g. all 28 cookbooks)
Once all conditions are added, the achievement fires automatically whenever the save file updates.
The mod reads all 10 character slots from ER0000.sl2.
It detects the active character via the save header's "last played slot" field.
You can also manually switch which character to check via the dropdown in the achievement screen.
- Play offline when using mods (EAC bans online)
- The
er_achievements.jsonfile (saved next to the DLL) stores your progress and all custom conditions — back it up - Achievement conditions persist across game restarts
ELDEN RING/Game/
├── eldenring.exe
├── dinput8.dll ← this mod
└── er_achievements.json ← auto-created on first run