Why looping animations hitch at the seam and how to check first/last keyframe continuity.
Quick answer
Roblox loop playback does not automatically invent in-between poses between the last and first keyframe. Align first/last poses (and root motion), then verify with a numeric loop check and viewport scrub.
Symptoms
Visible hitch when the clip loops
Short pause after mirrored or looped cycles
Root position jumps on loop
Step-by-step checks
1. Understand loop seam behavior
Official / documented
Official animation docs note that looping does not automatically fill interpolation between the end and start of the clip. A mismatch at the seam causes hitching.
Expected: You treat first/last keyframe alignment as required for smooth loops.
2. Compare first and last keyframe values
General troubleshooting advice
For each relevant channel (root position/rotation, major joints), record first and last values. Use the Loop Timing Checker for numeric deltas.
Expected: Deltas are within your chosen tolerance — or intentional differences are documented.
3. Scrub the loop in the viewport
General troubleshooting advice
Numeric continuity is not enough. Scrub across the loop boundary to catch interpolation or root-motion issues.
Expected: No visible jump at the seam in preview.
4. Separate community hitch reports from confirmed bugs
Community report — not confirmed for current version
Some community posts describe pauses after mirroring or timeline slowdowns. Treat those as unverified for your exact plugin version until you reproduce them.
Expected: You reproduce on your version before calling it a known bug.