Unreal Engine SDK Generator
  • C 53.6%
  • C++ 46.2%
  • CMake 0.2%
Find a file
Fischsalat 9c581b2047
Merge pull request #458 from lobodevs/dump-key
Optional dump key and output path features
2026-04-17 23:08:50 +02:00
.github/workflows workflow cleanup 2025-07-18 00:20:03 +02:00
.vscode Update xmake.lua add c_cpp_properties.json for xmake intellisense 2026-01-18 19:57:23 -06:00
cmake Translate code comments 2025-03-30 03:35:41 +05:00
Dumper Merge pull request #458 from lobodevs/dump-key 2026-04-17 23:08:50 +02:00
.gitattributes Update .gitattributes 2024-11-29 17:29:49 +01:00
.gitignore Add CMake support 2025-03-30 00:11:13 +05:00
CMakeLists.txt Fixed CMake build with cpp 20 2026-03-05 20:57:33 +08:00
CMakePresets.json Temporarily removed clang-cl 2025-03-30 00:59:10 +05:00
Dumper-7.sln Fixed some compiler errors on clang. 2026-03-25 13:31:23 +01:00
README.md Merge pull request #458 from lobodevs/dump-key 2026-04-17 23:08:50 +02:00
UsingCMake.md Simple cmake guide 2025-03-30 01:10:47 +05:00
UsingTheSDK.md docs: Add StaticName() type check example to UsingTheSDK.md 2025-08-15 09:49:16 +02:00
xmake.lua Update xmake.lua add c_cpp_properties.json for xmake intellisense 2026-01-18 19:57:23 -06:00
Xmake.md Xmake build script (#296) 2025-02-09 21:48:43 +01:00

Dumper-7

SDK Generator for all Unreal Engine games. Supported versions are all of UE4 and UE5.

How to use

  • Compile the dll in x64-Release
  • Inject the dll into your target game
  • The SDK is generated into the path specified by Settings::SDKGenerationPath, by default this is C:\\Dumper-7
  • See UsingTheSDK for a guide to get started, or to migrate from an old SDK.

Support Me

KoFi: https://ko-fi.com/fischsalat
Patreon: https://www.patreon.com/u119629245

LTC (LTC-network): LLtXWxDbc5H9d96VJF36ZpwVX6DkYGpTJU
BTC (Bitcoin): 1DVDUMcotWzEG1tyd1FffyrYeu4YEh7spx
USDT (Tron (TRC20)): TWHDoUr2H52Gb2WYdZe7z1Ct316gMg64ps

Overriding Offsets

  • Only override any offsets if the generator doesn't find them, or if they are incorrect

  • All overrides are made in Generator::InitEngineCore() inside of Generator.cpp

  • GObjects (see GObjects-Layout too)

    ObjectArray::Init(/*GObjectsOffset*/, /*ChunkSize*/, /*bIsChunked*/);
    
    /* Make sure only to use types which exist in the sdk (eg. uint8, uint64) */
    InitObjectArrayDecryption([](void* ObjPtr) -> uint8* { return reinterpret_cast<uint8*>(uint64(ObjPtr) ^ 0x8375); });
    
  • FName::AppendString

    • Forcing GNames:
      FName::Init(/*bForceGNames*/); // Useful if the AppendString offset is wrong
      
    • Overriding the offset:
      FName::Init(/*OverrideOffset, OverrideType=[AppendString, ToString, GNames], bIsNamePool*/);
      
  • ProcessEvent

    Off::InSDK::InitPE(/*PEIndex*/);
    

Overriding GObjects-Layout

  • Only add a new layout if GObjects isn't automatically found for your game.
  • Layout overrides are at roughly line 30 of ObjectArray.cpp
  • For UE4.11 to UE4.20 add the layout to FFixedUObjectArrayLayouts
  • For UE4.21 and higher add the layout to FChunkedFixedUObjectArrayLayouts
  • Examples:
    FFixedUObjectArrayLayout // Default UE4.11 - UE4.20
    {
        .ObjectsOffset = 0x0,
        .MaxObjectsOffset = 0x8,
        .NumObjectsOffset = 0xC
    }
    
    FChunkedFixedUObjectArrayLayout // Default UE4.21 and above
    {
        .ObjectsOffset = 0x00,
        .MaxElementsOffset = 0x10,
        .NumElementsOffset = 0x14,
        .MaxChunksOffset = 0x18,
        .NumChunksOffset = 0x1C,
    }
    

Config File

You can optionally dynamically change settings through a Dumper-7.ini file, instead of modifying Settings.h.

  • Per-game: Create Dumper-7.ini in the same directory as the game's exe file.

  • Global: Create Dumper-7.ini under C:\Dumper-7.

  • Profiles do not merge. In other words your global profile does not change the default settings.

  • SleepTimeout:

    • If non-zero dump will start after a delay
    • Values under 1000 assumed to be in seconds, otherwise in milliseconds
    • If both SleepTimeout and DumpKey are set whichever occurs first will trigger the dump
  • DumpKey:

    • If non-zero dump will start upon key press
    • Value should be a hex or decimal integer corresponding to a virtual keycode.
    • Hex integers should start with 0x.
  • SDKNamespaceName:

    • Changes the namespace in the generated files.
  • SDKGenerationPath:

    • Generate output at the specified path instead of C:/Dumper-7.
    • Paths are relative to game executable unless you use an absolute path including drive letter.
    • Use .. to access parent directories. Do not include quotes.

Example:

[Settings]
SleepTimeout=30
SDKNamespaceName=MyOwnSDKNamespace
DumpKey=0x77
SDKGenerationPath=./
  • These settings would generate the SDK in the same folder as the game and would start after 30 seconds or upon pressing F8.

Issues

If you have any issues using the Dumper, please create an Issue on this repository
and explain the problem in detail.

  • Should your game be crashing while dumping, attach Visual Studios' debugger to the game and inject the Dumper-7.dll in debug-configuration. Then include screenshots of the exception causing the crash, a screenshot of the callstack, as well as the console output.

  • Should there be any compiler-errors in the SDK please send screenshots of them. Please note that only build errors are considered errors, as Intellisense often reports false positives. Make sure to always send screenshots of the code causing the first error, as it's likely to cause a chain-reaction of errors.

  • Should your own dll-project crash, verify your code thoroughly to make sure the error actually lies within the generated SDK.