Enabling Unreal Build Accelerator on Local Workstations
Update Engine Configuration
Section titled “Update Engine Configuration”Go to the Universal Foundry settings page, scroll down to “Horde API” and copy the “Horde API URL” to the clipboard.
In either Engine/Config/BaseEngine.ini or <YourGame>/Config/DefaultEngine.ini add:
[Uba.Provider.Horde.UniversalFoundry]ServerUrl=<Your Horde API URL>Enabled=True
Cluster=developerEncryption=aesMaxCores=256Check both files to see if you already have Uba.Provider.Horde sections in either BaseEngine.ini or DefaultEngine.ini. If you do, please reach out to support.
Enable UBA Compilation on Local Workstations
Section titled “Enable UBA Compilation on Local Workstations”On workstations where you’d like to enable remote compilation, create or edit %LocalAppData%\Unreal Engine\Engine\Config\UserEngine.ini (note the space in the path) and add this section:
[UbaController]Providers=Uba.Provider.Horde.UniversalFoundryCreate a new file %LocalAppData%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml containing exactly this:
<?xml version="1.0" encoding="utf-8" ?><Configuration xmlns="https://www.unrealengine.com/BuildConfiguration"> <UnrealBuildAccelerator> <bUseCrypto>true</bUseCrypto> </UnrealBuildAccelerator></Configuration>This needs to be done on every workstation per Epic’s documentation.
Important Note Regarding BuildConfiguration.xml
Section titled “Important Note Regarding BuildConfiguration.xml”Older versions of the engine used BuildConfiguration.xml for all UBA Settings. Some of these settings have been migrated to be loaded from .ini, others have not been. These settings can conflict with those set in the .ini files. The official Remote Compilation documentation states: “Note, you can alternatively configure UnrealBuildTool within Engine/Saved/UnrealBuildTool/BuildConfiguration.xml but this is not recommended and is a legacy approach.”. However, some settings still need to be configured via BuildConfiguration.xml, notably enabling encryption between workstations and build agents as done above.
Unfortunately, it’s not clear how/when/why BuildConfiguration.xml was created, so you’ll want to check your own project Perforce and developer workstations to see if there are rogue copies of it lying around and delete them. A list of locations where you might find this file can be found in the Build Configuration documentation.
Compiling
Section titled “Compiling”Compile as you normally would. When you initiate a build, a browser window will pop up prompting you to log into Universal Foundry. Follow the prompts and your compile will begin using cloud-based workers.
Shader Compilation
Section titled “Shader Compilation”NOTE: UBA communication for shader compilation is not encrypted as of 5.6
As of 5.6, there is a bug preventing shader compilation from working. Applying this small patch will correct the issue:
==== //uf/lyra-56/Engine/Source/Developer/UbaCoordinatorHorde/Private/UbaHordeAgentManager.cpp#2 (text) ====
@@ -369,6 +369,9 @@ ClusterInfo = Future.Get().Value; UE_CLOG(!ClusterInfo.ClusterId.IsEmpty(), LogUbaHorde, Verbose, TEXT("Received resolved cluster ID from Horde: %s"), *ClusterInfo.ClusterId); }+ else {+ ClusterInfo.ClusterId = Config.HordeCluster;+ }
// Request Horde machine for UBA agent TSharedPtr<FUbaHordeMetaClient::HordeMachinePromise, ESPMode::ThreadSafe> Promise = HordeMetaClient->RequestMachine(HordeRequestJsonBody, *ClusterInfo.ClusterId);We’ve requested Epic apply this change and expect to see it corrected in 5.7.