What's the appropriate way to have an engine-level BuildConfiguration.xml that gets applied to everyone?

Hey all,

I’d like to add the following “BuildConfiguration.xml” configurations to everyone in our repo:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
	<Telemetry>
		<Providers>
			<Item>StudioTelemetry.Provider.Horde</Item>
		</Providers>
	</Telemetry>
</Configuration>

Purpose is to enable Telemetry collection for UE tools on everyone’s workstation.

These are the documented locations for “BuildConfiguration.xml” (https://dev.epicgames.com/documentation/unreal-engine/build-configuration-for-unreal-engine):

  • “Engine/Saved/UnrealBuildTool/BuildConfiguration.xml”
  • “<USER>/AppData/Roaming/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml”
  • “My Documents/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml”
  • “<PROJECT_DIRECTORY>/Saved/UnrealBuildTool/BuildConfiguration.xml”

None of these seem right (they are either local only folders, or “Saved” folders which we exclude from the repo).

I feel like there are 2 acceptable options:

  • Option A: Use “Engine/Programs/NotForLicensees/UnrealBuildTool/BuildConfiguration.xml”
    • It is not mentioned in Unreal online documentation
    • UBT loads that file for non-installed engines
  • Option B: Add a custom location to UBT
    • E.g: “Engine/Build/UnrealBuildTool/BuildConfiguration.xml”
    • Requires a code change to “Engine\Source\Programs\UnrealBuildTool\System\XmlConfig.cs”

Is there another acceptable approach that I’m missing?

Does option A make sense? Since it isn’t documented, I’m worried Epic may remove that option silently in the future.

[Attachment Removed]

Steps to Reproduce[Attachment Removed]

Hi,

Both Options A or B are good. Option A would be: “{EngineDir}\Restricted\NotForLicensees\Programs\UnrealBuildTool\BuildConfiguration.xml” though. This folder is used for Epic configurations, but you can use it for your configs, this should work fine but it’s still a engine divergence so you need to remember adding this file if you upgrade the engine. Option B might be more obvious when you upgrade because this is a code divergence. It’s all about your upgrade path and how you tag the changes. The third option would be to submit the ‘<PROJECT_DIRECTORY>/Saved/UnrealBuildTool/BuildConfiguration.xml’ in your source control, but I personally often delete the ‘Saved’ directory to clean up disk, so it will eventually happen to somebody on your side too, so it’s not very good.

Regards,

Patrick

[Attachment Removed]