Skip to content

Ship Lab

Module: Core · Category: Release · Tool ID: ShipLab

The end-to-end build / packaging / release pipeline tool. From compile to cartridge. Hub panel is a launcher; the actual workflow lives in the Ship Lab custom asset editor (Pattern B) opened via a UShipLabProfile asset. Six phases: Readiness Check → Pre-Flight Validation → Build Profile → PSO Cache Wizard → Orchestrated Packaging (UAT) → Post-Build Verify.

Screenshot 01 — Hero shot — Hub launcher panel showing Create New / Open Selected buttons. Below: the Ship Lab editor open with the Build tab visible mid-package.


  • Setting up a new project’s build pipeline once and shipping it for years
  • Per-platform packaging — Win64 / Linux / Android / iOS — with profiled defaults
  • PSO cache generation for shipping titles
  • CI/CD orchestration — feed a Ship Lab profile to UAT, get a packaged build
  • Pre-launch verification — confirming the cooked build is shippable
  • Don’t use this for casual / dev builds — UE’s built-in File → Package is simpler for those
  • Don’t expect this to handle code signing / store submission — that’s still platform-specific (App Store Connect, Google Play Console, Steamworks)

The Hub panel has two paths:

  1. Open the EQLabs Hub — Ship Lab is in the Release category
  2. Click the tool card
  3. Click Create New — UE’s factory dialog opens; pick a folder and name
  4. The new UShipLabProfile asset opens in the Ship Lab editor
  1. Select a Ship Lab Profile in the Content Browser
  2. From the Hub launcher, click Open Selected
  3. Or browse to Open Presets Folder for the bundled platform presets at /EQLabs/ShipLab/Presets/

Once a UShipLabProfile is open, the editor provides six tabs:

Project-wide health check using the same audit engine as Project Health Dashboard, focused on shippability.

Validates project + profile against shipping requirements:

  • Build target sanity
  • Engine version compatibility
  • Required plugins enabled
  • Cook settings consistency
  • Platform-specific compliance (Android target SDK, iOS bundle ID, etc.)

Configure the build:

  • Platform (Win64, Linux, Android, iOS, etc.)
  • Configuration (Development, Test, Shipping)
  • Cook flags (iostore, oodle, pak, etc.)
  • Stage flags (archive, distribution build, etc.)
  • Output directory

Generate a Pipeline State Object cache for shipping titles. Critical for avoiding shader-compilation hitches at runtime.

Run UAT (Unreal Automation Tool) with the profile’s settings. Shows live log output, parses errors via the Failure Knowledge Base, exposes retry / cancel.

Post-build verification:

  • Confirms expected files exist
  • Checks file sizes against expected ranges
  • Validates platform-specific manifests
  • Patchwork integration — diff vs known-good baseline

Screenshot 02 — Build tab in progress — Build tab with UAT running, progress bar and live log visible, completion estimate.


  1. Hub → Create New → save profile
  2. In editor: Readiness → Preflight (fix issues) → Build Profile (configure)
  3. Save the profile
  1. Open the saved profile
  2. Skim Readiness + Preflight (fix any new issues)
  3. Switch to Build tab → click Start Build
  4. Watch live log; if errors, the Failure Knowledge Base parses common ones with suggested fixes
  5. After build completes, switch to Verify tab to confirm

The Ship Lab profile asset can be referenced by a custom UAT script — the profile’s settings drive the build deterministically.


Ship Lab ships preset profiles at /EQLabs/ShipLab/Presets/ covering:

  • Win64 Shipping
  • Win64 Development
  • Linux Shipping
  • Android Quest Shipping
  • (More per project / engine version)

Click Open Presets Folder in the Hub launcher to browse them. They’re materialized to the Content Browser on first editor launch.


Profile state is stored inside the UShipLabProfile asset. Hub launcher has no persisted settings.


  • UShipLabProfile asset — created via Create New
  • Packaged build — output of UAT, written to the profile’s configured output directory
  • PSO cache — generated by the PSO Wizard tab
  • Verification report — Verify tab output

  • Ship Lab is a custom asset editor (Pattern B) — Hub launcher is just an entry point; the real UI lives in FShipLabEditorToolkit
  • Patchwork integration — Verify tab can diff the cooked output against a known-good baseline (Phase B feature)
  • The bundled presets are starting points — every project needs platform-specific tuning; clone a preset before editing
  • UAT is the actual builder — Ship Lab orchestrates UAT calls; build issues are fundamentally UAT issues, often platform-specific
  • PSO cache is shipping-critical — without it, shipping builds hitch on first-time shader compiles in hot scenes


Report an issue with this tool

Opens our feedback form in a new tab with the tool name pre-filled.