Lua scripting system platform, C++ Modding API, SDK generator, blueprint mod loader, live property editor and other dumping utilities for UE4/5 games.
- Lua Scripting API: Write lua mods based on the UE object system
- Blueprint Modloading: Spawn blueprint mods automatically without editing/replacing game files
- C++ Modding API: Write C++ mods based on the UE object system
- Live Property Viewer and Editor: Search, view, edit & watch the properties of every loaded object, great for debugging mods or figuring out how values are changed during runtime
- UHT Dumper: Generate Unreal Header Tool compatible C++ headers for creating a mirror .uproject for your game
- C++ Header Dumper: Generate standard C++ headers from reflected classes and blueprints, with offsets
- Universal UE Mods: Unlock the game console and other universal mods
- Dumpers for File Parsing: Generate
.usmap
mapping files for unversioned properties - UMAP Recreation Dumper: Dump all loaded actors to file to generate
.umaps
in-editor - Other Features, including Experimental features at times
The goal of UE4SS is not to be a plug-n-play solution that always works with every game. The goal is to have an underlying system that works for most games. You may need to update AOBs on your own, and there's a guide for that below.
The easiest installation is via downloading the non-dev version of the latest non-experimental build from Releases and extracting the zip content to /{Gameroot}/GameName/Binaries/Win64/
.
If your game is in the custom config list, extract the contents from the relevant folder to Win64
as well.
If you are planning on doing mod development using UE4SS, you can do the same as above but download the zDEV version instead.
Generating UHT compatible headers
Creating Compatible Blueprint Mods
Unreal Engine Modding Discord Server Invite
- A computer running Windows.
- Linux support might happen at some point but not soon.
- A version of MSVC that supports C++20, including std::format.
- Visual Studio 2019 (recent versions), and Visual Studio 2022 will work.
- More compilers will hopefully be supported in the future.
- Rust toolchain 1.73.0 or greater
- xmake
- Clone the repo.
- Execute this command:
git submodule update --init --recursive
Make sure your Github account is linked to your Epic Games account for UE source access. Do not use the--remote
option because that will force third-party dependencies to update to the latest commit, and that can break things. You will need your github account to be linked to an Epic games account to pull the Unreal pseudo code submodule.
There are several different ways you can build UE4SS.
Configure the project using this command: xmake f -m "<BuildMode>"
The build modes are structured as follows: <Target>__<Config>__<Platform>
Currently supported options for these are:
-
Target
Game
- for regular gamesCasePreserving
- for games built with case preserving enabled
-
Config
Dev
- development buildDebug
- debug buildShipping
- shipping(release) buildTest
- build for tests
-
Platform
Win64
- 64-bit windows
Now to build it, just run xmake
To generate Visual Studio project files, run the xmake project -k vsxmake2022
command.
Afterwards open the generated .sln
file inside of the vsxmake2022
directory
Note that you should also commit & push the submodules that you've updated if the reason why you updated was not because someone else pushed an update, and you're just catching up to it.
Note the following about how xmake interacts with VS
The vs. build plugin performs the compile operation by directly calling the xmake command under vs, and also supports intellisense and definition jumps, as well as breakpoint debugging.
This means that modifying the project properties within Visual Studio will not affect which flags are passed to the build when VS executes xmake
. XMake provides some configurable project settings
which can be found in VS under the Project Properties -> Configuration Properties -> Xmake
menu.
If you want to update git submodules, you do so one of three ways:
- You can execute
git submodule update --init --recursive
to update all submodules. - You can also choose to update submodules one by one, by executing
git submodule update --init --recursive deps/<first-or-third>/<Repo>
. Do not use the--remote
option unless you actually want to update to the latest commit. - If you would rather pick a specific commit or branch to update a submodule to then
cd
into the submodule directory for that dependency and executegit checkout <branch name or commit>
. The main dependency you might want to update from time to time isdeps/first/Unreal
.
All contributors since the project became open source: https://github.com/UE4SS-RE/RE-UE4SS/graphs/contributors
- Original Creator The original creator no longer wishes to be involved in or connected to this project. Please respect their wishes, and avoid using their past usernames in connection with this project.
- Archengius
- UHT compatible header generator
- CasualGamer
- Injector code & aob scanner is heavily based on his work, 90% of that code is his.
- SunBeam
- Extra signature for function 'GetFullName' for UE4.25.
- Regex to check for proper signature format when loaded from ini.
- Lots and lots of work on signatures
- tomsa
- const char* to vector<int> converter
- tomsa: Idea & most of the code
- Original Creator: Nibblet support
- const char* to vector<int> converter
- boop / usize
- New UFunction hook method
- RussellJ
- Blueprint Modloader inspiration
- Narknon
- Certain features and maintenance/rehosting of the project
- DeadMor0z
- Certain features and Lua updates/maintenance
- OutTheShade
- Unreal Mappings (USMAP) Generator
- DmgVol
- Inspiration for map dumper
- Buckminsterfullerene
- Rewriting the documentation, various fixes
- trumank
- Lua bindings generator, various fixes, automation & improvements
- localcc
- C++ API
- GreenHouse
- Otis_Inf
- SunBeam
- Motoson
- hooter
- Synopis
- Buckminsterfullerene