UET (Unreal Engine Tool) makes building and testing Unreal Engine projects and plugins easy. It can distribute builds with BuildGraph, remotely execute automation tests on device and across multiple machines, handles fault tolerance and automatic retries and generally makes the whole experience of automating Unreal Engine a lot more pleasant.
UET is the successor to the Unreal Engine Scripts which are now deprecated.
UET can perform simple builds of projects and plugins without a BuildConfig.json
file. Simply run uet build
for a project or uet build -e <engine version>
for a plugin, and it will build your project or plugin with BuildGraph.
You can download the latest version of UET from the links below.
Once you have UET downloaded, you can install it into your PATH by running uet upgrade
. You can also use this command later on to update to the latest version.
UET will respect the UETVersion
property in BuildConfig.json
files. When you run uet upgrade
, this property will be updated/set if a BuildConfig.json
file exists. If the property is present, UET will automatically download the target version and re-execute the command under that version. This ensures that all of your team members and build servers are using the same version of UET to build your project, without you having to manually sync uet.exe
.
UET can be used to build Unreal Engine projects and plugins. It supports a simplified mode where you just build the project or plugin directly, and an advanced mode where you set up a BuildConfig.json
file that has the full set of options available.
The easiest way to use UET is by using uet build
to build a .uproject
or .uplugin
file. For projects, all you need to do is navigate to the directory the project is in and run:
uet build
The target engine will be detected from the .uproject
file. For plugins, you also need to specify the engine:
uet build -e 5.2
By default, only the host platform is built. You can build additional platforms by using the --platform
option:
uet build --platform Android --platform Linux ...
If you want to build for Shipping instead of Development, use --shipping
:
uet build --shipping
These options can be combined. For more information run uet build --help
.
Typically for testing out UET this is enough, but if you want to test or deploy your code, you'll need to set up a BuildConfig.json
file.
This tool is still a work-in-progress, so better documentation is still in the works. In the meantime, the documentation for Unreal Engine Scripts is pretty good if you want to set up a BuildConfig.json
for your project or plugin.
To build locally inside a folder that has BuildConfig.json
set up, run uet build -d <distribution> -e <engine>
.
To export the build for GitLab, run uet build -d <distribution> -e <engine> -x gitlab --executor-output-file .export.gitlab-ci.yml --windows-shared-storage-path <network share> --mac-shared-storage-path <network mount>
.
You can also add the options --test
, --deploy
and --strict-includes
to vary how the build is executed.
The big difference between the Unreal Engine Scripts and UET is how you invoke it. Previously you'd add the build scripts to your repository as a submodule, and invoke them with Build.ps1
and Generate.ps1
. Now you use uet build
for both cases, and you don't need to add anything as a submodule of your Git repository. Once you get uet
onto your PATH somewhere (by downloading it and running uet upgrade
), it will be available in every command prompt and can be automatically updated and version sync'd with your project.
UET is almost entirely compatible with the existing BuildConfig.json
files you were using with the Unreal Engine Scripts, except that the Type
property is now mandatory (it was previously optional and defaulted to "Plugin"; you must now set it to "Plugin" when building a plugin).
UET is licensed under the MIT license.