One native UI host. Multiple client mods. A menu that belongs in Elden Ring.
Download · Nexus Mods · Documentation · What's new in 1.3 · Development roadmap · Build your first mod · Examples
ERNativeUI lets mod authors add settings and interactions directly to Elden
Ring's native interface. One process-wide ERNativeUI.dll owns the game hooks
and merges content registered by multiple client mods through a stable C ABI
or a friendly header-only C++17 wrapper.
This is not an ImGui or DirectX overlay. ERNativeUI uses Elden Ring's own controls, pages, dialogs, focus, help text, transitions, controller input, mouse input, and Back stack.
ERNativeUI is a Windows x64 mod for offline play with Easy Anti-Cheat disabled. Native integration is game-version-sensitive; use a release that explicitly supports the installed Elden Ring executable.
- Native by design: menus look and behave like part of Elden Ring.
- One shared host: several mods can contribute content without each one installing a competing set of UI hooks.
- A compiler-friendly SDK: strict C11 ABI, header-only C++17 wrapper, and no client import library or shared STL ownership.
- More than settings rows: built-in pages, submenus, pagination, dialogs, localization, input bindings, and provider storage share one system.
- Fail-safe native integration: signatures and object boundaries are validated instead of assuming that an old address is still correct.
- Open and reproducible: the implementation, API, tests, GFX tooling, and reverse-engineering research are available to the community.
![]() Custom System tabs Multiple client mods can add native tabs with their own titles, icons, content, ordering, and overflow navigation. |
![]() Title-screen text Add short version, status, or compatibility lines to any corner with the native color or an explicit RGB color. |
ERNativeUI 1.3.0 also introduces runtime completion for supported settings GFX, including a configurable System tab strip with eight to ten physical slots, and support for Elden Ring 1.17.2 / executable 2.7.2.0. New focused examples cover custom-tab stress testing and title-screen text.
Explore everything new in ERNativeUI 1.3.0 · Migrate from API 1.2 · Browse the What's New archive
Every control below has a focused guide with a minimal example, complete options, screenshots, and links to its native implementation research.
![]() Button Trigger a client-mod action. |
![]() Submenu Organize settings in native child pages. |
![]() Toggle Expose a native on/off setting. |
![]() Slider Adjust a bounded unsigned-byte value. |
![]() Numeric slider Adjust signed or decimal values with units. |
![]() Custom slider Slide through arbitrary client-defined labels. |
![]() Inline choice Cycle through named options in place. |
![]() Popup choice Select an option from a native list. |
![]() TextInput Edit text with a placeholder and configurable limit. |
![]() ColorPicker Choose a color with native palette and RGB editors. |
- Give a mod its own top-level Configuration tab with a localized title and custom RGBA8 icon. The physical strip defaults to eight slots and, with runtime GFX patching enabled, can be configured up to Elden Ring's hard ceiling of ten, while overflow keeps up to 1,024 logical custom tabs reachable. Learn about custom tabs.
- Add short version or status lines to any title-screen corner, using Elden Ring's native text color or an explicit RGB color. Learn about title-screen text, then see the buildable example.
- Add ordinary rows to supported built-in Configuration pages, including Game Options, Camera Options, Display, Sound, Network, Keyboard/Mouse, and Graphics. Learn about menus and pages.
- Build nested submenus while ERNativeUI handles capacity, pagination, titles, Next, Previous, and the native Back stack.
- Queue native modal dialogs with configurable button combinations and bottom or centered placement. Learn about dialogs.
- Register controller, keyboard, and mouse actions that players can reassign in Elden Ring's binding screens. Learn about input bindings.
- Follow the selected game language or a player-configured locale while preserving unknown identifiers for future and community translations. Learn about localization.
- Load, mutate, and explicitly save provider-owned configuration, or use the header-only input-assignment codec with another storage system. Learn about storage.
- Let the host complete supported settings GFX at runtime for expanded page capacity and native TextInput and ColorPicker presentation. This default-on behavior can be disabled globally when a player needs untouched effective GFX; structurally compatible GFX supplied by other mods remains supported. Learn about runtime GFX completion.
The complete supported surface, minimum API versions, capabilities, and limits live in the feature matrix.
Download ERNativeUI from Nexus Mods or GitHub Releases, then follow the player installation guide. Install one canonical host and load it before ordinary ERNativeUI client mods.
The GitHub Windows package contains the host, public headers, CMake package,
built and source examples, licenses, and a link to the documentation for that
exact release tag.
Client mods need only erui.h, or erui.h plus ERNativeUI.hpp; they do not
link an ERNativeUI import library.
- Install the SDK.
- Build “Hello, Tarnished!”.
- Continue from the commented template or browse the buildable examples.
The public ABI is designed for compiler-neutral Windows x64 clients. API 1.3 passes strict MinGW-w64 C11/C++17 compilation and isolated MinGW-client/MSVC-host fixtures; full in-game MinGW-w64 runtime validation is not part of the 1.3.0 tested compatibility matrix.
- Windows x64, offline play, and Easy Anti-Cheat disabled are required.
- Mod Engine 2 is the primary supported loader.
- Load exactly one
ERNativeUI.dllfor all client mods. - Use a release that names the installed Elden Ring executable after every game update.
- ERNativeUI 1.3.0's API 1.3 paths were live-validated on Elden Ring executables 2.7.1.0 and 2.7.2.0. Its retained 2.7.0.0 profile has the reduced API 1.0 through 1.2 scope documented in the compatibility matrix.
- Solid Uncapper coexistence has a documented load order and tested matrix.
- Seamless Co-op 2.0.1 was live-tested with the Elden Ring 2.7.0.0 reference executable, with no incompatibility observed for that exact combination.
- Elden Ring 2.7.1.0 title layouts and API 1.3's adaptive title spacing were live-tested with Shadow of the Erdtree both absent and present; see the compatibility guide for the exact scope.
- Host and committed client DLLs must remain loaded until process exit.
See Game and mod compatibility for exact tested versions, modified-GFX compatibility, Solid Uncapper setup, and useful bug reports.
| I want to... | Start here |
|---|---|
| Install ERNativeUI as a player | Player installation |
| Discover the latest features | What's new in 1.3.0 · Archive · API 1.3 migration |
| Follow unreleased API development | Development roadmap · API 1.4 plan · Alpha policy |
| Create my first client mod | Getting started |
| Add menus, controls, dialogs, bindings, or localization | Mod-author guides |
| Check supported features and exact API contracts | Feature matrix · API reference |
| Understand the host/client architecture | How ERNativeUI works |
| Reproduce the native UI research | Research library |
| Build, test, contribute, or publish | Contributing · Release guide |
The documentation home provides the complete reader-oriented index.
ERNativeUI release versions and ERUI public API versions are independent.
Within a compatible 1.x host line, earlier published 1.x APIs remain
available, so a client built with API 1.0 continues to work with a compatible
newer 1.x host. A future host major may drop earlier-major APIs unless its
release explicitly preserves them.
Read Versioning, the changelog, and the API migration guides before declaring a client dependency.
- An Thanh Le — contributed the Vietnamese translation.
ERNativeUI is my first mod. It is released under the MIT License: you may use, modify, redistribute, fork, or improve it while preserving the license terms and copyright notice.
Bug reports, compatibility updates, documentation improvements, examples, and carefully validated native-interface research are welcome. Read the contribution guide or open a GitHub issue.























