The original creator no longer wishes to be involved with or connected to this project, or to receive messages related to it. Please respect their wishes, and avoid using their past username(s) in connection with this project. It is being reuploaded as open source with their permission. Support for/updates to this project will now be very limited.
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.
Generating UHT compatible headers
- 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.
- Clone the repo.
- Execute this command:
git submodule update --init --recursive
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 three different ways you can build UE4SS.
- Execute this command:
build_auto.bat <BuildMode> <Target>
, example:build_auto.bat Release ue4ss
Valid build modes areRelease
andDebug
, and valid targets areue4ss
andxinput1_3
.
Parallel compilation is enabled for this build method. - Open the root UE4SS directory in CLion, select
ue4ss
orxinput1_3
from the target list and hit the build button.
Parallel compilation is NOT enabled for this build method. - Execute
VS_Solution/generate_vs_solution.bat
to generate a Visual Studio solution file.
Open the solution with Visual Studio 2019 or Visual Studio 2022, select the build type and build theue4ss
project.
Parallel compilation is enabled for this build method.
- Execute this command:
If you want to update dependencies, you do so one of three ways:
- You can execute
remote_update_first_party_submodules.bat
to update all first-party dependencies. - You can also choose to update dependencies one by one, by executing
git submodule update --init --recursive vendor/<RepoOwner>/<Repo>
.
Remember to 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 dependency to then
cd
into the submodule directory for that dependency and executegit checkout <branch name or commit>
.
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.
- 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
- 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
- GreenHouse
- Otis_Inf
- SunBeam
- Motoson
- hooter
- Synopis
- Buckminsterfullerene