Dumper-7 is a powerful SDK generator for all Unreal Engine games, supporting all versions of UE4 and UE5. It automatically generates a complete C++ SDK from any UE game, enabling you to interact with game internals programmatically.
✨ Comprehensive UE Support - Works with UE4 (all versions) and UE5
🚀 Fast Generation - Generates complete SDKs in seconds
📦 Multiple Output Formats - C++ SDK, .usmap mappings, IDA scripts, Dumpspace format
🔧 Highly Configurable - Extensive settings for customization
📚 Well-Documented - Complete guides for building and using the SDK
🎯 Type-Safe - Generated SDK with proper C++ types and inheritance
🔄 Dependency Resolution - Automatically handles package dependencies
⚡ Optimized - Efficient algorithms for large games (100k+ objects)
Choose your preferred build system:
Visual Studio (Recommended)
1. Open Dumper-7.sln in Visual Studio 2019/2022
2. Select x64-Release configuration
3. Build Solution (Ctrl+Shift+B)
4. Output: Bin/Release/Dumper-7.dll
CMake
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
See UsingCMake.md for details.
- Use your preferred DLL injector (e.g., Xenos, Process Hacker, etc.)
- Inject
Dumper-7.dll
into the game process - Wait for generation to complete (console window will show progress)
- Default output location:
C:\Dumper-7\GameName-GameVersion\CppSDK\
- The generated
SDK.hpp
file is now organized into clear sections (structs, classes) for easy navigation - See UsingTheSDK.md for a complete guide on using the generated SDK
- Check out SDKExample/ for a ready-to-compile sample project demonstrating SDK usage
Quick Tip: For faster compilation, include only specific package headers instead of SDK.hpp
:
#include "SDK/Engine_classes.hpp" // Instead of "SDK.hpp"
Document | Description |
---|---|
UsingTheSDK.md | Complete guide for using the generated SDK in your projects |
SDKExample/ | Ready-to-compile sample project demonstrating SDK usage |
UsingCMake.md | CMake build system guide |
Xmake.md | Xmake build system guide |
CONTRIBUTING.md | Guidelines for contributing to the project |
PROJECT_STRUCTURE.md | Detailed codebase organization and architecture |
OPTIMIZATION.md | Performance optimizations and best practices |
DUMPING_OPTIMIZATIONS.md | Latest performance improvements to dumping code |
Dumper-7 can be configured in two ways:
- Compile-time settings - Edit
Dumper/Settings.h
- Runtime settings - Create
Dumper-7.ini
file (see Config File)
You can dynamically change settings through a Dumper-7.ini
file:
- Per-game: Place in the same directory as the game's executable
- Global: Place in
C:\Dumper-7\
Example Dumper-7.ini
:
[Settings]
SleepTimeout=100
SDKNamespaceName=MyOwnSDKNamespace
Setting | Description | Default |
---|---|---|
SDKGenerationPath |
Output directory for generated SDK | C:\Dumper-7 |
SDKNamespaceName |
Namespace for SDK classes | SDK |
ParamNamespaceName |
Namespace for function parameters | Params |
bAddFinalSpecifier |
Add final to classes with no children |
true |
See Dumper/Settings.h
for all available settings.
If you find Dumper-7 useful, consider supporting the original developer:
Donate:
- KoFi: https://ko-fi.com/fischsalat
- Patreon: https://www.patreon.com/u119629245
Crypto:
- LTC:
LLtXWxDbc5H9d96VJF36ZpwVX6DkYGpTJU
- BTC:
1DVDUMcotWzEG1tyd1FffyrYeu4YEh7spx
Layouts are defined in ObjectArray.cpp
(around line 30):
UE4.11 - UE4.20 Layout
Add to FFixedUObjectArrayLayouts
:
FFixedUObjectArrayLayout // Default UE4.11 - UE4.20
{
.ObjectsOffset = 0x0,
.MaxObjectsOffset = 0x8,
.NumObjectsOffset = 0xC
}
UE4.21+ and UE5 Layout
Add to FChunkedFixedUObjectArrayLayouts
:
FChunkedFixedUObjectArrayLayout // Default UE4.21 and above
{
.ObjectsOffset = 0x00,
.MaxElementsOffset = 0x10,
.NumElementsOffset = 0x14,
.MaxChunksOffset = 0x18,
.NumChunksOffset = 0x1C,
}
All overrides are made in Generator::InitEngineCore()
inside Generator.cpp
:
GObjects Override
// Basic override
ObjectArray::Init(/*GObjectsOffset*/, /*ChunkSize*/, /*bIsChunked*/);
// With decryption
InitObjectArrayDecryption([](void* ObjPtr) -> uint8* {
return reinterpret_cast<uint8*>(uint64(ObjPtr) ^ 0x8375);
});
FName::AppendString Override
// Force GNames (useful if AppendString offset is wrong)
FName::Init(/*bForceGNames*/);
// Override offset
FName::Init(/*OverrideOffset, OverrideType=[AppendString, ToString, GNames], bIsNamePool*/);
ProcessEvent Override
Off::InSDK::InitPE(/*PEIndex*/);
Game crashes during dumping
- Attach Visual Studio debugger to the game process
- Inject
Dumper-7.dll
in Debug configuration - When crash occurs, note the exception and callstack
- Create an issue with:
- Exception details screenshot
- Callstack screenshot
- Console output
- Game information (name, version, UE version)
SDK compilation errors
Note: Only build errors matter; IntelliSense often shows false positives.
- In Visual Studio, go to Error List
- Select "Build Only" from dropdown (not "Build + IntelliSense")
- Screenshot the first error (often causes chain reactions)
- Screenshot the code causing the error
- Create an issue with screenshots
Generated SDK crashes at runtime
- Verify your code is correct (common mistake)
- Check that you're using the SDK correctly (see UsingTheSDK.md)
- Ensure all required
.cpp
files are included in your project - If still crashing, verify offsets are correct
GObjects not found
See Overriding GObjects-Layout to add your game's layout.
Before creating an issue:
- Read the documentation thoroughly
- Check existing issues for similar problems
- Verify you're using the latest version
When creating an issue:
- Use the issue template
- Provide all requested information
- Include screenshots/logs
- Be detailed and specific
See the Issues section below for detailed reporting guidelines.
We welcome contributions! Please see CONTRIBUTING.md for:
- Development environment setup
- Code style guidelines
- Submission process
- Testing requirements
For developers wanting to understand or contribute to Dumper-7:
- PROJECT_STRUCTURE.md - Detailed codebase organization and architecture
- OPTIMIZATION.md - Performance optimization details and best practices
Dumper-7 Architecture:
├── Engine Module → Unreal Engine object parsing
├── Generator Module → SDK file generation
│ ├── Managers → Dependency and resource management
│ ├── Generators → Format-specific output (C++, mappings, etc.)
│ └── Wrappers → Type-safe UE object wrappers
├── Platform Module → OS and architecture-specific code
└── Utils Module → Shared utilities (compression, encoding)
See PROJECT_STRUCTURE.md for details.
If you have any issues using Dumper, please create an issue on this repository and explain the problem in detail.
For Game Crashes
Attach Visual Studio's debugger to the game and inject Dumper-7.dll
in debug configuration.
Include:
- Screenshots of the exception causing the crash
- Screenshot of the callstack
- Console output
- Game information (name, version, UE version if known)
For Compiler Errors in SDK
Important: Only build errors are relevant. IntelliSense often reports false positives.
Include:
- Screenshot of the first error in the build output (causes chain reactions)
- Screenshot of the code causing the error
- Build configuration (Debug/Release, x64)
- Compiler version (MSVC/Clang/GCC)
For SDK Runtime Crashes
First: Verify your code thoroughly to ensure the error lies within the generated SDK, not your code.
Include:
- Minimal code example reproducing the crash
- Exception details
- Callstack
- Which SDK function/class causes the crash
This project is provided as-is for educational purposes. Use responsibly and respect game developers' terms of service.
- Original Dumper-7 by Fischsalat
- Contributors to this fork
- Unreal Engine community for research and documentation