# Network Settings

Configure all network communication in **Config → Network**.

## Ports

| Service                    | Protocol      | Default Port | Notes                                     |
| -------------------------- | ------------- | ------------ | ----------------------------------------- |
| Web UI / REST API          | HTTP          | `8123`       | Engine HTTP server                        |
| WebSocket (project events) | WS            | `8123`       | Path `/info`                              |
| WebSocket (performance)    | WS            | `8123`       | Path `/perf`                              |
| Effects Server             | HTTP/WS       | `3001`       | Node.js effects server                    |
| Instance Discovery         | UDP broadcast | `45454`      | Auto-discovery of other Exaplay instances |
| TCP Command Server         | TCP           | `8100`       | Configurable; see TCP Listen              |
| UDP Command Server         | UDP           | `8200`       | Configurable; see UDP Listen              |
| OSC Receive                | UDP           | `8000`       | Configurable                              |
| OSC Send                   | UDP           | —            | Destination configured per use            |
| ArtNet                     | UDP           | `6454`       | Standard ArtNet port                      |
| NDI Discovery              | mDNS          | `5353`       | Requires multicast                        |

## OSC Settings

### Receive

Enable **Receive OSC** and set the **Listen Port** (default `8000`). Exaplay 3 responds to the following OSC messages:

| Address   | Arguments    | Action                      |
| --------- | ------------ | --------------------------- |
| `/play`   | —            | Start playback              |
| `/stop`   | —            | Stop playback               |
| `/pause`  | —            | Pause playback              |
| `/goto`   | `f timecode` | Jump to timecode (seconds)  |
| `/cue`    | `s name`     | Fire cue by name            |
| `/cue`    | `i number`   | Fire cue by number          |
| `/volume` | `f level`    | Set master volume (0.0–1.0) |

### Send

Enable **Send OSC** and enter the **Destination IP** and **Port**. Exaplay 3 sends:

| Address       | When                        |
| ------------- | --------------------------- |
| `/timecode`   | Every frame during playback |
| `/cue/active` | When a cue becomes active   |
| `/status`     | On play, stop, pause events |

## TCP Settings

The **TCP Command Server** accepts plain-text comma-delimited commands over a persistent TCP connection. It is designed for show control systems, touch panels, and other devices that cannot easily send HTTP or OSC.

| Setting        | Description                                                                                                |
| -------------- | ---------------------------------------------------------------------------------------------------------- |
| **TCP Listen** | Address and port to listen on, one entry per line (e.g. `*:8100` to listen on all interfaces on port 8100) |

Leave the field empty to disable TCP control.

See [TCP Command API](/v3/developer-reference/tcp-api.md) for the full command reference.

## UDP Settings

The **UDP Command Server** accepts the same comma-delimited commands as the TCP server, but over UDP datagrams. Each command arrives as a single datagram; the engine sends the complete response back to the sender as a single reply datagram.

| Setting        | Description                                                                                                |
| -------------- | ---------------------------------------------------------------------------------------------------------- |
| **UDP Listen** | Address and port to listen on, one entry per line (e.g. `*:8200` to listen on all interfaces on port 8200) |

Leave the field empty to disable UDP control.

See [UDP Command API](/v3/developer-reference/udp-api.md) for the full command reference.

## ArtNet Settings

| Setting               | Description                               |
| --------------------- | ----------------------------------------- |
| **Receive ArtNet TC** | Listen for timecode on the ArtNet network |
| **ArtNet Universe**   | Universe number for timecode packets      |
| **Network Adapter**   | NIC to bind to (if multiple adapters)     |

## Remote Access

The web UI is served from the engine's HTTP server and accessible from any browser on the local network at `http://<engine-ip>:8123/`.

> **Security note:** There is no built-in authentication. Restrict access using your network firewall or a VPN. Do not expose port `8123` or `3001` to the public internet.

## Firewall Configuration

Open the following inbound rules on the Exaplay machine's Windows Firewall:

```
TCP  8123     Exaplay Web UI & API
TCP  3001     Effects Server
UDP  45454    Instance Discovery (auto-discovery of other Exaplay instances)
TCP  8100     TCP Command Server
UDP  8200     UDP Command Server
UDP  8000     OSC Receive
UDP  6454     ArtNet
UDP  5353     NDI Discovery (mDNS)
TCP  5960+    NDI Data
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.exaplay.one/v3/configuration/network.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
