UBA settings distribution

Hi there,

I would like to ask how you distribute UBA settings to users. From what I understand, UBA configuration is done through the file Engine\Saved\UnrealBuildTool\BuildConfiguration.xml, which allows enabling UBA compilation, setting the number of cores, etc. Is there any way to configure this file and distribute it to users? Is there any GUI for this, similar to Unreal Toolbox, where similar settings can be managed for the Horde agent?

We have been considering a solution on our side: adding a button to the workspace panel in UGS that would open new settings representing a basic UI panel for configuring the BuildConfiguration.xml file. Or is there a better approach to this? What would you recommend?

thanks and regards

Lubos Suk

[Attachment Removed]

Hi Luboš,

Yes, UBT and in turn UBA can be configured via that .xml file. In 5.7, UBT settings can also be configured through .ini files, like BaseEngine.ini.

For internal projects at Epic, we distribute these settings as part of checked in code in the Perforce stream. There’s no UI to change this but we also don’t expect developers to change these.

Older style of BuildConfiguration.xml based configuration can also be checked in of course.

What settings do you want users/developers to change?

A BaseEngine.ini example:

[Horde]
ServerUrl="https://horde.mystudio.com/"
 
; Default provider used if none are set for UnrealBuildTool
[Uba.Provider.Horde]
Pool=MyPoolForUba
MaxCores=1000

[Attachment Removed]

HI Carl,

thanks for your explanation. I didnt notice option to set it up in BaseEngine.ini.

But when you use it as checked file from Perforce stream, then it is also distributed onto agents? Or you have different streams for users and agents.

We wana to keep developers to decide when to use UBA, when to show UBA visualiser and setup core limits and other stuff.

[Attachment Removed]

Yes, it’s the same stream for workstations and build machines.

.ini files are better in this regard, and it’s what we recommend over using the .xml. Though it requires 5.6 or newer.

[UbaController]
+BuildMachineProviders=Uba.Provider.Horde.BuildMachine
 
[Uba.Provider.Horde.BuildMachine]
Cluster=_auto
MaxCores=1000
Enabled=BuildMachineOnly

We don’t enable the visualizer by default for anyone, it’s opt-in for developers on workstations.

Are there other settings you want set differently between these two scenarios?

[Attachment Removed]