Windows runtime and tooling for integrating OpenCue with Unreal Engine MRQ.
This repository provides two product-facing executables:
opencue-ue-submitterfor job submissionopencue-ue-agentfor task execution
It also includes convenience launch scripts for local OpenCue core services
(cuebot, rqd, cuegui) and developer packaging tools.
| Component | Type | Responsibility | Entry |
|---|---|---|---|
run_cuebot.bat |
launcher script | start Cuebot (Java) with DB and port args | developer / local ops |
run_rqd.bat |
launcher script | activate conda env and start rqd.exe |
developer / worker host |
run_cuegui.bat |
launcher script | activate conda env and start cuegui.exe |
developer / TD |
opencue-ue-submit.bat |
wrapper | run opencue-ue-submitter.exe first, fallback to Python |
UE plugin or CLI user |
opencue-ue-agent.bat |
wrapper | run opencue-ue-agent.exe first, fallback to Python |
OpenCue task command |
src/ue_submit |
Python module | parse submit_spec.json, submit OpenCue job via outline/opencue |
submitter executable |
src/ue_agent |
Python module | execute OpenCue task in one-shot mode or persistent pool mode | agent executable |
build_exes.ps1 / build_exes.bat |
build tooling | package opencue-ue-submitter.exe and opencue-ue-agent.exe |
developer / release |
Assumptions:
- UE plugin installed
- this repository on disk
- OpenCue DB initialized (schema + seed data already applied)
conda create -n opencue_ue python=3.10 -y
conda activate opencue_ue
pip install -r requirements.txtOpen separate terminals from opencue-ue-services:
run_cuebot.bat
run_rqd.bat
run_cuegui.batNotes:
- Cuebot gRPC is
8443. run_cuebot.batdefaults HTTP to18080.run_rqd.batprepends repo root toPATH, so RQD can resolveopencue-ue-agent.bat.
.\opencue-ue-submit.bat test --host localhost --port 8443Expected output should contain "ok": true.
In UE plugin submit settings, point submit command to:
opencue-ue-submitter.exe(preferred), oropencue-ue-submit.bat(wrapper fallback path)
The plugin will generate two files under Saved/:
Saved/OpenCueSubmitSpecs/<job_id>_submit_spec.jsonSaved/OpenCueRenderPlans/<job_id>.json
The submitter consumes --spec (submit spec), then OpenCue workers consume
the render plan referenced by plan.plan_uri.
- UE plugin writes
submit_spec.jsonandrender_plan.json. - UE calls
opencue-ue-submitterwithsubmit --spec .... - Submitter creates OpenCue job/layer and sets layer command.
- RQD executes layer command:
opencue-ue-agent.bat run-one-shot-plan --plan-path <render_plan_path> - Agent resolves task index from
CUE_IFRAME(fallbackCUE_FRAME). - Agent launches
UnrealEditor-Cmd.exefor that task and exits with UE code. - OpenCue frame status updates from process exit code and task logs.
Key command used by the layer:
opencue-ue-agent.bat run-one-shot-plan --plan-path D:\path\to\render_plan.jsonThis mode keeps UE worker processes alive and dispatches tasks over HTTP.
Start service:
python -m src.ue_agent service --host 0.0.0.0 --port 9100Task bridge command (for layer command if you switch modes):
python -m src.ue_agent run-task --job-id <job_id> --level-sequence <asset_path>opencue-ue-submit.bat submit --spec D:\path\to\submit_spec.json
opencue-ue-submit.bat test --host localhost --port 8443opencue-ue-agent.bat run-one-shot-plan --plan-path D:\path\to\render_plan.json
opencue-ue-agent.bat service --host 0.0.0.0 --port 9100
opencue-ue-agent.bat run-task --job-id <job_id> --level-sequence /Game/Seqs/Seq0.Seq0Default runtime roots (can be overridden by env vars):
- one-shot logs:
logs/one_shot/ - persistent pool logs:
logs/worker_pool/ - worker pool data:
data/worker_pool/ - pid files from core launchers:
pids/
Useful files:
logs/cuebot.loglogs/rqd.loglogs/rqd_console.loglogs/one_shot/<job_id>/task_<index>.loglogs/one_shot/<job_id>/task_<index>.ue.loglogs/one_shot/<job_id>/task_<index>.runtime.json
.\build_exes.ps1 -Clean -InstallBuildDepsor:
build_exes.bat -Clean -InstallBuildDepsOutputs:
dist/opencue-ue-agent.exedist/opencue-ue-submitter.exe
Wrapper lookup order (opencue-ue-agent.bat / opencue-ue-submit.bat):
- exe next to bat
- exe in
dist/ - fallback to
python -m src.ue_agentorpython -m src.ue_submit
.\opencue-ue-submit.bat --help.\opencue-ue-agent.bat --help.\opencue-ue-submit.bat test --host localhost --port 8443- submit one job from UE
- verify task starts in CueGUI and logs appear in
logs/one_shot/<job_id>/
You can safely remove these local runtime/build artifacts:
build/logs/pids/src/**/__pycache__/.env(if you want to recreate from.env.example)
Do not delete unless you intend to reconfigure:
Downloads/cuebot-1.13.8-all.jarDownloads/schema-1.13.8.sqlDownloads/seed_data-1.13.8.sql
OpenCueForUnreal_Plugin(UE plugin)OpenCueForMRQ_Demo(demo project)




