Quick answer: Apply Sprite Library overrides to the prefab (not just the scene instance). Mark the Sprite Library Asset Addressable for runtime-loaded libraries. Verify the SpriteResolver still references the correct asset post-build.

Editor swaps a character’s outfit via Sprite Library override. Build and run; outfit reverts to default. Override didn’t survive serialization.

The Symptom

SpriteResolver shows the right Category + Label in the editor inspector, displays the right sprite in PIE, but the build shows the default. Or different platforms behave differently.

The Fix

Save override to prefab. If you set the override on a scene instance, click the override indicator (right-click) → Apply to Prefab. Now it’s baked into the prefab asset.

Addressable for runtime libraries.

Sprite Library Asset Inspector:
  Addressable:    true
  Group:          UI / Characters / etc.

Build → New Build. The asset ships in the Addressables bundle; load via Addressables.LoadAssetAsync.

Reference at runtime.

var handle = Addressables.LoadAssetAsync<SpriteLibraryAsset>("Outfits/Knight");
var asset = await handle.Task;
spriteLibraryComponent.spriteLibraryAsset = asset;

Verifying

Build to target platform. Run. Character should display the right outfit. Profiler shows the Sprite Library Asset loaded from Addressables.

“Apply override to prefab. Addressable assets. Runtime assigns. Outfits ship.”

Related Issues

For 2D Animation rig, see 2D rig. For Addressables catalog, see catalog version.

Apply to prefab. Addressable. Build preserves.