About
libER is an ELDEN RING Application Programming Interface (API) library that aims to provide a safe C++ interface for the game.
Consult the GitHub page for the build and installation instructions and the license.
You can find the libER changelog on the changelog page.
- See also
- https://github.com/Dasaav-dsv/libER/
-
Changelog
Explore
- Tasks : asynchronous dispatch system used by ELDEN RING. Custom tasks may be created and bound to specific taskgroups, which impose a strict ordering on task execution. ELDEN RING uses this system for step-by-step execution, making sure data has been properly handled at each step and that it is ready for the next one.
- See also
- EXAMPLES: Tasks Examples
-
task.hpp
-
fd4_task.hpp
-
taskgroups.inl
- File & Resources : asynchronously loading files and resources to be used by ELDEN RING from disk or from the game's virtual directories (.bdt archives). Files can be loaded, reloaded and unloaded on demand, with an std::future-like interface. Resources can be obtained from their corresponding resource repositories.
- See also
- EXAMPLES: Files & Resources Examples
-
file.hpp
- DirectX 12 3D graphics : accessing ELDEN RING's D3D12 resources and dispatching draw tasks via its task system (described above). The provided abstract draw task exposes both the game world render target and the UI render target, allowing to draw on either. None of the DirectX resources are acquired via hooking.
- See also
- EXAMPLES: D3D12 Examples
-
draw.hpp
- Runtime Param Management : read/write access to all param tables used by ELDEN RING, with full iterator support, paramdef layouts, type safety and field documentation (thanks ThomasJClark and Nordgaren!).
- See also
- EXAMPLES: Param Examples
-
param.hpp
-
cs_param.hpp
- Memory Allocation: libER documents the ELDEN RING allocation implementation, and replaces it with a modern mimalloc implementation that improves performance and RAM consumption by over 1GB. An important advantage of the new allocation system is not being dependent on the game's CRT startup.
- See also
- from_allocator.hpp
-
https://github.com/microsoft/mimalloc/
- Object Lifetime Management: custom std::unique_ptr specialization that synchronizes object destruction with ELDEN RING's delay delete task step, ensuring resources are not freed while they may still be used by the game.
- See also
- from_unique_ptr.hpp
-
from_delay_delete.hpp
-
taskgroups.inl
- ELDEN RING Type Reflection: the runtime type reflection used by ELDEN RING. All reflected classes are accessible through from::DLRF::DLRuntimeClass methods.
- See also
- EXAMPLES: Reflection Examples
-
reflection.hpp
-
DLRF::DLRuntimeClass
- Game System Management: ELDEN RING as it is managed at runtime. Wait for system initialization function.
- See also
- system.hpp
-
DLSY::wait_for_system
Namespaces
libER uses two main namespaces:
- namespace from describes ELDEN RING
- namespace liber contains libER implementation details
Namespace from child namespaces: