Suzie is an Unreal Engine plugin that dynamically generates UHT (Unreal Header Tool) classes at editor runtime from dumped game class definitions. This allows working with game classes in Blueprint without having to generate headers and recompile if changed.
Suzie works in conjunction with jmap_dumper, a tool that dumps class information from running Unreal Engine games. The workflow is:
- Use jmap_dumper to dump class definitions from a running game into a .jmap (JSON) file
- Place the .jmap file in project's
Content/DynamicClassesdirectory - Suzie reads this file and generates all necessary classes at editor startup and during cooking
- All native game classes become available in the Blueprint editor
Suzie has been tested on Unreal Engine 5.3 through 5.6. Other versions may require minor tweaks (please submit a PR with fixes or create an issue showing errors).
Use jmap_dumper to dump class definitions from target game into a .jmap.gz (or plain .jmap) file.
-
Create a new C++ Unreal Engine project:
- Use the same engine version as the target game
- Use the same project name as the target game
-
Create the dynamic classes directory:
mkdir -p YourProject/Content/DynamicClasses- Copy the dumped .jmap file:
cp output.jmap.gz YourProject/Content/DynamicClasses/- Clone Suzie into project's Plugins directory:
cd YourProject/Plugins
git clone https://github.com/trumank/Suzie- Add Suzie to
.uprojectfile:
{
"Plugins": [
{
"Name": "Suzie",
"Enabled": true
}
]
}- Generate Visual Studio project files (right-click
.uproject> Generate Visual Studio project files) - Open the
.slnfile in Visual Studio and build the solution - Launch the editor:
- All native game structs, enums, and properties should now be available