Child #746 is complete: the shared normal packaging path adds UAT -build, builds explicit C++ editor targets before cooking, and delegates generated Blueprint/plugin targets to UAT. Published v1.2.2, source ad76aad; tests and Windows CI pass. A real isolated C++ template Win64 build/cook/upload succeeded on Fluffy's now-installed UE5.7.4.
This was a C++ template, not the original Blueprint-only OpenXR reproduction below. Keep #636 OPEN until that exact case is rebuilt with the published tool and evidence recorded. The deployed template Linux baseline remains UE5.7.3. See https://github.com/cederikdotcom/hydraunrealengine/blob/master/docs/runbooks/runbook.md .
Original report follows.
Found while packaging the first hydragon build on fluffy-dumpling-87, 2026-09-01.
hydraunrealengine package cannot package a Blueprint-only Unreal project that enables a plugin with C++ modules. The OpenXR plugin is such a plugin, so this hits every VR project we will ever build.
Reproduce, on fluffy with UE 5.7:
UE_5.7\Templates\TP_VirtualRealityBP to a project folder. It has no Source\ directory and enables OpenXR, OpenXREyeTracker and OpenXRHandTracking.hydraunrealengine package <project>.uproject --platform Win64 --config Development --output C:\Builds\hydragonPreflight passes and the engine is detected correctly (5.7.3). Then UAT says:
hydragon.uproject is has no code, but is being treated as a code-based project
for platforms Android, IOS, Linux, Mac, TVOS, Win64 because: OpenXR plugin is enabled.
Creating temporary .Target.cs files.
********** COOK COMMAND STARTED **********
System.IO.DirectoryNotFoundException: Could not find a part of the path
'...\Binaries\Win64\hydragonEditor.target'.
--no-compile does not help. It adds -nocompile -nocompileeditor (pkg/uat/uat.go:60), and the cook still needs a built editor target receipt, so it fails identically.
The command hydraunrealengine builds is:
RunUAT.bat BuildCookRun -project=... -targetplatform=Win64 -clientconfig=Development
-cook -stage -pak -archive -archivedirectory=... -prereqs -nodebuginfo -utf8output
There is no -build. That is correct for a pure Blueprint project, because there is nothing to build. It is wrong as soon as a code plugin promotes the project to code-based, because then UAT wants target receipts that only a build produces.
Adding -build gets past it.
Give package a way to build. Options, roughly in order of preference:
.uproject plugins, and if any enabled plugin has C++ modules while the project has no Source\, add -build automatically. This is the behaviour a creator expects: it just works.--build flag, and say in the error message that a code plugin was found so --build is needed.Whichever way, --no-compile should stop being offered as the answer for this case, because it makes it worse.
Every hydragon build hits this, and so will every other VR project we package. It is also the first thing a creator meets if they enable OpenXR, so it is an onboarding problem as much as a tooling one.