Skip to content
James edited this page Sep 28, 2025 · 4 revisions

Welcome to the BuildUploader wiki!

NOTE: This WIKI is a new born baby and in time will grow to be a strong, helpful blob of information to assist your use of the Build Uploader

History

The Build Uploader originally started as a small tool to download builds from Unity Cloud and upload to Steamworks (this was a VERY tedious process). Once that project concluded I wanted to make this tool more generic and useful for not just myself but others. In time, it became popular, so I expanded on it and is now free and open source for anyone to use freely.

How does it work?

Upload process

When pressing the Upload all button the editor starts an async Upload Task to begin the entire upload process.

The Upload Task has a number of steps that it goes through sequentially while its uploading. Each step (eg: Get Sources) is async and fires for each Upload Config at the same time. When a Step is complete for all Upload Configs it will proceed to the next step.

NOTE: If any Upload Config fails at any point then the whole Upload Task will cancel and notify the user of the issue. An exclusion is the upload step!

1. Prepare Sources

Prepares all sources to ensure they are ready to begin being retrieves/saved and at this stage no settings have changed.

More: https://github.com/JamesVeug/UnitySteamBuildUploader/wiki/Sources

Note: Only BuildConfigSource has a prepare step to save the current editor build settings before it changes

2. Get Sources

Performs the action of getting the source depending what it is eg: Make a build, specify a .zip, download a file from a URL... etc

More: https://github.com/JamesVeug/UnitySteamBuildUploader/wiki/Sources

3. Cache Sources

This will copy the selected contents from each Source to a cache folder sequentially. Each source can define a subfolder within the cache and how to handle duplicate files (Skip/Error/Overwrite)

See Edit->Preferences->Build Uploader->General to change the cache location. %userprofile%/appdata/locallow/<companyname>/<productname>/BuildUploader/CachedBuilds

4. Modify Cached Contents

This is where modifiers are applied to the cached contents sequentially.

  • Remove DoNotShip files/folders
  • Apply Steam DRM
  • Uncompress a .zip
  • etc

More: https://github.com/JamesVeug/UnitySteamBuildUploader/wiki/Modifiers

5. Prepare Upload

This step sets up each Upload Config destination and ensures it's ready for uploading.

eg: SteamDestination will create the App/Depot/branch config files required by SteamSDK to upload.

Note: Not all Destinations have a prepare step and can upload regardless if ready or not.

6. Upload Contents

This is the step where everything is expected to be valid and ready to upload to the selected Destinations.

All Upload Configs will upload at the same time.

NOTE: If 1 upload fails to upload it does NOT prevent the others from uploading.

Example: Steam has the incorrect login credentials.

You can test the build before uploading by selecting Nowhere as the destination and disabling Deleting Caching in preferences. This will still go through the same process but not upload the build anywhere.

7. Cleanup

This is where we have completed the upload task, and we are now removing all the cached files created during the task.

Note: This step runs every time regardless if any step succeeds or fails.

8. Post Upload Action

This is executed after all upload configs have completed, and we have a success/fail state for the entire upload task.

eg: Send a message to discord with the result of the upload task.

More: https://github.com/JamesVeug/UnitySteamBuildUploader/wiki/Actions

Clone this wiki locally