roblox-animations
Use when working with Roblox animation systems including playing, stopping, or blending animations on Humanoid characters or non-Humanoid models, handling AnimationTrack events, replacing default character animations, or debugging animation priority and blending issues.
By sentinelcore · 705 installs
npx skills add sentinelcore/roblox-skills --skill roblox-animations
Source repository · Upstream listing
Roblox Animations Reference
Core Objects
Object Purpose
Animation Asset reference — holds AnimationId
Animator Lives inside Humanoid or AnimationController; loads and drives tracks
AnimationController Replaces Humanoid for non character rigs
AnimationTrack Returned by LoadAnimation ; controls playback
Where to Run Animation Code
Scenario Script Type Location
Local player character LocalScript StarterCharacterScripts
NPC / server owned model Script Inside model or ServerScriptService
Never play player character animations from a Script — they will not replicate correctly to the local client.
Loading and Playing Animations
AnimationTrack Events
Looped vs One Shot
Property Looped One Shot
track.Looped true false
Set in Animation Editor (loop toggle) Animation Editor
Override at runtime track.Looped = false track.Looped = true
Stops automatically No — must call track:Stop() Yes — after one cycle
Animation Priority and Blending
Priority controls which tracks win on contested joints. Higher priority overrides lower.
Weight adjusts influence when two tracks share the same priority:
Humanoid vs AnimationController
Humanoid (characters and humanoid NPCs)
AnimationController (props, vehicles, creatures)
Replacing Default Character Animations
The Animate LocalScript in the character holds animation references. Modify its AnimationId values on CharacterAdded.
Available slots: idle , walk , run , jump , fall , climb , swim , swimidle , toolnone , toolslash , toollunge .
Stop All Playing Animations
Quick Playback Reference
Upper Body Only Animations
Priority blending affects all joints an animation touches. To play a wave only on the arms while legs animate from run/idle, the animation itself must be authored to only key upper body bones (leave lower body joints unkeyed in the Animation Editor). There is no runtime API to mask joints — the solution is in the animation asset, not the script.
Common Mistakes
Mistake Fix
Playing character animations in a Script Use LocalScript in StarterCharacterScripts
LoadAnimation called on Humanoid (deprecated) Call on Animator instead
Two animations fighting on same joints Assign different Priority values
Stopped fires immediately Animation has zero length or wrong Looped setting
GetMarkerReachedSignal never fires Marker name misspelled, or animation not re uploaded after adding markers
NPC animation not visible to other clients Play from a Script (server), not LocalScript
AnimationController track won't play Missing Animator child inside AnimationController