> ## Documentation Index
> Fetch the complete documentation index at: https://docs.buildpixel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Build settings

> What you configure to make a build happen. Every build is an instance of one.

A build setting attached to a project describes **what** to build, **where from**, and **when**.

## Fields

```ts theme={null}
type BuildSetting = {
  platform: "Win64" | "Linux" | "Mac" | "Android" | "IOS";
  buildType: "Development" | "Shipping" | "DebugGame" | "Test" | "Server";

  // Where from
  branch?: string;       // GitHub: branch name
  streamPath?: string;   // Perforce: stream / depot path

  // Engine + project
  ueVersion: string;     // "5.4", "5.3"
  uprojectPath?: string; // override .uproject auto-detection

  // When
  trigger: "manual" | "push" | "scheduled";

  // Post-build
  notifyOnComplete: boolean;
  autoDeploy: boolean;
  uploadBuildUrl?: string;  // POST endpoint for the artifact
};
```

## Common patterns

<CodeGroup>
  ```json Daily Win64 Development build theme={null}
  {
    "platform": "Win64",
    "buildType": "Development",
    "branch": "main",
    "ueVersion": "5.4",
    "uprojectPath": "MyGame.uproject",
    "trigger": "push",
    "notifyOnComplete": false
  }
  ```

  ```json Release candidate (manual) theme={null}
  {
    "platform": "Win64",
    "buildType": "Shipping",
    "branch": "release/1.0",
    "ueVersion": "5.4",
    "uprojectPath": "MyGame.uproject",
    "trigger": "manual",
    "notifyOnComplete": true
  }
  ```

  ```json Linux dedicated server (scheduled) theme={null}
  {
    "platform": "Linux",
    "buildType": "Server",
    "branch": "main",
    "ueVersion": "5.4",
    "trigger": "scheduled"
  }
  ```

  ```json Auto-deploy to StreamPixel theme={null}
  {
    "platform": "Win64",
    "buildType": "Development",
    "branch": "main",
    "ueVersion": "5.4",
    "trigger": "push",
    "autoDeploy": true,
    "uploadBuildUrl": "https://api.streampixel.io/v2/runtimes/<id>/builds/upload"
  }
  ```

  ```json Perforce stream theme={null}
  {
    "platform": "Win64",
    "buildType": "Development",
    "streamPath": "//streams/mygame-mainline/main",
    "ueVersion": "5.4",
    "trigger": "manual"
  }
  ```
</CodeGroup>

## Field detail

### `platform`

UE-canonical names. See [Platforms & build types](/builds/platforms-and-targets).

### `buildType`

Maps directly to UE's `-clientconfig=` flag.

| Type          | Optimized | Editor code | Symbols      | Use for                         |
| ------------- | --------- | ----------- | ------------ | ------------------------------- |
| `Development` | partial   | yes         | yes          | Daily builds, internal testing  |
| `Shipping`    | full      | no          | no           | Release builds for end users    |
| `DebugGame`   | no        | yes         | full         | Hard-to-repro bug investigation |
| `Test`        | full      | no          | yes          | Profiling and perf work         |
| `Server`      | yes       | no          | configurable | Dedicated server builds         |

### `branch` / `streamPath`

For GitHub, set `branch` (e.g. `"main"`, `"release/1.0"`). For Perforce, set `streamPath` (e.g. `"//streams/mygame-mainline/main"`).

### `ueVersion`

`"5.4"`, `"5.3"`, etc. Overrides `EngineAssociation` from your `.uproject`. See [Engine versions](/builds/engine-versions).

### `uprojectPath`

Path to your `.uproject` relative to the repo root. Optional — BuildPixel auto-detects up to depth 3. Set this if your `.uproject` is deeper, or you have multiple uprojects in a monorepo.

### `trigger`

How the build fires. See [Triggers](/builds/triggers) for the three modes.

### `autoDeploy` + `uploadBuildUrl`

When set, BuildPixel POSTs the artifact to your URL the moment the build completes. The most common use is the [StreamPixel integration](/artifacts/streampixel) — but the URL can be any endpoint that accepts a multipart upload.

### `notifyOnComplete`

If `true`, org members get an email when the build finishes (success or failure).

## Multiple settings, one project

Most projects end up with a few build settings. Examples:

```
MyGame project:
├── Win64 / Development / main / push        ← daily dev builds
├── Win64 / Shipping / release/* / manual    ← RC / release builds
├── Linux / Server / main / push             ← server builds
└── Android / Development / main / scheduled ← nightly mobile
```

Each setting is independent. Push to `main` fires all matching settings simultaneously.
