# Configuration Options

Complete reference of all `StreamPixelApplication` configuration options, organized by category.

{% hint style="success" %}
All options except `appId` are optional. When omitted, values default to your Streampixel dashboard configuration.
{% endhint %}

## Connection

| Parameter     | Type      | Default      | Valid Values        | Description                           |
| ------------- | --------- | ------------ | ------------------- | ------------------------------------- |
| `appId`       | `string`  | **Required** | —                   | Project ID from Streampixel dashboard |
| `AutoConnect` | `boolean` | `false`      | `true`, `false`     | Auto-connect on initialization        |
| `streamerId`  | `string`  | UUID (auto)  | Any string          | Target specific UE instance           |
| `sfuHost`     | `string`  | `"false"`    | `"true"`, `"false"` | SFU host mode (one-to-many)           |
| `sfuPlayer`   | `string`  | `"false"`    | `"true"`, `"false"` | SFU viewer mode                       |
| `forceTurn`   | `boolean` | `true`       | `true`, `false`     | Force TURN relay                      |

## Codec

| Parameter       | Type     | Default   | Valid Values                        | Description                     |
| --------------- | -------- | --------- | ----------------------------------- | ------------------------------- |
| `primaryCodec`  | `string` | Dashboard | `"H264"`, `"VP8"`, `"VP9"`, `"AV1"` | Preferred video codec           |
| `fallBackCodec` | `string` | Dashboard | `"H264"`, `"VP8"`, `"VP9"`, `"AV1"` | Fallback if primary unavailable |

## Resolution

| Parameter               | Type      | Default                   | Valid Values       | Description                 |
| ----------------------- | --------- | ------------------------- | ------------------ | --------------------------- |
| `maxStreamQuality`      | `string`  | `"1080p (1920x1080)"`     | Resolution presets | Maximum resolution ceiling  |
| `startResolution`       | `string`  | `"1080p (1920x1080)"`     | Resolution presets | Desktop starting resolution |
| `startResolutionMobile` | `string`  | `"480p (854x480)"`        | Resolution presets | Mobile starting resolution  |
| `startResolutionTab`    | `string`  | `"720p (1280x720)"`       | Resolution presets | Tablet starting resolution  |
| `resolutionMode`        | `string`  | `"Fixed Resolution Mode"` | See below          | How resolution adapts       |
| `showResolution`        | `boolean` | Dashboard                 | `true`, `false`    | Show resolution UI control  |

{% hint style="info" %}
Resolution presets use the format `"LABELp (WIDTHxHEIGHT)"` — for example, `"1080p (1920x1080)"`. Available presets: `"360p (640x360)"`, `"480p (854x480)"`, `"720p (1280x720)"`, `"1080p (1920x1080)"`, `"1440p (2560x1440)"`, `"4K (3840x2160)"`.
{% endhint %}

**Resolution modes:**

* `"Fixed Resolution Mode"` — Exact resolution sent to UE
* `"Dynamic Resolution Mode"` — Adapts to viewport, respects max quality
* `"Crop on Resize Mode"` — Scales proportionally to fit viewport

## Bitrate and Quality

| Parameter    | Type     | Default | Valid Values | Description                               |
| ------------ | -------- | ------- | ------------ | ----------------------------------------- |
| `minBitrate` | `number` | `1`     | 1–100        | Minimum bitrate (Mbps)                    |
| `maxBitrate` | `number` | `100`   | 1–100        | Maximum bitrate (Mbps)                    |
| `minQP`      | `number` | `20`    | 1–51         | Min quantization (lower = better quality) |
| `maxQP`      | `number` | `-1`    | -1 or 1–51   | Max quantization (-1 = no limit)          |

## Input

| Parameter              | Type      | Default | Valid Values    | Description                          |
| ---------------------- | --------- | ------- | --------------- | ------------------------------------ |
| `mouseInput`           | `boolean` | `true`  | `true`, `false` | Mouse clicks and movement            |
| `keyBoardInput`        | `boolean` | `true`  | `true`, `false` | Keyboard events                      |
| `touchInput`           | `boolean` | `true`  | `true`, `false` | Touch events                         |
| `gamepadInput`         | `boolean` | `true`  | `true`, `false` | Gamepad/controller input             |
| `xrInput`              | `boolean` | `true`  | `true`, `false` | WebXR (VR/AR) input                  |
| `hoverMouse`           | `boolean` | `true`  | `true`, `false` | Mouse hover events (no button press) |
| `fakeMouseWithTouches` | `boolean` | `false` | `true`, `false` | Convert touch to mouse events        |

## Audio and Camera

| Parameter   | Type      | Default | Valid Values    | Description                   |
| ----------- | --------- | ------- | --------------- | ----------------------------- |
| `useMic`    | `boolean` | `true`  | `true`, `false` | Enable microphone input to UE |
| `useCamera` | `boolean` | `true`  | `true`, `false` | Enable camera input to UE     |

## AFK

| Parameter    | Type     | Default | Valid Values | Description             |
| ------------ | -------- | ------- | ------------ | ----------------------- |
| `afktimeout` | `number` | `120`   | 1–7200       | Idle timeout in seconds |
