Skip to content

About

ERNativeUI - A shared native menu framework for Elden Ring mods, with a stable C ABI and header-only C++17 API.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Repository files navigation

ERNativeUI

ERNativeUI banner

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.

Why ERNativeUI?

  • 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.

[NEW] What's new in ERNativeUI 1.3.0

A custom System tab strip shifting through many client-provided tabs
Custom System tabs
Multiple client mods can add native tabs with their own titles, icons, content, ordering, and overflow navigation.
ERNativeUI text displayed in all four title-screen corners
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

Showcase

ERNativeUI controls integrated into Elden Ring Game Options
Settings from multiple client mods, merged into Game Options.
Native greeting dialog with an OK button
A localizable client message using Elden Ring's native dialog.
Native ERNativeUI text input with a confirmed player name
Native text entry with placeholders, confirmed-value callbacks, and persisted values.
Native Elden Ring color palette opened from an ERNativeUI color picker
Preset palettes and Elden Ring's custom RGB color editor.
Paginated ERNativeUI settings page
Automatic pagination, native navigation, and per-page titles.
Native popup choice list opened by ERNativeUI
Native selection lists for settings with several named choices.
ERNativeUI actions added to Elden Ring Button Settings
Client-defined controller actions in Button Settings.
ERNativeUI actions added to Elden Ring Key Bindings
Native keyboard and mouse assignment and remapping.
Native two-button modal dialog
Modal messages with configurable buttons and placement.

Supported controls

Every control below has a focused guide with a minimal example, complete options, screenshots, and links to its native implementation research.

ERNativeUI native Button control
Button
Trigger a client-mod action.
ERNativeUI native Submenu control
Submenu
Organize settings in native child pages.
ERNativeUI native Toggle control
Toggle
Expose a native on/off setting.
ERNativeUI native Slider control
Slider
Adjust a bounded unsigned-byte value.
ERNativeUI native Numeric Slider displaying x0.6
Numeric slider
Adjust signed or decimal values with units.
ERNativeUI native Custom Slider displaying hello
Custom slider
Slide through arbitrary client-defined labels.
ERNativeUI native Inline Choice control
Inline choice
Cycle through named options in place.
ERNativeUI native Popup Choice control
Popup choice
Select an option from a native list.
ERNativeUI native TextInput control
TextInput
Edit text with a placeholder and configurable limit.
ERNativeUI native ColorPicker control
ColorPicker
Choose a color with native palette and RGB editors.

More than controls

  • 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.

Get started

Players

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.

Mod authors

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.

  1. Install the SDK.
  2. Build “Hello, Tarnished!”.
  3. 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.

Compatibility at a glance

  • Windows x64, offline play, and Easy Anti-Cheat disabled are required.
  • Mod Engine 2 is the primary supported loader.
  • Load exactly one ERNativeUI.dll for 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.

Documentation

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.

Versioning

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.

Credits

  • An Thanh Le — contributed the Vietnamese translation.

License and contributions

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.

About

ERNativeUI - A shared native menu framework for Elden Ring mods, with a stable C ABI and header-only C++17 API.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages