Registering an Installed Build
UE4 has the concept of "foreign" projects and "non-foreign" projects. Foreign projects are those stored in a separate directory tree to the Engine, while non-foreign projects are stored in sub-directories of the engine root, referenced by the
The "EngineAssociation" field in a
.uproject file identifies which Editor version will open the project. For non-foreign projects, it is left blank, because being non-foreign implies the existence of an Editor in a (known) relative location, up from the directory hierarchy of the project. For foreign projects using Engine builds installed by the Launcher, the field will contain the official version number (such as "4.19"), and the Launcher can find the appropriate Editor binary (assuming it has been installed) based on its list of installed applications. For foreign projects using an Engine build distributed by means other than the Launcher, the Engine build's random unique identifier can be used to find the installed directory via a globally-accessible data repository, specifically, the registry on Windows, or a file in the library folder on Mac. If an association with an installed Editor build cannot be found, the user will be prompted to select a version, and the
.uproject file will be updated with the selected version.
When distributing an Installed Build to a team, make sure that the build's identifier is common to everyone. This will prevent the Editor from prompting for version selection, and then updating the
.uproject file with a locally-generated unique identifier. Setting a custom identifier can be done as follows:
- On Windows, add a registry key to HKEY_CURRENT_USER\\SOFTWARE\\Epic Games\UnrealEngine\Builds that uses your identifier as its key, and the path to the Engine as its value. For example, the Key might be "MyCustom419" , and the value might be "D:\CustomUE4".
- On Mac, open /Users/MyName/Library/Application Support/Epic/UnrealEngine/Install.ini and and add an entry to the "[Installations]" section that uses your identifier as the key, and the path to the Engine as the value. For example:
MyCustom419 = /Users/MyName/CustomUE4