# XumLobby Build Guide

## XRBuildKit + XumLobby — Quick‑Start Guide

This guide walks you through installing samples, configuring build settings, and building **networked XR** projects using **XRBuildKit** and **XumLobby**. Follow the steps in order for a smooth client‑and‑server build workflow.

***

### 1  Install the XRBuildKit Samples

<figure><img src="https://3297937807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbBnRKltDHP4CJMgk9KOR%2Fuploads%2FDt3QZNLEvqszzSPX3JXO%2Fimage.png?alt=media&#x26;token=0f91d8b4-cd52-4e3b-bd6f-0133f52f7cf5" alt="" width="371"><figcaption></figcaption></figure>

1. **Open Unity Package Manager** → _Window ▸ Package Manager_.
2. Select **XRBuildKit** in the list.
3. In the _Samples_ section, click **Import** to copy the demo **DevicePresets** and **XumLobby sample scenes** into your project.
4. **Verify**: Imported files appear under `Assets/Samples/XRBuildKit/`.

***

### 2  Set Up Scripting Defines

<figure><img src="https://3297937807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbBnRKltDHP4CJMgk9KOR%2Fuploads%2Fz8iMsVJsr9NvEkmthZy2%2Fimage.png?alt=media&#x26;token=a6e06c21-03fe-44ad-bc94-2c3558b098ce" alt=""><figcaption></figcaption></figure>

MST‑specific build features are enabled by the compile symbol `USE_XUM_LOBBY`.

1. _Edit ▸ Project Settings ▸ Player_.
2.  In **Other Settings ▸ Scripting Define Symbols**, add

    ```
    USE_XUM_LOBBY
    ```

    (semicolon‑separate if other defines exist).
3. **Repeat** for every platform you will build (e.g. Windows Server, Linux Server, Android Client).

> **Tip1** Let Unity finish recompiling after changing defines **before** attempting a build.
>
> **Tip2** If you just import the Device Preset Samples from 'Menu-XRBuildKit-Settings-XR Device Presets' and load 'StandaloneWindows64 / Win-Demo', the 'USE\_XUM\_LOBBY' define symbol will be set automatically.

### 3  Build & Run the XumLobby Sample

#### 3.1  Open the Builder Window

<figure><img src="https://3297937807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbBnRKltDHP4CJMgk9KOR%2Fuploads%2FB5EAAjM6pvaWJYS0XRc4%2Fimage.png?alt=media&#x26;token=efff5ab7-843a-4234-b306-45561925a326" alt="" width="262"><figcaption><p>Open XumLobby Builder window</p></figcaption></figure>

_XRBuildKit ▸ Build ▸ **XR Builder – XumLobby**_.

#### 3.2  Build the **Server**

<figure><img src="https://3297937807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbBnRKltDHP4CJMgk9KOR%2Fuploads%2F7jB9TEgudac7zK9iatcr%2Fimage.png?alt=media&#x26;token=528a2692-708c-49d2-adbf-8f2df23cb1c7" alt="" width="329"><figcaption><p>XumLobby Server build settings (Windows)</p></figcaption></figure>

<figure><img src="https://3297937807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbBnRKltDHP4CJMgk9KOR%2Fuploads%2FrlkulMuK3V4Ee2mcG5xE%2Fimage.png?alt=media&#x26;token=e269060a-7a09-4d48-b976-07e287f9ca43" alt="" width="326"><figcaption><p>XumLobby Server build settings (Linux)</p></figcaption></figure>

1. Select the **Server** tab.
2. Choose the target OS (**Windows** or **Linux**).
3. Enter the **Master / Room IP & Port** (defaults OK for localhost tests).
4. Select the **room scenes** to include.
5. Tick options such as _Headless Mode_ or _Clean Build_.
6. Click **Master & Spawner** (builds the main server binary).
7. Click **Room** (builds the room‑server binary).

#### 3.3  Build the **Client**

<figure><img src="https://3297937807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbBnRKltDHP4CJMgk9KOR%2Fuploads%2Fb8eY7NKaU8409QoKid7j%2Fimage.png?alt=media&#x26;token=3cec547c-33a3-462e-a6d3-7a7d80049fcc" alt="" width="320"><figcaption><p>XumLobby Client build settings</p></figcaption></figure>

1. Switch to the **Client** tab.
2. Enter the **Master Server IP & Port** (must match the server).
3. Pick a **device preset** (e.g. _Quest3_, _PC_).
4. Select scenes and build options.
5. Press **Configure & Build**. The entered IP/Port are written to the `ClientToMasterConnector` component in the scene.

#### 3.4  Deploy & Run

* For **Linux** server builds, use the integrated _Deploy / Upload_ button on the Server tab, or copy the binary manually.
* **Start the server executable first**, then launch the XR client. The client connects using the IP/Port configured above.

***

### 4  Troubleshooting Sample Builds

#### 4.1  Missing XumLobby UI or Build Options

* Ensure `USE_XUM_LOBBY` is present in **Scripting Define Symbols** for **all** relevant platforms.

#### 4.2  Errors After Importing Samples

* Re‑import the Samples via **UPM**.
* Confirm that sample scenes and `DevicePresets` exist under `Assets/Samples/XRBuildKit/`.

#### 4.3  Build Fails (Plugin Conflicts / Duplicate Files)

* Choose **Clean Build**.
* Verify the selected **Device Preset** matches the current platform.

#### 4.4  Connection Problems — Client Fails to Connect to **Master Server**

1. Confirm the **server executable is running** and listening on the specified IP/Port.
2. Verify that the **Client build** uses the same IP/Port (see _Client tab ▸ Configure & Build_).
3. Check **firewall / network rules** if server and client run on different machines.
4. Make sure the **room server** was built and is reachable by the master.
5. If issues persist, revisit the checklist above (defines, presets, clean build).

#### 4.5  General Tips

* Close the **Project Settings** window before saving/loading presets (avoids duplicate assets).
* Delete `/Library/` and `/Build/` caches if unexplained errors persist.
* After major configuration changes, always perform a **Clean Build**.

***

### 5  Remove or Reset the Samples (Optional)

Delete the imported folders under `Assets/Samples/XRBuildKit/`, then re‑import via **Package Manager** at any time.

***

You are now ready to build and test **networked XR** apps with **XRBuildKit** and **XumLobby**!
