> 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/build-patching.md).

# How Patching Works

What happens to your build after you upload it, and why updates are small

You upload a full ZIP every time, but your players almost never download a full game again. This page explains what the platform does in between.

{% hint style="info" %}
Everything here is automatic. There is nothing to configure and nothing to change in your game.
{% endhint %}

***

## Build Processing Stages

Every build goes through the same pipeline:

1. **⬆️ Uploading:** file upload to cloud storage
2. **⬇️ Downloading:** server retrieves the file
3. **📦 Unzipping:** extracting build contents
4. **🔧 Creating Patch:** comparing against the previous build and generating delta patches
5. **✅ Completed:** build is ready for distribution

**Processing time** (depends on build size and file count)

* Small builds (under 1 GB with about 500 files): 5 to 30 seconds
* Medium builds (1 to 5 GB with about 1,000 files): 3 to 5 minutes
* Large builds (5 to 50 GB with about 25,000 files): 5 to 25 minutes

***

## Delta Patching

Game Launcher Cloud compares your new build with the previous one and ships only the difference.

```mermaid
graph LR
    A[Build #1<br/>1.5 GB] --> C[Delta Patch<br/>150 MB]
    B[Build #2<br/>1.6 GB] --> C
    C --> D[Player<br/>Downloads<br/>Only 150 MB]

    style C fill:#10b981,stroke:#333,stroke-width:2px,color:#fff
    style D fill:#667eea,stroke:#333,stroke-width:2px,color:#fff
```

**Benefits:**

* **90% smaller downloads** on average
* **Faster updates** for players
* **Lower bandwidth costs**
* **Automatic**, no configuration needed

{% hint style="success" %}
**Example:** if you change 100 MB in a 5 GB game, players download 100 MB instead of the full 5 GB.
{% endhint %}

***

## Smart Bundles

Games with thousands of tiny files pay a heavy per-file overhead when downloading. Smart Bundles group small files into optimized packages during patch generation.

```mermaid
graph LR
    A[Many Small Files] --> B[Smart Bundling]
    B --> C[Optimized Packages]
    C --> D[Faster Downloads]

    style A fill:#ef4444,stroke:#333,stroke-width:2px,color:#fff
    style D fill:#10b981,stroke:#333,stroke-width:2px,color:#fff
```

**How it works:**

1. **Analysis:** the system identifies small files (under 5 MB)
2. **Bundling:** groups related files into optimized packages
3. **Compression:** applies efficient compression
4. **Distribution:** the launcher downloads and extracts bundles seamlessly

**Example impact:** a **1.16 GB** game with **309 files** becomes **1.07 GB** with only **5 files** to download.

**Cost:** about 20% additional storage during patch generation, in exchange for much faster downloads for your players.

{% hint style="info" %}
**Availability:** Smart Bundles apply to newer builds. Older builds keep using standard patching without issues.
{% endhint %}

***

## File Verification (xxHash64)

Every file is verified with **xxHash64**, which is 10 to 20 times faster than MD5. That means quicker patch generation on the server and shorter verification times for players during updates.

* ✅ **Backward compatible:** old patches created with MD5 keep working
* ✅ **Automatic detection:** the launcher knows which algorithm each patch uses
* ✅ **Nothing to do:** no action needed from you or your players

***

## Excluding Files from Patches

Log files, caches and user data do not belong in a patch. You can exclude them per application in **App Settings → Build & Patch → Ignored Paths**, and the rules apply to every future build.

Full syntax, defaults and limits: [Ignore Paths](/help/extensions/cli-releases/cli-builds.md#ignore-paths).

***

## Best Practices

### 🎯 Keep builds small

* Remove source code, temp files and development tools
* Compress textures and audio appropriately
* Use your engine's compression settings
* Test the build locally before uploading

### 🔄 Release safely

* Upload to a Staging environment first
* Test thoroughly before promoting to Production
* Keep build notes detailed, players read them
* Schedule big updates during off-peak hours

***

## 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>📦 Upload Builds</strong></td><td>Back to the upload guides</td><td><a href="/help/applications/upload-builds.md">Upload Builds and Patches</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><tr><td><strong>⚙️ Application Settings</strong></td><td>Ignored paths and other per app options</td><td><a href="/help/applications/app-settings.md">Application Settings</a></td></tr></tbody></table>
