feat(validation): show toast notification when GLB errors are detected on reload
This commit is contained in:
@@ -1019,6 +1019,28 @@ Use your own namespace (e.g., `mycreator`) to avoid conflicts with the base mod
|
||||
|
||||
---
|
||||
|
||||
## Validation & Debugging
|
||||
|
||||
The mod includes built-in tools to help you catch issues with your GLB files.
|
||||
|
||||
### `/tiedup validate` Command
|
||||
|
||||
Run `/tiedup validate` in-game (client-side command) to see a diagnostic report for all loaded GLBs:
|
||||
|
||||
- **RED** errors — item won't work (missing GLB, invalid file, no skin)
|
||||
- **YELLOW** warnings — item works but something looks wrong (bone typo, multiple meshes, no Idle animation)
|
||||
- **GRAY** info — informational (custom bones detected, vertex count)
|
||||
|
||||
Filter by item: `/tiedup validate tiedup:leather_armbinder`
|
||||
|
||||
The validation runs automatically on every resource reload (F3+T). Check your game log for a summary line: `[GltfValidation] Validated N GLBs: X passed, Y with warnings, Z with errors`.
|
||||
|
||||
### Mesh Naming Convention
|
||||
|
||||
If your GLB contains multiple meshes, name your item mesh `Item` in Blender. The mod prioritizes a mesh named `Item` over other meshes. If no `Item` mesh is found, the last non-`Player` mesh is used (backward compatible, but may pick the wrong one in multi-mesh files).
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
### Skeleton Issues
|
||||
@@ -1034,7 +1056,7 @@ Use your own namespace (e.g., `mycreator`) to avoid conflicts with the base mod
|
||||
|
||||
| Mistake | Symptom | Fix |
|
||||
|---------|---------|-----|
|
||||
| Action not prefixed with `PlayerArmature\|` | Animation not found, falls back to first clip | Rename: `Idle` → `PlayerArmature\|Idle` |
|
||||
| Action not prefixed with `PlayerArmature\|` | Animation not found, falls back to first clip | Rename: `Idle` → `PlayerArmature\|Idle`. Note: the mod strips any `ArmatureName\|` prefix, so custom armature names also work. |
|
||||
| Wrong case (`idle` instead of `Idle`) | Animation not found | Use exact PascalCase: `Idle`, `SitIdle`, `KneelStruggle` |
|
||||
| Variant gap (`.1`, `.2`, `.4` — missing `.3`) | Only .1 and .2 are used | Number sequentially with no gaps |
|
||||
| Animating bones outside your regions | Keyframes silently ignored | Only animate bones in your declared regions |
|
||||
@@ -1553,11 +1575,15 @@ NEVER DO:
|
||||
|
||||
GOOD TO KNOW:
|
||||
→ Only Idle is required. Everything else has fallbacks.
|
||||
→ animation_bones is optional. Omit it and all owned bones work for all animations.
|
||||
→ Templates let you skip animation entirely.
|
||||
→ Custom bones are supported — add chain/ribbon/twist bones parented to standard bones.
|
||||
→ Free bones (not owned by any item) CAN be animated by your GLB.
|
||||
→ Bones owned by another equipped item are always ignored.
|
||||
→ The mod handles sitting, sneaking, walking — you don't have to.
|
||||
→ Context GLBs in tiedup_contexts/ replace default postures.
|
||||
→ Name your item mesh "Item" in Blender for explicit selection in multi-mesh files.
|
||||
→ Run /tiedup validate in-game to check your GLBs for issues.
|
||||
→ Slim model is optional. Steve mesh works on Alex (minor clipping).
|
||||
→ Textures bake into the GLB. No separate file needed.
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user