An Unreal Engine 4 SDK generator using SdkGenny

Related tags

Game ue4genny
Overview

UE4Genny

UE4Genny is an SDK generator for Unreal Engine 4 games. It aims to provide a functional SDK that requires little to no editing after generation to use. Actual SDK generation is done via the sister project SdkGenny.

UE4Genny is intended for MODDING games not CHEATING!

Usage

UE4Genny requires some assembly (work on your part). It does not function out of the box. It contains NO code from Unreal Engine 4, you must provide that yourself. Here are the general steps to get UE4Genny working:

  1. Clone this repository.
  2. Download the source code for the correct version of UE4 that the game you are targeting uses.
    • You should also try using the same compiler the game uses to compile UE4Genny.
  3. Copy the Engine/Source/ directory from UE4 to your UE4Genny directory (<UE4Genny directory>/Source/). UE4Genny will use this copy of UE4's source code.
    • If you already have a copy of UE4 somewhere else and you would prefer to use that, you can set the CMake variable UE4_SOURCE_DIR to the directory you want to use.
  4. Compilation will likely fail at this point because some edits to the UE4 source is required. Namely:
    • <UE4 Source>/Runtime/CoreUObject/Public/UObject/Class.h: Make UEnum::Names, UStruct::SuperStruct public.
    • <UE4 Source>/Runtime/CoreUObject/Public/UObject/UnrealType.h: Make FBoolProperty::FieldSize, FBoolProperty::ByteMask and FBoolProperty::FieldMask public.
    • <UE4 Source>/Runtime/CoreUObject/Public/UObject/UObjectBase.h: Make UObjectBase::ClassPrivate public.
  5. UE4Genny should now compile.
  6. Make a new config header file for the game you are targeting (an example is provided in src/DRGConfig.hpp which works for the current Xbox Game Pass version of Deep Rock Galactic).
  7. Set the CMake variable CONFIG_HPP to the newly created config header file.
  8. Define the following constants in your newly created config header file (you need to find the values for these constants yourself):
// A memory pattern string that can be used to find the games GUObjectArray global variable.
constexpr char* GUOBJECTARRAY_PAT = "...";

// A memory pattern string that can be used to find the games FName::ToString() method.
constexpr char* FNAME_TOSTRING_PAT = "...";

// The VTable index of the games UObject::ProcessEvent virtual method.
constexpr int UOBJECT_PROCESSEVENT_INDEX = ...;

At this point you should be able to compile a game specific version of UE4Genny that will work with your target game. If it still does not work, attach a debugger and see what the problem is. Occasionally you will need to modify certain base structures so that they match what the game has (usually not required if you're using the correct version of UE4's source for a given game). You may also need to edit or add UE4 specific compiler definitions in the CMakeLists.txt. If it isn't working now it's up to you to fiddle around and figure out what changes you need to make to get everything that UE4Genny uses to match up with what your target game is using.

At the end of this process, simply inject UE4Genny.dll into the target game and wait for an sdk/ folder to appear.

Note about compatibility

UE4Genny is only tested with fairly recent versions of UE4. Older versions of UE4's reflection system was fairly different so UE4Genny won't work with those older versions. At least not by following the steps outlined above. For older versions you will likely need to make some minor changes to UE4Genny (basically FProperty was previously UProperty and so on for the various property types).

Comments
  • Invalid symbols in the name generation

    Invalid symbols in the name generation

    Hello, I'm working on a mod for Ender Lilies and came across an issue while dumping. Basically there are some classes being generated with a '+' in the middle. I made a band-aid fix here but thought you should know. Other than that, great project!

    opened by Darkratos 4
  • sdk folder usage

    sdk folder usage

    Hello,

    I generated a SDK for a test game, it seems complete, but when I include it in a project I get thousands of build errors, does it expect the UE4 source to be available as well? Is it not production ready?

    Thanks!

    opened by yamashi 2
  • Modify StaticClass lookups to use hashes of the full name instead of idx

    Modify StaticClass lookups to use hashes of the full name instead of idx

    There was an issue in the game I was working on where the generated indices did not correspond to the correct object. The object would be random after every restart of the game. So, I made it look up the object based on its name instead.

    This will require the project using the SDK to implement find_uobject.

    opened by praydog 0
  • What make your SDK Generator different than the others ❓

    What make your SDK Generator different than the others ❓

    Hello, just wanted to know what are the benefit of using your SDK Generator compared to if i were to give a try to https://github.com/guttir14/UnrealDumper-4.25 🤔

    I'm looking for dumping Back 4 Blood in offline, I just downloaded UE 4.25.0 source from github, built everything, generated a test game (shipping release with .pdb) and now doing an analysis it in Ida to make signatures, I assume Back 4 Blood have their structures changed for UObject and the others, So if i were to use your SDK generator, i assume i'd need to bring changes to the struct and rebuild your project.

    If i understood correctly, it only generate a SDK, then i would just make my own dll and include all the .h 🤔 I assume you do not provide anything to 'call' function or anything ? I know most of the unreal engine stuff, just that i almost never used it, though i made nice stuff on Mobile hacking (for Mortal Kombat, with the FName stuff 👺 using Frida Framework)

    So i wonder if you will have a long term support for your project, also https://github.com/guttir14/UnrealDumper-4.25 it provide nice ways to add the support for different game (that may have different structures tweaked) in case the targeted game developers did tweak the source code, So i don't really know if i should try yours, or the one from guttir honestly 🤔

    I just want to generate an SDK for this game, but i don't know if your SDK Generator will only read the files of my UE 4 Source code, because in this case, i would have an issue if i were to have multiple game(s) that have different structures tweaked, unless we can handle that with cmake ?

    There is some lack of documentation but it look to be a nice project.

    Edit: Nevermind i saw that we can use Cmake to target another UE4 Source directory.

    opened by Nightshades1 0
  • isA in DCast crashes game

    isA in DCast crashes game

    Trying to generate a sdk for the ue4.27.2 shootergame template game but calling DCast crashes the game. More specific it crashes when calling IsA in the function.

    opened by xderd 1
  • Injecting a dll causes the program to crash

    Injecting a dll causes the program to crash

    I have changed the following offsets: GUOBJECTARRAY_PAT , FNAME_TOSTRING_PAT,UOBJECT_PROCESSEVENT_INDEX Maybe I found the wrong offset for the song? Are there any tutorials on this?

    Regarding UOBJECT_PROCESSEVENT_INDEX: there are too many references, which one should I choose? image

    thanks

    opened by inaryart 2
  • All settings are correct. Sometimes it can dump but sometimes it can't?

    All settings are correct. Sometimes it can dump but sometimes it can't?

    GUOBJECTARRAY_PAT FNAME_TOSTRING_PAT and UOBJECT_PROCESSEVENT_INDEX all correct! The first time we can dump successfully, we will never dump again! VS2019 c++17 Release !

    Please teach me, thank you

    opened by flymoon1981 0
  • Missing dependecies on structs

    Missing dependecies on structs

    Hey, another problem I noticed is that the code doesn't handle TArray's (and probably other template types) dependencies. I'm doing a fix here (in the generate_fproperty function), but this is also something to look at in a future update.

    opened by Darkratos 11
Owner
hi
null
Unreal Engine Plugin to wrap Nuitrack SDK ( skeleton tracking solution by 3DiVi )

Nuitrack for Unreal Engine Unreal Engine plugin to bridge Nuitrack. Nuitrack is a middleware to provide 3d skeleton tracking solution using a depth se

Ayumu Nagamatsu 11 Nov 10, 2022
Creating Unreal Engine infinite landscapes/oceans using the editor shader graph and rendering them using Geometry ClipMap. It also allows to spawn mesh on landscape surface. UE5 required

Procedural Landscapes and Oceans in Unreal Engine 5 using Editor Shader Graph Latest version of this project is available as a plugin for UE 4.26+ on

Maxime Dupart 10 Oct 4, 2021
Full source code for WarriOrb, a Dark-Souls like action platformer - using Unreal Engine 4

WarriOrb source code WarriOrb is a hardcore action platformer where you play as a demon who is trapped in an unlikely body. The game mixes the difficu

Not Yet 247 Dec 30, 2022
Shows Unreal Engine logs in-game using ImGui

BYG Imgui Logger Displays Unreal's UE_LOG output in an ImGui window. Heavily based on the Console example from imgui_demo.cpp included with ImGui. Fea

Brace Yourself Games 46 Dec 16, 2022
Design-agnostic node editor for scripting game’s flow in Unreal Engine

Flow plug-in for Unreal Engine provides a graph editor tailored for scripting flow of events in virtual worlds. It's based on a decade of experie

Moth Cocoon 555 Jan 4, 2023
Niagara UI Renderer | Free Plugin for Unreal Engine 4

Niagara UI Renderer | Free Plugin for Unreal Engine 4 Niagara UI Plugin adds Niagara Particle System Widget that allows you to render Niagara particle

null 156 Dec 19, 2022
Third-person survival game for Unreal Engine 4 made entirely in C++.

Third-person survival game for Unreal Engine 4 made entirely in C++. Originally built as a 6 section tutorial series, now available as open-source C++ sample project.

Tom Looman 2.8k Dec 30, 2022
RenderStream plugin for Unreal Engine

This project relies on http://disguise.one software to function. For the plugin setup process - please see https://help.disguise.one/Content/Configuri

disguise 41 Dec 19, 2022
Simple CSV localization system for Unreal Engine 4

BYG Localization We wanted to support fan localization for Industries of Titan and found that Unreal's built-in localization system was not exactly wh

Brace Yourself Games 56 Dec 8, 2022
Edycja PianoFall zrobiona na Unreal Engine

PianoFall - Unreal Engine Edition Edycja PianoFall zrobiona na Unreal Engine (mój pierwszy projekt w UE) Obsługa Po uruchomieniu programu i wciśnięciu

Nadwey 4 Jun 17, 2021
Lambda support for Unreal Engine dynamic delegates

DynamicLambda Lambda support for Unreal Engine dynamic delegates This is experimental feature. Now only parametless lambdas are supported To see more

Andrew Derkach 28 Nov 29, 2022
Dialogue scripting language for Unreal Engine

Supertalk Welcome to Supertalk! This is a simple dialogue scripting language for Unreal Engine created due to frustration with visual dialogue tree wo

Sam Bloomberg 41 Nov 18, 2022
Procedural Mesh Modeling Toolkit for Unreal Engine Artists

OpenLand Mesh Procedural Mesh Modeling Toolkit for Unreal Engine Artists. Installation Get it via the marketplace ??️ For non-commercial projects, you

GDi4K 26 Nov 19, 2022
Unreal Engine 4 plugin for SteamVR passthrough camera support

SteamVR Passthrough Plugin This Unreal Engine 4 plugin adds SteamVR passthrough camera support using the OpenVR TrackedCamera API. Example project: ht

null 10 Dec 5, 2022
HLSL Material for Unreal Engine

HLSL Material for Unreal Engine Ever wanted to write complex material functions directly in HLSL? Now you can! Unreal Engine 4.26, 4.27 and 5.0 are su

null 417 Dec 28, 2022
Building Escape is a simple room escape game made with Unreal Engine 4.27 and C++.

Building-Escape Building Escape is a simple room escape game made with Unreal Engine and C++. The main purpose of the game is to find a way to escape

Christine Coomans 2 Dec 13, 2021
Unreal Engine OpenDRIVE plugin

Unreal Engine OpenDRIVE plugin This plugin allows you to manipulate your OpenDRIVE road network in Unreal Engine. It is built around esmini's RoadMana

Bertrand Richard 64 Dec 14, 2022
An Unreal Engine 4 silent aim method, not usable on all games. Tested on Fortnite, Rogue Company, Bloodhunt, and Splitgate.

UE4-Silent-Aim An Unreal Engine 4 silent aim method, not usable on all games. Only tested on Fortnite, Rogue Company, Bloodhunt, and Splitgate. Done t

null 50 Dec 25, 2022
Exposes Azure Kinect Support for integration into Unreal Engine Applications.

Azure Kinect for Unreal Engine Exposes Azure Kinect Support for integration into Unreal Engine Applications. Mainly for depth and color textures creat

Ayumu Nagamatsu 45 Jan 4, 2023