---
title: Install the private preview and render your first UI
description: Exact baseline, prerequisites, build commands and expected PIE result.
status: approved
visibility: public
sourceRevision: 933db5171161ac5966e3b9bca3fd3a965f5399cc
reviewedAt: 2026-09-22
---

# Install the private preview and render your first UI

This recipe uses the existing private `quartzui-host` repository at host revision `91fd772c282098157c4e7cded0263844f076e9fb` and plugin revision `933db5171161ac5966e3b9bca3fd3a965f5399cc`. Earlier independent testing built and rendered that pair on Windows. The later documentation review verified source, helper flags and reused-checkout integrity. It did not repeat the build or render: the exact-baseline verification checkout lacked compiled artifacts. This is not a clean-machine or fully executed reader-onboarding claim.

## Prerequisites

You need authorized read access to **both** private repositories, Git and Git LFS, a working Windows C++ Unreal toolchain, and the matching Unreal engine. Host access does not grant plugin access. Obtain both repository URLs and access through your existing preview contact. This page does not offer a public download.

| Component | Observed environment, not a broad support promise |
| --- | --- |
| OS and target | Windows 11; Win64 Development Editor, D3D11 |
| Engine | Hazelight AngelScript fork, UE **5.8.0**, matching installed engine required |
| C++ tools | Visual Studio Community 2026 18.8.2; x64/x86 VC tools component found; MSVC folder `14.51.36231`, compiler `14.51.36252` in prior build log |
| Windows SDK | `10.0.26100.0` headers installed and selected in the host build log |
| Git / LFS | `2.55.0.windows.3` / `3.7.1` observed during this documentation pass |
| Node / npm | `22.23.2` / `10.9.8` observed; not required to display the host's already built reference assets |

For a new Windows development machine, select Visual Studio's **Game development with C++** workload and its C++ compiler tools and Windows SDK, then follow the engine's prerequisite installer guidance. See [Epic's Visual Studio setup guide](https://dev.epicgames.com/documentation/unreal-engine/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine). The installed AS fork remains the evidence target: the existing compiler is newer than its preferred `14.50.35717` and produces a warning. A clean-machine installation and stock Epic UE 5.8 have not been validated by this work.

Node 22+ and a compatible Chrome are additionally required by the **later DevTools repair candidate**, not by this baseline rendering step. The tested candidate used Chrome `153.0.8010.53`. See [debugging](https://betterbuilt.games/docs/quartz-ui/debugging).

## 1. Check the checkout before setup

Inspect an existing checkout before setup. Preserve local changes, build outputs and caches. Set `$previewRoot` to the full path of your authorized reference-host checkout:

```powershell
$previewRoot = Read-Host 'Full path to the reference-host checkout'
git -C $previewRoot rev-parse HEAD
git -C $previewRoot ls-tree HEAD Plugins/QuartzUI
git -C "$previewRoot/Plugins/QuartzUI" rev-parse HEAD
git -C $previewRoot status --short
git -C "$previewRoot/Plugins/QuartzUI" status --short
```

For this baseline, expect host `91fd772c282098157c4e7cded0263844f076e9fb` and a `160000` gitlink to plugin `933db5171161ac5966e3b9bca3fd3a965f5399cc`. If the working plugin revision differs from that gitlink, this checkout is not the documented baseline. Do not reset or run setup over an active candidate checkout; use an agreed baseline checkout and record its actual revisions.

For an authorized developer who has no existing host, the following is the private baseline clone recipe. The destination must be unused; choose the approved project root for that machine. The commands below were source-reviewed; the later documentation review did not repeat a fresh clone or new remote LFS hydration.

```powershell
$previewRoot = Read-Host 'Full path to the reference-host checkout'
if (Test-Path -LiteralPath $previewRoot) { throw 'Destination exists; inspect and reuse it.' }
$hostRepositoryUrl = Read-Host 'Authorized host repository URL supplied with your preview access'
git clone --recurse-submodules $hostRepositoryUrl $previewRoot
if ($LASTEXITCODE -ne 0) { throw 'Private host/plugin clone failed.' }
git -C $previewRoot checkout --detach 91fd772c282098157c4e7cded0263844f076e9fb
if ($LASTEXITCODE -ne 0) { throw 'Baseline checkout failed.' }
powershell -NoProfile -ExecutionPolicy Bypass -File "$previewRoot/Tools/Setup-Checkout.ps1"
if ($LASTEXITCODE -ne 0) { throw 'Submodule/LFS setup failed.' }
git -C "$previewRoot/Plugins/QuartzUI" rev-parse HEAD
git -C $previewRoot lfs fsck
if ($LASTEXITCODE -ne 0) { throw 'LFS verification failed.' }
```

`Setup-Checkout.ps1` installs repository-local LFS hooks, initializes the pinned submodule, configures recursive Git behavior and pulls LFS assets. It can change the plugin checkout to the committed host pin. Never run it blindly over an active repair checkout.

## 2. Verify the files

The checkout must contain:

- `QuartzUIHost.uproject`, with the `QuartzUI` plugin enabled and a portable `5.8` engine association.
- `Plugins/QuartzUI/QuartzUI.uplugin`; module identifiers remain `QuartzUIRuntime`, `QuartzUIGAS`, `QuartzUIEditor`, `QuartzUITests`.
- `Content/QuartzUIConfig/DA_QuartzUIReference.uasset`, hydrated by LFS rather than left as a text pointer.
- `Content/QuartzUI/Apps/reference/index.html`, its assets and `quartzui.build.manifest` (seven web resources total).

At this exact host baseline the app asset is 1,629 bytes and has SHA256 `3ec27185ef39e69b1fb56f1c16de84c1335de6035e05a579e9afa08fd5ae6462`. Compare with `Get-FileHash -Algorithm SHA256`. Do not manufacture or text-edit the `.uasset`.

The host already selects `/Game/QuartzUIConfig/DA_QuartzUIReference.DA_QuartzUIReference`, `StartupPolicy=Automatic`, `DefaultScreen=main-menu`, and `StartupLayer=quartzui.menu` in `Config/DefaultGame.ini`. No new widget Blueprint, migration commandlet, frontend installation or Vite server is needed for this fixture.

## 3. Build and audit

Use the installed engine explicitly; do not depend on a machine-specific project association. Keep the existing build outputs and DDC.

```powershell
$engineRoot = Read-Host 'Full path to the matching installed Unreal engine root'
powershell -NoProfile -ExecutionPolicy Bypass -File "$previewRoot/Tools/Host.ps1" -Action Build -EngineRoot $engineRoot
if ($LASTEXITCODE -ne 0) { throw 'Editor build failed; inspect RepositoryBuild.log.' }
powershell -NoProfile -ExecutionPolicy Bypass -File "$previewRoot/Tools/Host.ps1" -Action Audit -EngineRoot $engineRoot
if ($LASTEXITCODE -ne 0) { throw 'Resource audit failed.' }
```

The build action targets **QuartzUIHostEditor Win64 Development**, with `-WaitMutex -FromMsBuild -architecture=x64`. Use this target for the reference host; other projects have their own targets. The audit calls `QuartzUIValidate -Mode=Shipping`; expect one app, seven admitted files and no issues. A Shipping-policy resource audit is **not a cooked or packaged build**.

Logs: `Saved/Logs/RepositoryBuild.log`, `Saved/Logs/RepositoryAudit.log`, and `Saved/QuartzUI/repository-audit.json`. Initial shader work can take several minutes; inspect progress before diagnosing a blank first frame.

## 4. Render the first UI

```powershell
& "$engineRoot/Engine/Binaries/Win64/UnrealEditor.exe" "$previewRoot/QuartzUIHost.uproject" -d3d11 -nosplash -nop4
```

In the Editor, open the default Entry map if necessary and click **Play**. Wait for the reference menu. Confirm PLAY MULTIPLAYER, SERVERS and SHOP are visible and the native log records protocol 1 and application readiness (`QuartzUI MVP Ready`). This visible result, together with readiness, is the quickstart success criterion. Do not require a successful DevTools connection for the baseline: its browser-Origin failure is already known.

When mouse capture requires release, use the physical **Shift+F1** chord. The later candidate QA could exercise native mouse selection but could not certify this physical-keyboard step using its synthetic input tools; the physical captured-mouse release step remains unverified for that candidate. Stop PIE when finished and close only the Editor session you started.

Optional baseline regression run:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File "$previewRoot/Tools/Host.ps1" -Action Test -EngineRoot $engineRoot
if ($LASTEXITCODE -ne 0) { throw 'Automation failed.' }
```

The baseline has eight focused policy/migration/shell tests. These do not establish native rendering or browser attachment by themselves. See [debugging and troubleshooting](https://betterbuilt.games/docs/quartz-ui/debugging) for failure diagnosis.

Source anchors in the host: `Tools/Setup-Checkout.ps1:10`, `Tools/Host.ps1:20`, `Config/DefaultGame.ini:4`, `Config/DefaultEngine.ini:1`, `QuartzUIHost.uproject:3`. Earlier independent baseline testing supplies the execution evidence. The later documentation review did not repeat cloning, C++ compilation or PIE, and did not verify a custom integration example.

Canonical HTML: https://betterbuilt.games/docs/quartz-ui/installation
