| Clip at Core or Idle | plays but the default idle wins | Action for gameplay clips |
| Action clip keys the legs | legs freeze while walking | key only the joints the clip owns |
| Code-built clip with Weight 1 parents | upper body overrides idle and walk | Weight 0 on path-only Poses (AnimClip.keyframes) |
| Playing right after a fresh register | nothing moves, Length 0 | AnimClip.load waits for Length > 0 |
C0 writes on avatar joints | "Property is read only" | multiply into Transform in PreSimulation |
FindFirstChildOfClass("Motor6D") on R15 | nil on upgraded avatars | AnimRig.joint accepts both classes |
Tweening FaceControls | expression flashes, then neutral | AnimFace.clip played on the Animator |
task.wait for hit timing | hits drift with speed and lag | markers with parameters |
| Preview left posed in Edit | saved place shows the pose | AnimRig.reset(rig) |
rig.HumanoidRootPart on a Custom skinned import | nil: the importer names the root RootPart (2 x 2 x 1), and bones never collide | AnimRig.prepareImport; clips authored before it still bind (references/characters.md) |
| Measuring right after another clip ended | first 0.3 s blends toward the old end pose | AnimClip.settle in Edit; deliberate fades in game |
| Checking a replaced default by its id | id matches while the old clip plays | check Length and the joint after a state change |
| 60 fps or scale keys in Blender | heavy clips, scale ignored | 24 fps, rotation and location only |
| LookAt Weight 1 | neck twists when the target is behind | 0.999 |
| Shipping a temporary id | works in Studio, fails live | publish under the experience owner |
| Animator created on a client for a shared rig | others never see it | create it on the server |