Installed builds(use to be called Rocket builds) are a compiled version of the Engine. For example, when you download an engine version from the Epic Launcher, its actually an Installed build.
The main reason you would want to make an installed build is to speed up compilation time when working with custom or non compiled versions of the engine. The perfect example and my current use case is that I want to make a dedicated server. In order to decrease the download size of the engine, Epic leaves out server targets as options to build.
Creating an installed build isn’t too bad once you know the right command to use. The only prerequisite to installed builds is having the engine source available on your pc. If you don’t have that the following docs will walk you through it - Downloading Engine Source.
C:\Projects\UnrealEngine\Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -set:WithClient=true -set:WithServer=true -set:WithDDC=true -set:WithLinux=true -set:WithWin64=true -set:WithWin32=false -set:WithMac=false -set:WithAndroid=false -set:WithIOS=false -set:WithTVOS=false -set:WithLumin=false -set:WithLinuxAArch64=false -set:WithHoloLens=false -set:WithLuminMac=false -set:WithHoloLens=false WithLuminMac=false -set:WithFullDebugInfo=true
Lets pull apart the above command.
- Location of my Unreal Engine source:
- Location of the Unreal Automation Tool followed by the command we want to use: Engine\Build\BatchFiles\RunUAT.bat BuildGraph`. More info on Build Graph
- What target we are building for:
target="Make Installed Build Win64"
- File containing all possible options for this command:
- What platforms we are building for. For example, WithServer allows me to build dedicated servers: -set:WithClient=true -set:WithServer=true
- Adds debug symbols to the Installed Build. I mostly do this to make troubleshooting easier, this is normally set to false.
- All the other options With(Insert Platform name here): This tells the script what targets to include. Since my game client is in Windows and my dedicated server is in Linux, I tell it to include Windows and Linux platforms and exclude all other platforms. If you only wanted to build for your host platform, for example I have a Windows PC and I only want to make Windows game clients and servers, use -set:HostPlatformOnly=true
Last minute touches. Depending on whether you are building UE4.26/27 or 5, there are a few options that may change.
- If you don’t have the Xbox/PS components, exclude those from the script. You WILL NOT have these by default.
- I’m not sure where the cut off was, but I recently did a 4.27 build and HTML5 is not longer a build target. Remove that from the command
- Exclude these options for UE4.
- If you’re looking to reduce the final size even further, consider dropping some of the build targets for your game. I build for Development and Shipping most of the time so I only included those two options in my installed builds.
-set:GameConfigurations=Development;Shipping. You can add more options with the following syntax, “;BuildTarget”. If I wanted to do DebugGame that would look like,
-set:GameConfigurations=Development;Shipping;DebugGame. This example is the default value if you omit this setting in your build command
- Last one, if you are doing a UE4 build, add this
-set:VS2019=trueif you are using VS Studio 2019.
For more info on installed builds, check out Epic’s docs - Installed Builds