EngineAssociation with Installed Build

We have unique circumstances that make submitting our custom engine files to source control an issue. We understand that typically EngineAssociation is left blank, each user compiles their version of the engine locally, and when opening the .uproject, UE will find the custom engine by iterating up the file system until the UnrealEditor.exe is found.

Our goal is to create one Installed Build and ship this to the team, then update the .uproject with an EngineAssociation identifier that knows to use this Installed Build files pasted into Program Files.

Given we are compiling from source, can we edit a particular file (.json, Build.version, some source code, etc. in engine source) to preset the associated engine version ahead of time, then update our .uproject to match this and thereby know to use this engine version?

Or would we need to set a registry key association on each user machine?

Hi,

A colleague explained how engine association worked in detail here: [Content removed] You also have some explanation in D:\UE_5.5\Engine\Source\Runtime\Projects\Public\ProjectDescriptor.h (if you check the big comment over FString EngineAssociation;). You cannot preset it while you are creating the InstalledBuild because the association is external to the engine itself.

For your case, I would suggest this:

  • Create a unique identifier and set it into your .uproject for the “EngineAssociation” field.
  • Provide a script (or a installer) to copy and/or setup the installed engine. It should write the association in the registry, mapping the .uproject unique identifier and where the person put the InstalledBuild is on his disk.

For example, my registry looks like this. If have my UE 5.6 version under D:\UE_5.6 and my test project is mapped to it using a GUID. The unique identifier don’t need to be a GUID, it can be an arbitrary string, but by default the UnrealVersionSelector.exe generates GUID when you use it to create a mapping.

[Image Removed]Regards,

Patrick