Build Configurations Reference

Reference guide for solution and project build configurations.

Windows
MacOS
Linux
Prerequisite Topics

This page assumes you have prior knowledge of the following topics. Please read them before proceeding.

Build Configuration Descriptions

Unreal Engine 4 uses a custom building method via the UnrealBuildTool (UBT). This tool processes the information necessary to build the engine's reflection system, integrating your C++ code with Blueprints, replication, serialization, and garbage collection.

Every build configuration contains two keywords, and the first keyword indicates the state of the engine and your game project. For instance, if you compile using a Debug configuration, you will be able to debug your game's code. The second keyword indicates the target you are building for. For example, if you want to open a project in Unreal, you need to build with the Editor target keyword.

Build Configuration - State

Description

Debug

This configuration contains symbols for debugging. This configuration builds both engine and game code in debug configuration. If you compile your project using the Debug configuration and want to open the project with the Unreal Editor, you must use the "-debug" flag in order to see your code changes reflected in your project.

DebugGame

This configuration builds the engine as optimized, but leaves the game code debuggable. This configuration is ideal for debugging only game modules.

Development

This configuration enables all but the most time-consuming engine and game code optimizations, which makes it ideal for development and performance reasons. Unreal Editor uses the Development configuration by default. Compiling your project using the Development configuration enables you to see code changes made to your project reflected in the editor.

Shipping

This is the configuration for optimal performance and shipping your game. This configuration strips out console commands, stats, and profiling tools.

Test

This configuration is the Shipping configuration, but with some console commands, stats, and profiling tools enabled.

Build Configuration - Target

Description

[empty]

This configuration builds a stand-alone executable version of your project, but requires cooked content specific to the platform. Please refer to our Packaging Projects Reference page to learn more about cooked content.

Editor

To be able to open a project in Unreal Editor and see all code changes reflected, the project must be built in an Editor configuration.

Client

If you're working on a multiplayer project using UE4 networking features, this target designates the specified project as being a Client in UE4's client-server model for multiplayer games. If there is a <Game>Client.Target.cs file, the Client build configurations will be valid.

Server

If you're working on a multiplayer project using UE4 networking features, this target designates the specified project as being a Server in UE4's client-server model for multiplayer games. If there is a <Game>Server.Target.cs file, the Server build configurations will be valid.

Build Configuration for UE4 Solution

When compiling a UE4 solution, you are compiling our engine's source code together with your project's source code. The following build configurations are available when building your project this way:

Debug

DebugGame

Development

Shipping

Test

[empty]

Editor

Client

Server

Build Configuration for UE4 Project

When compiling a UE4 project, you are only compiling your project's source code. The following build configurations are available when building your project this way:

Debug

DebugGame

Development

Shipping

Test

[empty]

Editor

Client

Server

Debug

DebugGame

Development

Shipping

Test

[empty]

Editor

Client

Server

We currently don't provide a binary installer of Unreal Engine for Linux.
Linux users should refer to the Build Configuration for UE4 Solution section.
Refer to our Downloading Unreal Engine Source Code documentation to learn how to build Unreal Engine from source.

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback