Skip to main content
Addressables let you change remote content — levels, art, balance data — without publishing a new base build. You upload the catalog and bundles once, publish them, and players pick them up on their next catalog check. Addressables are supported for WebGL only.
Addressables go live as soon as you publish them. There is no review step — unlike base builds, which wait for a SusaPlay reviewer.

Enable Addressables

  1. Developer Portal → your game → Addressables → Enable
  2. Copy the Remote Load Path shown there
Enabling is a one-time setup step and is only available in the portal.

Unity build settings

Set these before you build the base game:
The Remote Load Path is baked into the WebGL build. If it is wrong when you build, no bundle upload can fix it for players who already have that build — you have to publish a new base build.
Bundle Naming Mode matters because uploaded bundle filenames must carry Unity’s 32-character lowercase hash, such as remote_mainmenu_scenes_all_8a60300e1ab74f60538aa6bf690bc976.bundle. That hash is also how SusaPlay knows a bundle has not changed.

File requirements

A publishable set is exactly one catalog hash, exactly one catalog bin with the same version suffix, and at least one bundle. Mixing catalog files from two different builds is rejected — that pair is what tells Unity which bundles to load.

Upload from the Developer Portal

Developer Portal → your game → Addressables, then drop your whole Addressables output folder onto the upload area. The portal picks out the catalog pair and every .bundle, ignores everything else, uploads them in parallel with per-file progress, and skips any bundle SusaPlay already has.

Upload from CI

The same three shapes work with your developer API key. Sign the whole set in one call, upload the files, then register them.

1. Sign the batch

fileType is optional — SusaPlay infers it from the filename. The response holds an uploads array with one signed uploadUrl per file, and a reused array listing bundles you should not send because SusaPlay already has them.

2. Upload each file

PUT each uploadUrl with the Content-Type given alongside it. URLs are valid for 20 minutes. Skip everything under reused.

3. Register and publish

register-batch reports what it recorded, what it reused, and anything missing because its upload never arrived. publish promotes the whole staged set to live and returns publishedFiles, changedFiles, unchangedFiles, removedFiles, and the catalogVersion now serving.
Enabling Addressables and deleting staged files stay in the portal. Your API key covers uploading, registering, and publishing.

Only changed bundles move

A bundle filename contains its content hash, so a bundle whose name already exists in your live set holds the same bytes. SusaPlay skips the upload and keeps the file it has. On a typical incremental Addressables build only the catalog pair and the few bundles you touched are transferred and re-cached, which is why publishing is fast even for a large set. A file that is live but absent from your new set is removed when you publish. Publish the complete set every time, not just the changed files.

Limits

Split a larger set across several upload-batch and register-batch calls, then publish once at the end.

Caching

Catalog files are served with no-cache, so a published catalog reaches players immediately. Bundles are immutable and cached for a year at the edge — safe, because a changed bundle gets a new filename.

If your content is suspended

SusaPlay can suspend a game’s Addressables — a kill switch for broken or unsafe remote content. While suspended, player requests for your bundles return 403 and the base build keeps running. The portal shows the reason. Uploading and publishing are blocked until an admin reinstates it.

Troubleshooting