> For the complete documentation index, see [llms.txt](https://gamelauncher.cloud/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gamelauncher.cloud/help/applications/upload-builds.md).

# Upload Builds and Patches

Get your game to your players, from the dashboard or from the CLI

A **build** is a packaged version of your game: a ZIP file with everything a player needs to run it. You upload a build, Game Launcher Cloud processes it, and your players receive the update through your launcher.

There are two ways to upload. Pick the one that fits your build and follow that guide:

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Upload from the Dashboard</strong></td><td>Drag and drop your ZIP in the browser. Up to 5 GB.</td><td><a href="/help/applications/upload-builds/upload-builds-dashboard.md">Upload from the Dashboard</a></td></tr><tr><td><strong>Upload with the CLI Tool</strong></td><td>For large builds, faster uploads and CI/CD automation.</td><td><a href="/help/applications/upload-builds/upload-builds-cli.md">Upload with the CLI Tool</a></td></tr></tbody></table>

***

## Dashboard Upload vs CLI Upload

<table><thead><tr><th width="190"></th><th>Dashboard (Web)</th><th>CLI Tool</th></tr></thead><tbody><tr><td><strong>Maximum file size</strong></td><td>5 GB</td><td>Large files (depending on your plan)</td></tr><tr><td><strong>Setup</strong></td><td>None, it is already in your browser</td><td>Download the CLI once</td></tr><tr><td><strong>Best for</strong></td><td>Small and medium builds, occasional updates</td><td>Large builds, frequent releases</td></tr><tr><td><strong>Upload speed</strong></td><td>Good</td><td>Faster on large files, direct to Cloudflare R2</td></tr><tr><td><strong>CI/CD automation</strong></td><td>Not available</td><td>Yes, scriptable on every release</td></tr></tbody></table>

{% hint style="info" %}
Both methods produce exactly the same build. Nothing changes for your players.
{% endhint %}

***

## Build Types

#### Standard Build (Baseline)

Upload the complete game build.

{% hint style="info" %}
Use this when:

* Creating the first build.
* You are not sure which files changed.
* Your build structure changed significantly.

Existing players will still download only new or modified files.
{% endhint %}

#### Merge Build

Upload only the files that changed. Game Launcher Cloud merges them with the existing Baseline. Files must keep the **exact same path** as before.

{% hint style="warning" %}
**Be aware of the path structure.**\
\
Example:

`Data/translations.csv`

must still be uploaded as:

`Data/translations.csv`\
\
**Do not rename or change root folders between builds or they will be detected as new files.**<br>

For example:

`MyGame_v1/Data/file.dat`

and

`MyGame_v2/Data/file.dat`

are considered different paths.
{% endhint %}

Merge Builds are mainly useful for avoiding large uploads. For example, if your game is 100 GB but you only changed a 5 KB file, you only need to upload that file.

If you are unsure which files changed, use a **Standard Build** instead.

***

## Prepare Your Build

Whatever method you use, the ZIP has to meet these requirements:

<table data-full-width="false"><thead><tr><th width="150">Requirement</th><th width="264">Details</th><th>Notes</th></tr></thead><tbody><tr><td><strong>Format</strong></td><td>ZIP compressed file</td><td>Must be a .zip file</td></tr><tr><td><strong>Size</strong></td><td>Up to 5 GB from the <a href="/help/applications/upload-builds/upload-builds-dashboard.md">Dashboard</a><br>Larger files with the <a href="/help/applications/upload-builds/upload-builds-cli.md">CLI</a></td><td></td></tr><tr><td><strong>File structure</strong></td><td><strong>Files must be in the ZIP root</strong><br><em>(do not compress a single folder)</em></td><td>Select all your files and compress</td></tr></tbody></table>

{% hint style="warning" %}
**Important:** do not include unnecessary files like source code, logs, .git folders or development tools. They make every download bigger for your players.
{% endhint %}

<figure><img src="https://4241524842-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnNH3XbUy7pSptjMVADb2%2Fuploads%2FD3iE9JLXKIzx6nk7YEBf%2FCompress%20Build.gif?alt=media&amp;token=68e41300-9e1f-4a25-ac3f-1e5c85973a24" alt=""><figcaption><p>Compress your game as a ZIP</p></figcaption></figure>

{% hint style="success" %}
**Make sure to select all the files and compress, so they stay in the root of the ZIP**
{% endhint %}

<figure><img src="https://4241524842-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnNH3XbUy7pSptjMVADb2%2Fuploads%2FmIX5iVZmQSKR8kcfAY8I%2FFrame%2049.png?alt=media&amp;token=9c6d30c4-7e5a-479f-ab49-49712fbbe1f8" alt=""><figcaption><p>CORRECT: Select all the files and compress as a ZIP</p></figcaption></figure>

### Recommended Structure

```
MyGame.zip
├── MyGame.exe              (Windows)
├── assets/
│   ├── textures/
│   ├── sounds/
│   └── models/
├── data/
│   ├── config.json
│   └── settings.ini
└── README.txt
```

{% tabs %}
{% tab title="Windows" %}

```
MyGame_Windows.zip
├── MyGame.exe           ← Main executable
├── MyGame_Data/         ← Unity/Unreal data
├── MonoBleedingEdge/    ← Unity runtime
├── UnityCrashHandler64.exe
└── UnityPlayer.dll
```

{% endtab %}

{% tab title="macOS" %}

```
MyGame_macOS.zip
├── MyGame.app/          ← macOS application bundle
│   └── Contents/
│       ├── MacOS/
│       ├── Resources/
│       └── Info.plist
└── README.txt
```

{% endtab %}

{% tab title="Linux" %}

```
MyGame_Linux.zip
├── MyGame.x86_64        ← Linux executable
├── MyGame_Data/
├── UnityPlayer.so
└── run.sh               ← Optional launch script
```

{% endtab %}
{% endtabs %}

***

## Build Notes

Build notes are optional, and players read them in the launcher before downloading. Good notes tell them what changed:

```markdown
**Version 1.2.0**

New Features:

- Added multiplayer co-op mode
- New character customization options
- 5 new maps in rotation

Bug Fixes:

- Fixed crash when loading large maps
- Improved FPS on low-end systems
- Fixed audio sync issues

⚖Balance Changes:

- Reduced weapon damage by 10%
- Increased player movement speed
```

{% hint style="info" %}
**Tip:** markdown formatting works here, so use it. "update" is not a build note.
{% endhint %}

***

## Next Steps

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Dashboard Upload</strong></td><td>Step by step guide, up to 5 GB</td><td><a href="/help/applications/upload-builds/upload-builds-dashboard.md">Upload from the Dashboard</a></td></tr><tr><td><strong>CLI Upload</strong></td><td>Step by step guide for large builds</td><td><a href="/help/applications/upload-builds/upload-builds-cli.md">Upload with the CLI Tool</a></td></tr><tr><td><strong>How Patching Works</strong></td><td>Delta patches, Smart Bundles and file verification</td><td><a href="/help/applications/upload-builds/build-patching.md">How Patching Works</a></td></tr><tr><td><strong>Environments</strong></td><td>Test in Staging before going to Production</td><td><a href="/help/applications/environments.md">Environments</a></td></tr></tbody></table>
