UnrealBuildTool supports building several target types:
- Game - A standalone game which requires cooked data to run.
- Client - Same as Game, but does not include any server code. Useful for networked games.
- Server - Same as Game, but does not include any client code. Useful for dedicated servers in networked games.
- Editor - A target which extends the Unreal Editor.
- Program - A standalone utility program built on top of the Unreal Engine.
Targets are declared through C# source files with a .target.cs extension, and are stored under your project's Source directory. Each .target.cs file declares a class deriving from the TargetRules base class, and sets properties controlling how it should be built from its constructor. When asked to build a target, UnrealBuildTool will compile your target.cs file and construct the class inside it to determine its settings.
The name of the class must match the name of the file it's declared in followed by 'Target' (so for example, MyProject.target.cs defines the class 'MyProjectTarget').
The typical structure for a target file is as follows.
<code class="language-cpp">using UnrealBuildTool;
public class MyProjectTarget : TargetRules
public MyProjectTarget(TargetInfo Target) : base(Target)
Type = TargetType.Game;
// Other properties go here