RiggyTry it

Spine error: Skin not found

spine-ts (web, Phaser, PixiJS)
Skin not found: red — Skeleton.setSkinByName; SkeletonJson (animation, linked mesh)
spine-csharp (Unity)
Skin not found: red — Skeleton.SetSkin(string)

A skin name was asked for and the skeleton has no skin by that name. Most often it comes from setSkinByName in game code; sometimes from the file itself.

From game code

The name in setSkinByName (Unity: SetSkin(string)) must match a skin exactly. The skin without a name in the editor is exported as default. Print the real names:

// spine-ts
console.log(skeleton.data.skins.map((s) => s.name));

// spine-csharp (Unity)
foreach (var s in skeleton.Data.Skins) Debug.Log(s.Name);

From the file

  • An animation keys attachments (deform, sequence) under a skin name that is not in skins. spine-ts throws Skin not found while loading.
  • A linked mesh names its parent's skin in skin, and that skin does not exist. spine-ts says Skin not found; the C# runtime reports the same case as Slot not found: <skin name>.

Check your skeleton

The Spine JSON validator finds this in a skeleton.json before the runtime does, and names the exact place. It runs in your browser; the file is not uploaded. Riggy runs the same check on every rig it builds.

Other Spine runtime errors