Spine error: Couldn't find bone for slot
- spine-ts (web, Phaser, PixiJS)
Couldn't find bone neck for slot head— SkeletonJson.readSkeletonData- spine-csharp (Unity)
Slot bone not found: neck— SkeletonJson.ReadSkeletonData
A slot in skeleton.json is attached to a bone name that the bones list does not contain. Slots are read after all bones, so the order of the bones does not matter here; the name simply does not exist.
What the slot points to
Every slot has a bone field; the loader looks that name up among the bones and throws if it is missing. The same check, with the same wording, exists for skins (Couldn't find bone … for skin …) and for IK, transform and path constraints.
"bones": [ { "name": "root" }, { "name": "neck", "parent": "root" } ],
"slots": [ { "name": "head", "bone": "neck", "attachment": "head" } ]Why it happens
- A bone was renamed or deleted by hand or by a script, and the slot still uses the old name.
- A typo or a case difference:
Neckagainstneck. - Slots copied from another skeleton whose bones are named differently.
How to fix it
Search bones for the name in the message. Either add the bone (with its parent) or change the slot's bone to a bone that exists. If the slot is no longer used, remove it together with its attachments in every skin and its timelines in every animation.
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.