Skip to content

Repository files navigation

ERNativeUI

ERNativeUI banner

One native UI host. Multiple client mods. A menu that belongs in Elden Ring.

Download · Nexus Mods · Documentation · 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.

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 numeric value.
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

  • 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 while preserving unknown Steam language identifiers for future locales. 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.
  • Optionally install reproducible GFX presentation patches for expanded page capacity and enhanced TextInput and ColorPicker presentation. Learn about GFX presentation.

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, examples, tools, and documentation. 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.

MSVC, clang-cl, and MinGW-w64 client mods can use the same stable host ABI.

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.
  • 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.
  • Shadow of the Erdtree remains explicitly unverified until its live matrix is completed.
  • Host and committed client DLLs must remain loaded until process exit.

See Game and mod compatibility for exact tested versions, optional GFX conflicts, Solid Uncapper setup, and useful bug reports.

Documentation

I want to... Start here
Install ERNativeUI as a player Player installation
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.

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

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

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages