Skip to content

[01]Remote compile for Unreal Engine

Compile Unreal on many cores.
No Horde server.

Point stock UnrealBuildTool at Universal UBA with one config file. Workers start when your build asks for them, stop when they go idle, and are billed per second.

Invite-only early access · Unreal Engine 5.7 or newer

[02]Measured

A clean editor build, from 80 minutes to about 12.

Build time of a clean Unreal Editor build: 4,808 seconds on the build machine alone, 733 seconds with Universal UBA.
Before A 16-vCPU build machine alone
80 min4,808 s
After With four 32-vCPU workers from zero
12 min733 s

6.5× faster

Clean UnrealEditor Win64 Debug -NoDebugInfo build, 8,561 actions, Unreal Engine 5.8, with the build machine and workers in one Google Cloud region; measured on our staging service in November 2026. Your times depend on your upload speed and your distance from the workers.

[03]How it works

One file between your build and a fleet of workers.

  1. 01

    Create a token

    Sign in to the Universal UBA dashboard and create an API token. It is shown once; only a hash of it is kept.

  2. 02

    Add one config file

    Save BuildConfiguration.xml with your endpoint and token. On Windows it lives at %APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml. The dashboard fills both values in for you, or gives you a prompt for your coding agent that merges them into the file you already have.

  3. 03

    Build as usual

    UnrealBuildTool reads the file on every build. When it asks for help and none is free, workers start; when they sit idle past the hold you set, they stop.

Save as %APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml
<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
  <Horde>
    <Server>ENDPOINT</Server>
    <Token>TOKEN</Token>
    <Cluster>default</Cluster>
    <ConnectionMode>Relay</ConnectionMode>
  </Horde>
</Configuration>

ConnectionMode stays Relay: it is how UnrealBuildTool asks for an encrypted connection, and workers refuse anything else.

Paste into Claude Code, Codex or Cursor on the build machine
Set up Universal UBA remote compilation on this Windows build machine. Universal UBA runs Unreal Engine compile actions on remote workers; stock UnrealBuildTool finds it through its per-user BuildConfiguration.xml.

1. Find the Unreal Engine this machine builds with (Engine\Build\Build.version gives the version). Universal UBA needs 5.7 or newer: if it is older, stop and tell me.
2. Open %APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml. If the folder or the file does not exist, create it with exactly the configuration below.
3. If the file exists, copy it to BuildConfiguration.xml.bak first. Then keep every setting in it and replace only its <Horde> element with the one below, or add it inside <Configuration> if there is none.
4. Use the values exactly as given. ConnectionMode must stay Relay: the workers refuse unencrypted connections.
5. Check that the result is well-formed XML whose root is <Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">, saved as UTF-8.
6. UnrealBuildTool also reads BuildConfiguration.xml from %LOCALAPPDATA%\Unreal Engine\UnrealBuildTool, Documents\Unreal Engine\UnrealBuildTool, and each project's Saved\UnrealBuildTool folder. If any of those has a <Horde> element, tell me rather than changing it.
7. Leave the placeholder TOKEN in <Token> as it is. When you are done, tell me to replace it with my token from the Universal UBA dashboard. Do not ask me to paste the token here.
8. Do not start a build. Tell me what you changed, and that the next build I run will ask for workers.

The configuration:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
  <Horde>
    <Server>ENDPOINT</Server>
    <Token>TOKEN</Token>
    <Cluster>default</Cluster>
    <ConnectionMode>Relay</ConnectionMode>
  </Horde>
</Configuration>

Any agent that can edit files on the build machine will do. The dashboard gives you the same prompt with your endpoint filled in, and keeps your token out of it unless you choose to add it.

[04]What you get

Only the remote compile part of Horde, run for you.

  • /No Horde server

    No controller, database, agents or Perforce to run. Nothing to keep up when you are not building.

  • /Stock UnrealBuildTool

    Unreal Engine 5.7 or newer, unmodified. One XML file is the whole integration.

  • /Always encrypted

    The compute channel is AES-encrypted, and workers refuse to start UbaAgent on an unencrypted connection.

  • /Single-tenant workers

    A worker serves one account for its whole life and is then deleted. Workers are never reused across accounts.

  • /Scale to zero

    Workers start when a build asks for them and stop after an idle hold you choose, from 1 to 60 minutes.

  • /A cost ceiling

    Set a vCPU cap and nothing launches past it. A 128-vCPU cap at $0.002 per vCPU-minute is at most $15.36 an hour.

[05]Early-access pricing

Pay for worker time. Nothing else.

Worker sizes and prices in US dollars
Worker size Per minute Per hour
8 vCPU 32 GB $0.016 $0.96
16 vCPU 64 GB $0.032 $1.92
32 vCPU 128 GB $0.064 $3.84
64 vCPU 256 GB $0.128 $7.68
  • Billed per second, from when a worker is ready until it is released, idle hold included.
  • A launch that fails, or a worker that never becomes ready, is free.
  • Every size has 4 GB of memory per vCPU, and the price is linear in vCPUs: a size that halves your build time costs no more.
  • Usage and cost per day are in the dashboard.
  • Prices in US dollars. Early-access pricing may change before general availability.

[06]FAQ

Questions, answered plainly.

Which engine versions work?

Unreal Engine 5.7 or newer, with the stock UnrealBuildTool. No engine changes or plugins.

Which build machines are supported?

Windows build machines building Win64 targets. Other host platforms are not supported yet.

What leaves my machine?

The inputs of each compile action that runs remotely, sent over an encrypted connection straight to a worker that serves only your account. A worker is deleted when its idle hold runs out, and is never reused for another account.

How much upload bandwidth do I need?

More is better: your uplink is usually what limits the speed-up. In our tests a clean editor build sent about 7 GB from the build machine, averaging about 110 Mbps, and received about 2 GB back. With the uplink capped at 20 Mbps, remote workers helped little on that build. We are still measuring slower links and incremental builds.

Can I cap what I spend?

Yes. You set the most vCPUs your workers may use at once, and no worker launches past it, so the most an hour can cost is that cap times the per-vCPU rate. Idle workers stop after the hold you set.

How is this different from Horde?

Horde is Epic's whole build platform: a server with its database, agents, CI and storage. Universal UBA is only the remote compile part, run for you, with nothing to host. Teams that want the rest can talk to us about managed Horde.

Can I use it today?

Early access is by invitation. Request access below or email info@runreal.dev, and we will set you up.

[07]Early access

Your next build, on more cores.

Early access is by invitation. Leave your email and we will set you up.

Already invited? Sign in