Giter VIP home page Giter VIP logo

ue4genny's Introduction

UE4Genny

UE4Genny is an SDK generator for Unreal Engine games (late UE4 versions and UE5 supported). 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, 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 UE 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 UE to your UE4Genny directory (<UE4Genny directory>/Source/). UE4Genny will use this copy of UE's source code.
    • If you already have a copy of UE 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 UE 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 UE's source for a given game). You may also need to edit or add UE 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

This main branch version of UE4Genny is intended for recent versions of UE4 and UE5 that utilize the new FProperty system. If you're targeting a game that uses an older version of UE4 that still uses the UProperty system, please check out the experimental uproperty branch.

ue4genny's People

Contributors

cursey avatar yamashi avatar angelfor3v3r avatar praydog avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.