A small tool with a web interface to simplify UE5-based game development with Git LFS.
# From the root of the repo
$ yarn install
# Run the app in development mode
$ yarn devThe enums at src/main/lib/uasset/enums.ts mirror a handful of headers from
EpicGames/UnrealEngine (private repo, requires an
Epic-linked GitHub account). A full build of the engine is ~400GB and even a plain clone is
10-15GB, so we keep a sparse checkout of just the UObject headers we care about.
The source lives at .ue5/UnrealEngine/ (already in .gitignore).
One-time setup, from the repo root:
$ git clone --filter=blob:none --sparse https://github.com/EpicGames/UnrealEngine.git .ue5/UnrealEngine
$ cd .ue5/UnrealEngine
$ git sparse-checkout set Engine/Source/Runtime/Core/Public/UObject Engine/Source/Runtime/CoreUObject/Public/UObjectImportant: always run git sparse-checkout commands from inside .ue5/UnrealEngine/, or
pass -C .ue5/UnrealEngine explicitly. If you run one from the gitgame repo root by accident,
git will silently enable sparse-checkout on the gitgame repo (because that's the enclosing
.git it finds) and hide 99% of your working tree. Recover with:
$ git sparse-checkout disableFiles are never lost, they're still in HEAD/index, just filtered from the working tree.
If the working tree stays empty after set on the UE clone (blob fetch silently failing on the
private repo), force a re-materialize:
$ git -C .ue5/UnrealEngine sparse-checkout reapply
$ git -C .ue5/UnrealEngine checkout HEAD -- .To add more UE paths later (e.g. when we start writing type-specific shapers and need
Engine/Classes/Engine/Texture.h):
$ git -C .ue5/UnrealEngine sparse-checkout add Engine/Source/Runtime/Engine/Classes/EngineTo pull upstream updates before resyncing enum values:
$ git -C .ue5/UnrealEngine pullFiles that map to enums.ts:
Engine/Source/Runtime/Core/Public/UObject/ObjectVersion.h:EUnrealEngineObjectUE4Version,EUnrealEngineObjectUE5VersionEngine/Source/Runtime/CoreUObject/Public/UObject/ObjectMacros.h:PackageFlags,EObjectFlagsEngine/Source/Runtime/CoreUObject/Public/UObject/PackageFileSummary.h: header layout the parser reads
