Headless / CI Mode
The -run=MHABatch commandlet lets you run a full batch from the command line
without opening the Unreal Editor UI. Feed it a manifest, collect the exit code, and integrate
into any CI or automated pipeline.
Basic syntax
UnrealEditor-Cmd.exe YourProject.uproject ^
-run=MHABatch ^
-manifest="C:/path/to/batch.mhajson" ^
-log
On Linux / macOS replace UnrealEditor-Cmd.exe with UnrealEditor-Cmd
and use forward slashes for the manifest path.
Arguments
-manifest="<path>" Yes Absolute filesystem path to the .mhajson manifest to run. -log Recommended Writes engine and plugin log output to stdout. Required for CI to capture progress and errors. -logfile="<path>" No Redirect log output to a file instead of (or in addition to) stdout. -nosplash No Suppresses the engine splash screen. Useful for cleaner CI output. -nullrhi No Disables the GPU render backend. Do not use — the MetaHuman solver requires a real GPU. Included here only to document that it is not compatible. Exit codes
0 All jobs completed successfully. Artifacts are written and the manifest is updated. 1 One or more jobs failed or produced partial artifacts. The manifest records which jobs failed — re-run with Do Not Re-Process Solved Takes enabled to retry only the failed jobs. 2 Startup error — the commandlet could not initialize. Check that the manifest path is correct, required plugins are enabled in the host project, and the engine version matches the plugin build. Log output
With -log active, the commandlet emits structured progress lines every 10 seconds:
[MHABatch] Starting batch — 12 jobs queued
[MHABatch] Job 1/12 "Scene01_Take03" — ProcessPerformance (tracking)... 34%
[MHABatch] Job 1/12 "Scene01_Take03" — ProcessPerformance (fitting)... 78%
[MHABatch] Job 1/12 "Scene01_Take03" — Complete (142s)
[MHABatch] Job 2/12 "Scene01_Take04" — ValidateInput...
...
[MHABatch] Batch complete — 11 succeeded, 1 failed
[MHABatch] Manifest saved: C:/path/to/batch.mhajson
Failed jobs log the stage at which they failed and the error message from the solver.
All output is also written to the engine's default log at
YourProject/Saved/Logs/UnrealEditor-Cmd.log.
Example: GitHub Actions step
- name: Run MHA batch
run: |
"C:/Epic Games/UE_5.7/Engine/Binaries/Win64/UnrealEditor-Cmd.exe" \
"${{ github.workspace }}/MyProject.uproject" \
-run=MHABatch \
-manifest="${{ github.workspace }}/Saved/MHABatchProcessor/batch.mhajson" \
-log -nosplash
shell: cmd Retry failed jobs
When a batch finishes with exit code 1, the manifest on disk contains the
artifact state for every job. To retry only the failures:
- Open the manifest in the editor (File → Load Manifest in the batch panel).
- Enable Do Not Re-Process Solved Takes in Global Settings.
- Click Start Batch (or re-run the commandlet with the same manifest).
Jobs with "State": "Complete" artifacts are skipped. Only failed or partial jobs run.