Skip to content
James Veugelaers edited this page May 6, 2025 · 5 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 BuildUploader

The Build Uploader originally started as a small tool to download builds from Unity Cloud and upload to SteamWorks (this was a 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 Download and Upload all button the editor starts an async Build Task to begin the upload process.

The Build 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 Build Config at the same time. When a Step is complete for all Build Configs it will proceed to the next step.

NOTE: If any Build Config fails at any point then the whole build task will cancel and notify the user of the issue.

1. Get Sources

Download the file/folder from the selected sources sequentially. eg:

  • Choosing File/Folder will save that location to be used in the next step
  • Choosing Unity Cloud will download the build from Unity Cloud and save the zipped file location to be used in the next step
  • Choosing URLSource will download the content from the url and save it to a cached location

2. Cache Sources

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

%userprofile%/appdata/locallow/<companyname>/<productname>/BuildUploader/CachedBuilds

3. Modify Cached Contents

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

  • Remove DoNotShip files/folders
  • Apply Steam DRM
  • etc

4. Prepare Upload

This step sets up each build config destination and ensures its 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.

5. Upload Contents

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

All build configs will upload at the same time.

NOTE: If 1 build 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.

6. Cleanup

This is where we have completed the build 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.

You can disable this in the preferences to view the files that were created.

Clone this wiki locally