Skip to content

Releases: UE4SS-RE/RE-UE4SS

experimental-latest

29 Dec 23:57
f12f0be

Choose a tag to compare

experimental-latest Pre-release
Pre-release

Important: The default installation layout has changed. All UE4SS files (including UE4SS.dll, settings, and mods) now reside in a ue4ss subfolder next to your game executable. Only the proxy DLL (dwmapi.dll) remains in the game's Win64 directory. This keeps your game folder cleaner and makes it easier to manage UE4SS installations. Existing installations in the old location will continue to work for backwards compatibility if the UE4SS dll is replaced directly.

New

General

Added CMake build system alongside Xmake - (UE4SS #1067)

  • CMake >= 3.22 is now supported as the default build system
  • Documentation updated to reference CMake build instructions
  • xmake may be deprecated in the future. Meanwhile, we cannot guarantee ABI compatability

Added support for UE Version 5.7

Added support for UE Version 5.6 - (UE4SS #977)

Added support for UE Version 5.5 - (UE4SS #708)

Added support for UE Version 5.4 - (UE4SS #503)

Added basic support for Development/Debug/Test built Unreal Engine games (UE4SS #607)

  • To use this functionality, set DebugBuild to true in UE4SS-Settings.ini

Added command line option to disable RE-UE4SS loading via proxy DLL. Use --disable-ue4ss to launch game without UE4SS while keeping the proxy DLL installed. (UE4SS #1069)

Added command line option to specify custom UE4SS.dll path via proxy DLL. Use --ue4ss-path <path> to load UE4SS.dll from a custom location, supporting both absolute and relative paths. This allows developers to easily test different UE4SS builds without modifying files. (UE4SS #1074)

Added environment variable UE4SS_MODS_PATHS. This is a colon separated list of additional directories to load Lua and C++ mods from. (UE4SS #1069)

Added new build definition "LessEqual421". Using this definition for games on UE<=4.21 is not mandatory for UE4SS to function, but will ensure the correct alignment is used in containers.

BREAKING: - This also changes the default FName alignment from 8 to 4.

  • To use this functionality, enter LessEqual421 in the section of the XMake configuration command.

BREAKING: Changed default EFindName parameter for FName constructors from FNAME_Find to FNAME_Add.

  • FName constructors will now create new name table entries by default if the name doesn't exist, rather than returning NAME_None
  • To maintain the old behavior, explicitly pass FNAME_Find as the second parameter
  • This affects all string-based FName constructors

Added optional scans for GUObjectHashTables, GNatives and ConsoleManagerSingleton; made FText an optional scan; externed the found GNatives for use by mods(UE4SS #744)

  • GUObjectHashTables and ConsoleManagerSingleton are currently unused and a WIP.

UE Platform support, which allows for much easier internal implementation of new Unreal classes (UEPseudo #80) - narknon, localcc

Added new installation method by allowing overriding of the location of the UE4SS.dll, documentation. - (UE4SS #506) - Buckminsterfullerene

Add Github alerts pre-processor support to the documentation system (UE4SS #611) - Buckminsterfullerene

Added custom game configurations for Abiotic Factor (UE4SS #709)

Added custom game configurations for Psychonauts 2 (UE4SS #731)

Added custom game configurations for Lies of P (UE4SS #787)

Added custom game configurations for Project Silverfish (UE4SS #1066)

Added custom game configurations for Whiskerwood (UE4SS #1079)

Added custom game configurations for StarRupture (UE4SS #1150)

The GUI can now be rendered in the game thread if RenderMode in UE4SS-settings.ini is set to
EngineTick or GameViewportClientTick (UE4SS #768, UE4SS #794).

Added override Lua files for ProcessLocalScriptFunction and ProcessInternal UE4SS #823 - M3C3I

Added override Lua files for CallFunctionByNameWithArguments UE4SS #848 - M3C3I

Add error messages in places where only error codes were previously logged (e.g. load a C++ mod) UE4SS #902

Added [f: <address_or_module_offset> section to UE4SS_ObjectDump.txt UE4SS #866

Added line in the docs to add FText::FromString(FString&) as an alternative to FText::FText(FString&) for UE5 games - (UE4SS #1078)

Live View

Added search filter: IncludeClassNames. (UE4SS #472) - Buckminsterfullerene

Added search filter: Match Memory Address. (UE4SS #882) - vitrvvivs

Added ability to call UFunctions directly from the GUI. (UE4SS #851)

Added highlights for properties matching the Has property and Has property of type filters (UE4SS #1089)

Added a Dump as JSON button for individual objects, located next to the Find functions button (UE4SS #1112)

Lua Debugger

Added new Lua Debugger GUI tab with debugging tools for Lua mod development (UE4SS #1099)

  • Breakpoint management with hit counts
  • Step debugging (Step Into, Step Over, Step Out, Continue)
  • Call stack viewer with clickable frames
  • Locals and upvalues inspection
  • Global variables browser with search and tree navigation
  • REPL console with command history
  • Script editor
  • Loaded modules viewer
  • Mods management tab to view, enable/disable, and create Lua mods

Added individual mod restart/uninstall/start functionality to Lua Debugger (UE4SS #1105)

  • Restart and Uninstall buttons for running mods in the Mods tab
  • Start button for non-running mods without requiring a full hot reload
  • Restart/Start button in Script Editor tab for quick mod iteration
  • New file creation dialog with optional auto-require in main.lua

UHT Dumper

Added support for generating FUtf8String and FAnsiString properties in UHT-compatible headers (UE4SS #1015)

Lua API

Added support for FUtf8String and FAnsiString Unreal string types with string manipulation API (UE4SS #1015)

  • Refactored FString implementation to use unified TLuaStringBase template for code reuse and consistency

Added global functions for mod management (UE4SS #1105)

  • RestartCurrentMod() - Restart the currently running mod
  • UninstallCurrentMod() - Uninstall the currently running mod
  • RestartMod(ModName) - Restart another mod by name
  • UninstallMod(ModName) - Uninstall another mod by name

Added comprehensive Delayed Action System for game-thread timer management (UE4SS #1128)

  • New execution functions:
    • ExecuteInGameThreadWithDelay(delayMs, callback) - Execute after delay, returns handle
    • ExecuteInGameThreadWithDelay(handle, delayMs, callback) - UE Delay-style (only executes if handle not active)
    • RetriggerableExecuteInGameThreadWithDelay(handle, delayMs, callback) - Resets timer if called again (debouncing)
    • LoopInGameThreadWithDelay(delayMs, callback) - Repeating timer with handle
    • ExecuteInGameThreadAfterFrames(frames, callback) - Frame-based delay (requires EngineTick)
    • LoopInGameThreadAfterFrames(frames, callback) - Frame-based repeating timer
    • MakeActionHandle() - Generate unique handle for use with delay functions
  • Timer control functions:
    • CancelDelayedAction(handle) - Cancel a pending action
    • PauseDelayedAction(handle) - Pause a timer
    • UnpauseDelayedAction(handle) - Resume a paused timer
    • ResetDelayedActionTimer(handle) - Restart with original delay
    • SetDelayedActionTimer(handle, newDelayMs) - Change delay and restart
    • ClearAllDelayedActions() - Cancel all actions for current mod
  • Query functions:
    • IsValidDelayedActionHandle(handle) - Check if handle exists
    • IsDelayedActionActive(handle) - Check if timer is running
    • IsDelayedActionPaused(handle) - Check if timer is paused
    • GetDelayedActionRate(handle) - Get configured delay
    • GetDelayedActionTimeRemaining(handle) - Get remaining time
    • GetDelayedActionTimeElapsed(handle) - Get elapsed time
  • New global variables: EngineTickAvailable, ProcessEventAvailable
  • New enum: EGameThreadMethod with ProcessEvent and EngineTick values
  • ExecuteInGameThread now accepts optional second param...
Read more

v3.0.1

14 Feb 19:59

Choose a tag to compare

This is a patch release for 3.0.0. Installing over 3.0 is as simple as replacing all files except for your UE4SS-settings.ini if you have custom configs.

If you have not yet installed since 2.5.2, please see the installation instructions in the v3.0.0 release notes. Remember to delete the old xinput1_3.dll as it crashes the game if you still have it!

C++ mods must be rebuilt to work on 3.0.1.

Current known issues & solutions:

  1. If you have the GUI console enabled and visible, and on launch the window is blank/white, go into UE4SS-settings.ini and set GraphicsAPI = dx11.
  2. If you're experiencing game crashes on startup, try setting bUseUObjectArrayCache = false in UE4SS-settings.ini.
  3. If mods aren't working as expected, make sure you follow their install instructions properly, not based on "what worked before". This is due to UE4SS supporting a number of different mod types and the way they're installed can vary.

Additional couple of notes for mod authors:

  1. We have noticed a number of popular mods that have fallen down a pitfall that may very well lead to performance issues. Please refer to this section in the docs for more information.
  2. If you're developing on the latest experimental version, please make sure to use the docs.ue4ss.com/dev version of the docs as this is updated with the latest changes.

-UE4SS team

New

General

Added new docs pages for devlogs, C++ examples, C++ BP macros (UE4SS #355) - Buckminsterfullerene

Added examplanation of 'ai' to the Object Dumper doc page (UE4SS #349)

Live View

UHT Dumper

Lua API

C++ API

Experimental

Changes

General

Update docs installation guide for 3.0.0 (UE4SS #355) - Buckminsterfullerene

Added step to C++ prerequisits to join Epic Games org for repo access (UE4SS #339) - groffta

Updated Lua doc for RegisterHook to accurately state how the callback params work (UE4SS #372)

Clarify Lua metamethod usage for some classes (UE4SS #376) - Lyrth

Live View

UHT Dumper

Lua API

Fixed bug where RegisterHook on native functions couldn't affect return values unless you had both a pre and a post hook (UE4SS #366)

C++ API

Repo & Build Process

Removed custom game configs for games that don't need them anymore (UE4SS #386) - Buckminsterfullerene

Added mods directory zip as an explicit step to the bug report template (UE4SS #358)

Added PR template (UE4SS #363) - Buckminsterfullerene

Fixes

General

Fixed "FindAllOf" dereferencing a nullptr (UEPsuedo #78) - localcc

Fixed a memory leak when BPMacros.hpp was used (UEPsuedo #75)

Fixed modifier key issue causing keybinds to not work (UE4SS #389) - Tangerie

Live View

Fix GUI crash when clicking close window button (UE4SS #337) - localcc

UHT Dumper

Lua API

Fix Lua FString setter (UE4SS #325) - Yangff

Fix FindObject and Mod:SetSharedVariable userdata type matching (UE4SS #342) - Lyrth

Fixed non-native UFunctions hooks not working if hooked by multiple mods (UE4SS #351)

C++ API

Fix TProperty cpp mods linking issue (UEPsuedo #77) - localcc

Settings

Added

Removed

v3.0.0

04 Feb 17:06

Choose a tag to compare

After 9 months in development, we hope 3.0 was worth the wait. We want future releases to be more frequent, as constantly telling people "try latest experimental" is never a good solution.

For the next release, we have some exciting new features in development, so stay tuned for those. We're very excited to reveal what we've been working on soon, but we really needed to get 3.0 out first.

-UE4SS team

Installation over 2.5.2

Remember to check the README for the latest installation instructions.

Since the UE4SS-settings.ini has changed in this release, you should use the new one, so if you have made settings changes, remember to back them up!

When installing 3.0 in the place of the previous release 2.5.2, you must replace all existing UE4SS files with new files, except for the UE4SS_Signatures folder if your game is using custom sigs.

3.0 also uses two new dlls:

  • UE4SS.dll
  • dwmapi.dll

and no longer uses the older xinput1_3.dll, so please also delete xinput1_3.dll if you have one.

New

General

Added support for UE Version 5.2 and 5.3 games

New proxy DLL loading system. - LocalCC
Different proxy DLLs can now easily be compiled for cases where xinput1_3 cannot be used for any reason.
Alternative proxys may be compiled by specifying -DUE4SS_PROXY_PATH=/Path/To/DLL.dll when running the CMake command.

Replace built-in address scans with patternsleuth which should greatly improve accuracy and reduce need for manual AOB configuration - trumank, LongerWarrior

Added SuperStruct, sps, to Struct and ScriptStruct entries in the object dumper

Live View

Can now view enum values in the Live View debugger

Added ClassFlags to UClass and derivatives

Added a checkbox that toggles search options globally, meaning when not searching

Added search filter Function parameter flags, it excludes objects that are non-UFunctions and UFunctions that don't have params with the specified flags

Added search filter Non-instances only

Added search filter Include CDOs, it includes objects that are not a ClassDefaultObject or an ArchetypeObject

Added search filter CDOs only, it excludes objects that are not a ClassDefaultObject or an ArchetypeObject

Added search filter Use Regex for search - HW12Dev

Added search filter Exclude class name, it excludes objects with a ClassPrivate name not containing the specified (case-sensitive) string

Added search filter Has property, it exclude objects that don't have a property (inheritance included) of the specified (case-sensitive) name

Added search filter Has property of type, it excludes objects that don't have a property (inheritance included) of the specified (case-sensitive) type

UHT Dumper

Removed unnecessary explicit _MAX elements from enums

Made FWeakObjectPtr overridable unless used in a TArray or TMap

Lua API

Added an optional third parameter to RegisterHook
If provided, it will act as a post callback hook where out-params can be modified
Note that for BP-only functions, both callbacks act as post callbacks
If the hooked function has a return value, the second param to the post callback will be the return value

Out-params for script hooks (RegisterCustomEvent or RegisterHook on a BP-only UFunction) can now be set by doing Param:set(<new-value>)

Added the function Empty to TArray

Added RegisterLoadMapPreHook/RegisterLoadMapPostHook hooks for UEngine::LoadMap.

C++ API

Finalize C++ API. - LocalCC; Truman

Removed need for "cppsdk" when linking C++ mods. This is due to the new proxy system. - LocalCC
Due to the above change, C++ mods now only need to link to UE4SS.

C++ mods are now loaded earlier, and will keep the game from starting until all mods have finished executing their start_mod function

Made calls to UObject::StaticClass work for custom UObject classes that have been made with the DECLARE_EXTERNAL_OBJECT_CLASS and IMPLEMENT_EXTERNAL_OBJECT_CLASS macros

Expose IMGui to C++ mods - Truman

Added on_lua_start for C++ mods.
Overload #1: This function fires whenever any Lua mod is started.
Overload #2: This function fires whenever a Lua mod by the same name as the C++ mod is started.
It allows interactions with Lua from C++ mods.

Added on_lua_stop for C++ mods.
Overload #1: This function fires whenever any Lua mod is about to be stopped.
Overload #2: This function fires right before a Lua mod by the same name as the C++ mod is about to be stopped.

Added UFunction::RegisterPreHookForInstance and UFunction::RegisterPostHookForInstance
These functions work the same as UFunction::RegisterPreHook/UFunction::RegisterPostHook except the callback is only fired if the context matches the specified instance
These new functions need to be handled with care as they can cause crashes if you don't validate that the instance you're passing during registration is valid inside the callback

Added overloads for UObject::GetFunctionByName and UObject::GetFunctionByNameInChain that take an FName instead of a string

Added UEnum::NumEnums, which returns the number of enum values for the enum

Added UEnum::GenerateEnumPrefix, which is the same as https://docs.unrealengine.com/5.2/en-US/API/Runtime/CoreUObject/UObject/UEnum/GenerateEnumPrefix/

Added UGameplayStatics::FindNearestActor

Added the following functions to AActor: K2_DestroyActor, K2_SetActorLocation, K2_SetActorLocationAndRotation, K2_GetActorRotation, K2_SetActorRotation, GetActorScale3D, SetActorScale3D, GetActorEnableCollision, SetActorEnableCollision, SetActorHiddenInGame, IsActorTickEnabled, SetActorTickEnabled, GetActorTickInterval, SetActorTickInterval, GetActorTimeDilation - Okaetsu

Experimental

Added ExperimentalFeatures section to UE4SS-settings.ini. All experimental features will default to being turned off. To use referenced features, change the relevant config setting to = 1

Added ability to call UFunctions from Live View GUI

Changes

General

The shortcut (CTRL + O) for opening the GUI is now a toggle, meaning it can also be used for closing the GUI

The shortcut (previously J) for dumping objects (generating UE4SS_ObjectDump.txt) has been changed to CTRL + J

The shortcut (previously D) for generating CXX headers has been changed to CTRL + H

Change AOB Sig Scanner backend to use std::find for major performance increase - inspired by Truman

Scan for specified time rather than number of attempts due to speed increase

Improved performance for U/FProperty lookups

Improved performance for UFunction lookups

Improved performance of the GUI log, it's now O(n) - trumank

BPModLoaderMod: Add ability to specify load order - Okaetsu

Add additional extensions to USMap dumper - Atenfyr; Archengius

Fix bug in USMap dumper with enums with 256 entries - Atenfyr

Live View

UHT Dumper

Lua API

Improved reliability of IsValid

C++ API

The callbacks for all hook registration functions inside the Unreal::Hook namespace can now take lambdas that capture variables

Changed many functions to use coroutines - LocalCC
This means the syntax for those functions is now identical to a range-based for loop instead of a function taking a callback

Repo & Build Process

Add automated release script - Truman

Change documentation build process; the docs will now have a dev version (at /dev) for changes on main branch and a current version (at normal root) for the state of the docs at the current release - Truman; Buckminsterfullerene

Removed libfmt dependency

Gradual work on getting Clang to work - LocalCC; Narknon

Fixes

General

Finish adding version 4.11 support

Fix case preserving names switch - LocalCC

Live View

Fixed two crashes occurring when exploring structs nested in arrays or other structs

UHT Dumper

Fixed enums inappropriately using uint8

Lua API

Fixed UnregisterHook

Fixed FText:ToString - LocalCC

Improved stability when using hooks or ExecuteInGameThread

TArrays are now resized when being indexed into if necessary

C++ API

Fixed FText constructor implementation via optional AOB - LocalCC

Fixed initialization functions not being correctly called when a mod is restarted - LocalCC

Fixed C++ mods not loading if a Lua mod with the same name is present

Settings

Added:

; Whether the cache system for AOBs will be used.
; Default: 1
UseCache = 1

; The number of seconds the scanner will scan for before giving up
; Default: 30
SecondsToScanBeforeGivingUp = 30

[ExperimentalFeatures]
GUIUFunctionCaller = 1

Removed:

; The maximum number attempts the scanner will try before erroring out if an aob isn't found
; Default: 60
MaxScanAttemptsNormal = 60

; The maximum number attempts the scanner will try for modular games before erroring out if an aob isn't found
; Default: 2000
MaxScanAttemptsModular = 2500

RE-UE4SS 2.5.2

01 May 21:03

Choose a tag to compare

Changelog

Note: This is a stopgap release to add Jedi Survivor support, and the below changelog is partially incomplete. Full changelog will be posted when version 2.6 is released.

Fixes

Fix more detached submodules (including Lua 5.4.4 update)
Expose certain additional classes to the member variable and vtable configs.

New

Add USMAP dumper extensions (Atenfyr)
Add Lua Type generator for use by a Lua language server (TrumanK). See https://marketplace.visualstudio.com/items?itemName=sumneko.lua and https://github.com/LuaLS/lua-language-server/wiki/Annotations
Font scaling setting for Live View

Live View

Add "PlayerControlled" to liveview tab

Lua

Add IsValid() to TArray
Fixed UnregisterHook
Expanded RegisterHook to work on BP functions where it previously only worked on native functions
Added UnregisterCustomEvent
Fixed bug that could cause hooked functions to not process the return value properly
Lua_lock implementation/threading fixes (ParcelRot)

UHT Dumper

Remove predeclarations in .cpp files

QoL

Add font scaling setting to live view GUI

Experimental

C++ Modding API (LocalCC + UE4SS) - Recommended to wait until 2.6 release to begin use.

RE-UE4SS 2.5.1

06 Mar 00:58

Choose a tag to compare

v2.5.1 Changelog

Fix detached submodules

v2.5.0 Changelog

New Features

Blueprint ModLoading

Added blueprint mod loading/actor spawning mod.
To enable, set BPModLoaderMod : 1 in Mods/mods.txt.
Blueprint mods go in /Game/Content/Paks/LogicMods

Creating BP mods is the same as using UML, a tutorial can be found here: https://www.youtube.com/watch?v=fB3yT85XhVA

Added creating LogicMods folder automatically.

Thank you to RussellJ for permission to implement this.

Lua

Update to Lua 5.4.4
Added support for UInterface.
Added several global lua functions, including 'IterateGameDirectories'. See API.txt for full details.
Added additional hooks and functions to Lua. See full list in API.txt. Note in particular:
- UnregisterHook (unregister a previously hooked function using the ids returned from the hooked function)
- RegisterCustomEvent (allows hooking of custom BP functions/events through ProcessInternal)
Non-struct out parameters now partially work. You need to create and pass a Lua table wherever there's an out-param. The value inside the table doesn't matter and is not passed to the UFunction. The table will have a field with the same name as the out-param which will contain the value.

Lua Mods:
Update to linetrace mod to use helpers

Live View

Added filtering by Inheritance or Instances only when searching in the live view. Accessed by right clicking in the search bar.

TMap Override Dumper

Dumps TMap overrides for UAssetAPI/GUI and FModel serialization of assets. This is a json file that gets input in the relevant program to allow it to parse TMaps with untyped structs as a key or value.

Changes

Live View

The live view array now uses a lower default number of objects per visual chunk (note that the objects are no longer 1 to 1 with the true UE "Chunks" in the array).
The default number of objects per chunk can be edited in the settings.
Added UHT Dumper and CXX Generator buttons to Dumpers tab.
Add timestamp to static mesh and actor dump file names.

Lua

FName global function now has an optional second param.

Fixes

CXX Gen

Generator will continue in certain events where it would previously crash.

UHT Generator

Generator will make a missed property comment in certain events where it would previously crash.
Fixed crash if FunctionSignature was nullptr in the UHT generator.

Lua

Fix mods not being enabled if carriage returns are used in mods.txt (Praydog)
Fixed 'RegisterHook' not working properly if the UFunction has spaces in its name.
Fix typo in Lua cpath causing DLLs to not get found (Praydog)
Added a lock guard for ExecuteInGameThread to prevent a crash.
Fixed 'EFindName' not being exposed to Lua properly.

Live View

Fixed a race condition in live view.
Fixed a crash when expanding an array of objects in live view.

Other

Mod developers and compatibility troubleshooting users may wish to download the DEV- zip. End users should download the normal files.

UE4SS Experimental Release Archive

01 Mar 00:30

Choose a tag to compare

Pre-release

Important: The default installation layout has changed. All UE4SS files (including UE4SS.dll, settings, and mods) now reside in a ue4ss subfolder next to your game executable. Only the proxy DLL (dwmapi.dll) remains in the game's Win64 directory. This keeps your game folder cleaner and makes it easier to manage UE4SS installations. Existing installations in the old location will continue to work for backwards compatibility if the UE4SS dll is replaced directly.

New

General

Added CMake build system alongside Xmake - (UE4SS #1067)

  • CMake >= 3.22 is now supported as the default build system
  • Documentation updated to reference CMake build instructions
  • xmake may be deprecated in the future. Meanwhile, we cannot guarantee ABI compatability

Added support for UE Version 5.7

Added support for UE Version 5.6 - (UE4SS #977)

Added support for UE Version 5.5 - (UE4SS #708)

Added support for UE Version 5.4 - (UE4SS #503)

Added basic support for Development/Debug/Test built Unreal Engine games (UE4SS #607)

  • To use this functionality, set DebugBuild to true in UE4SS-Settings.ini

Added command line option to disable RE-UE4SS loading via proxy DLL. Use --disable-ue4ss to launch game without UE4SS while keeping the proxy DLL installed. (UE4SS #1069)

Added command line option to specify custom UE4SS.dll path via proxy DLL. Use --ue4ss-path <path> to load UE4SS.dll from a custom location, supporting both absolute and relative paths. This allows developers to easily test different UE4SS builds without modifying files. (UE4SS #1074)

Added environment variable UE4SS_MODS_PATHS. This is a colon separated list of additional directories to load Lua and C++ mods from. (UE4SS #1069)

Added new build definition "LessEqual421". Using this definition for games on UE<=4.21 is not mandatory for UE4SS to function, but will ensure the correct alignment is used in containers.

BREAKING: - This also changes the default FName alignment from 8 to 4.

  • To use this functionality, enter LessEqual421 in the section of the XMake configuration command.

BREAKING: Changed default EFindName parameter for FName constructors from FNAME_Find to FNAME_Add.

  • FName constructors will now create new name table entries by default if the name doesn't exist, rather than returning NAME_None
  • To maintain the old behavior, explicitly pass FNAME_Find as the second parameter
  • This affects all string-based FName constructors

Added optional scans for GUObjectHashTables, GNatives and ConsoleManagerSingleton; made FText an optional scan; externed the found GNatives for use by mods(UE4SS #744)

  • GUObjectHashTables and ConsoleManagerSingleton are currently unused and a WIP.

UE Platform support, which allows for much easier internal implementation of new Unreal classes (UEPseudo #80) - narknon, localcc

Added new installation method by allowing overriding of the location of the UE4SS.dll, documentation. - (UE4SS #506) - Buckminsterfullerene

Add Github alerts pre-processor support to the documentation system (UE4SS #611) - Buckminsterfullerene

Added custom game configurations for Abiotic Factor (UE4SS #709)

Added custom game configurations for Psychonauts 2 (UE4SS #731)

Added custom game configurations for Lies of P (UE4SS #787)

Added custom game configurations for Project Silverfish (UE4SS #1066)

Added custom game configurations for Whiskerwood (UE4SS #1079)

Added custom game configurations for StarRupture (UE4SS #1150)

The GUI can now be rendered in the game thread if RenderMode in UE4SS-settings.ini is set to
EngineTick or GameViewportClientTick (UE4SS #768, UE4SS #794).

Added override Lua files for ProcessLocalScriptFunction and ProcessInternal UE4SS #823 - M3C3I

Added override Lua files for CallFunctionByNameWithArguments UE4SS #848 - M3C3I

Add error messages in places where only error codes were previously logged (e.g. load a C++ mod) UE4SS #902

Added [f: <address_or_module_offset> section to UE4SS_ObjectDump.txt UE4SS #866

Added line in the docs to add FText::FromString(FString&) as an alternative to FText::FText(FString&) for UE5 games - (UE4SS #1078)

Live View

Added search filter: IncludeClassNames. (UE4SS #472) - Buckminsterfullerene

Added search filter: Match Memory Address. (UE4SS #882) - vitrvvivs

Added ability to call UFunctions directly from the GUI. (UE4SS #851)

Added highlights for properties matching the Has property and Has property of type filters (UE4SS #1089)

Added a Dump as JSON button for individual objects, located next to the Find functions button (UE4SS #1112)

Lua Debugger

Added new Lua Debugger GUI tab with debugging tools for Lua mod development (UE4SS #1099)

  • Breakpoint management with hit counts
  • Step debugging (Step Into, Step Over, Step Out, Continue)
  • Call stack viewer with clickable frames
  • Locals and upvalues inspection
  • Global variables browser with search and tree navigation
  • REPL console with command history
  • Script editor
  • Loaded modules viewer
  • Mods management tab to view, enable/disable, and create Lua mods

Added individual mod restart/uninstall/start functionality to Lua Debugger (UE4SS #1105)

  • Restart and Uninstall buttons for running mods in the Mods tab
  • Start button for non-running mods without requiring a full hot reload
  • Restart/Start button in Script Editor tab for quick mod iteration
  • New file creation dialog with optional auto-require in main.lua

UHT Dumper

Added support for generating FUtf8String and FAnsiString properties in UHT-compatible headers (UE4SS #1015)

Lua API

Added support for FUtf8String and FAnsiString Unreal string types with string manipulation API (UE4SS #1015)

  • Refactored FString implementation to use unified TLuaStringBase template for code reuse and consistency

Added global functions for mod management (UE4SS #1105)

  • RestartCurrentMod() - Restart the currently running mod
  • UninstallCurrentMod() - Uninstall the currently running mod
  • RestartMod(ModName) - Restart another mod by name
  • UninstallMod(ModName) - Uninstall another mod by name

Added comprehensive Delayed Action System for game-thread timer management (UE4SS #1128)

  • New execution functions:
    • ExecuteInGameThreadWithDelay(delayMs, callback) - Execute after delay, returns handle
    • ExecuteInGameThreadWithDelay(handle, delayMs, callback) - UE Delay-style (only executes if handle not active)
    • RetriggerableExecuteInGameThreadWithDelay(handle, delayMs, callback) - Resets timer if called again (debouncing)
    • LoopInGameThreadWithDelay(delayMs, callback) - Repeating timer with handle
    • ExecuteInGameThreadAfterFrames(frames, callback) - Frame-based delay (requires EngineTick)
    • LoopInGameThreadAfterFrames(frames, callback) - Frame-based repeating timer
    • MakeActionHandle() - Generate unique handle for use with delay functions
  • Timer control functions:
    • CancelDelayedAction(handle) - Cancel a pending action
    • PauseDelayedAction(handle) - Pause a timer
    • UnpauseDelayedAction(handle) - Resume a paused timer
    • ResetDelayedActionTimer(handle) - Restart with original delay
    • SetDelayedActionTimer(handle, newDelayMs) - Change delay and restart
    • ClearAllDelayedActions() - Cancel all actions for current mod
  • Query functions:
    • IsValidDelayedActionHandle(handle) - Check if handle exists
    • IsDelayedActionActive(handle) - Check if timer is running
    • IsDelayedActionPaused(handle) - Check if timer is paused
    • GetDelayedActionRate(handle) - Get configured delay
    • GetDelayedActionTimeRemaining(handle) - Get remaining time
    • GetDelayedActionTimeElapsed(handle) - Get elapsed time
  • New global variables: EngineTickAvailable, ProcessEventAvailable
  • New enum: EGameThreadMethod with ProcessEvent and EngineTick values
  • ExecuteInGameThread now accepts optional second param...
Read more

RE-UE4SS 2.3.1 Hotfix

25 Jan 16:34

Choose a tag to compare

Adds missed commit related to UHT gen ordering. See v2.3.0 release for full changelog.

RE-UE4SS 2.3.0 Release

25 Jan 16:09

Choose a tag to compare

New

Lua

  • Added 'ModRef.SetSharedVariable' and 'ModRef.GetSharedVariable'

  • Added UObject.HasAnyInternalFlags

  • Added global table: 'EInternalObjectFlags'

  • You can now set an ObjectProperty value to nil. Previously such an action would be ignored

  • When calling 'IsValid()' on UObjects, whether the UObject is reachable is now taken into account

  • The splitscreen mod now operates independently of the Lua state which means that hot-reloading shouldn't cause it to break

  • Added shared module "UEHelpers" to provide shortcut functions to the Lua module for commonly used UE functions or classes

Live View GUI

  • Default renderer of the GUI has been changed to OpenGL for compatibility reasons. This can be changed back to dx11 by editing the setting in UE4SS-settings.ini to "dx11"

Changes

UHT Generation

  • Buckminsterfullerene - Includes and forward declarations are now ordered to allow for easier diffing
  • Buckminsterfullerene - Added setting to force "Config = Engine" on UCLASS specifiers for classes with "DefaultConfig", "GlobalUserConfig" or "ProjectUserConfig"

CXX Dump

  • Buckminsterfullerene - Structs and classes are now ordered to allow for easier diffing

Fixes

UHT Generation

  • Praydog - Fixes to build.cs generation
  • Buckminsterfullerene - Tick functions now include the required template

RE-UE4SS 2.2.1 Hotfix

17 Jan 13:57
54c5e95

Choose a tag to compare

Fixes:

UHT Generation

  • Fixes bug introduced in 2.2.0 that caused certain modules not to be included in the build.cs files

RE-UE4SS 2.2.0

15 Jan 21:59

Choose a tag to compare

New

Live View Debugger

  • Add live editing of properties. May be unstable with certain structs. Please report crashes with an Issue.

image

image

Keybinds

  • The old lua mods that only registered a key bind (ObjectDumperMod, UHTCompatibleHeaderGeneratorMod, & CXXHeaderGeneratorMod) have been removed.
  • If you have an old mod installed, it takes precedence over the new mod.
  • The new mod will have all keybinds listed at the top of the file to make it easy to see which key binds are already in use.
  • Added keybinds for the USMAP (CTRL + NUM_SIX), All Actor (CTRL + NUM_SEVEN) and Static Mesh (CTRL + NUM_EIGHT) dumpers.

Lua

  • Add mod - LineTraceMod - Prints name of object in center of camera to console. Not enabled by default.
  • Add mod - SplitScreenMod attempts to spawn additional player characters in splitscreen mode. Edit the main.lua script to change how the first controller functions. Not enabled by default.
  • New ExecuteInGameThread function for improved compatibility with certain internal UE functions

Fixes

UHT Generation

  • Praydog - Fixed certain possible crashes with UHT Generation
  • Praydog - Fixed UHT Generation crashing on building stubs when Engine module dumping is enabled
  • Allow Instanced specifier on Map properties where the value is a UObject base
  • Add GetTypeHash inline function generation for structs used in Map properties

General

  • Praydog - StaticConstructObject: Fix crash when Params.Class is nullptr

Known Issues

  • Certain structs will cause crashes when live editing
  • You must edit certain structs from the highest level rather than from the tree view (editing within the tree view is disabled currently).