Read and build animations
animationRead, build, and preview keyframes inside Roblox Studio: inspect existing assets, create playable sequences, and pose rigs for screenshots without leaving the editor.
Instructions
Reads an animation's actual keyframes, and builds new ones that play immediately in the open Studio.
Animations are the one part of a place no other tool can see. inspect on an Animation instance returns an asset id and stops there — the poses live on Roblox's servers. read downloads them, so you can answer 'how long is it', 'which joints does it move', and 'does it end where it started' without opening the Animation Editor and scrubbing.
read takes an asset id, an rbxassetid:// string, or the path of an Animation instance in the place — whichever you already have. It reports which RIG the animation was made for, which is the thing most worth knowing: an R15 animation on an R6 character does nothing at all — no error, no movement — and the asset id gives no hint either way.
build goes the other way: give it keyframes and it returns a content id you can put straight into an Animation's AnimationId. Nothing is uploaded and nothing is moderated — the id works in this Studio session and nowhere else, which makes it the right way to try an idea and the wrong way to ship one.
preview puts an animation ONTO a rig in the open place and freezes it at a chosen moment, so screenshot can show you the pose. It works in edit mode — no playtest. Ask for several moments in turn to compare poses across the animation; the rig stays posed until stop.
Poses are written the way a CFrame property is: "0, 1, 0" for a position, "0, 1, 0 | 0, 45, 0" to rotate as well.
The id build returns is a bare hash, not an rbxassetid:// URL. Use it exactly as given — prefixing it stops it working.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | preview only: the moment to freeze on, in seconds. Ask for several in turn to compare poses across the animation. | |
| op | No | 'read' downloads an existing animation, 'preview' poses a rig at one moment of it so you can screenshot it, 'build' makes a new one playable here, 'stop' clears a preview. | read |
| rig | No | The model, e.g. "Workspace.Dummy". For preview/stop it is the rig to pose, and needs a Humanoid or an AnimationController inside it. For `build` it is optional and is read for its joint layout — pass it for anything that is not a standard R6 or R15 character (a custom rig, a weapon, a door, a Blender import), or the poses may be attached in the wrong order and the animation will move nothing. | |
| hold | No | preview only: freeze on that frame. Turn off to let it play, but then a screenshot catches whatever pose it happens to be in. | |
| loop | No | build only: whether it repeats. | |
| name | No | build only: name for the sequence. | |
| root | No | build only: the rig part every pose hangs from. Defaults to "HumanoidRootPart", which is right for an R15 or R6 character. | |
| assetId | No | read only: animation asset id (12345), "rbxassetid://12345", or the path of an Animation instance ("Workspace.Rig.Animate.run"). | |
| priority | No | build only: which animations this one plays over. | |
| studioId | No | Target Studio; omit for the active one. | |
| keyframes | No | build only: the keyframes, in any order — they are sorted by time. |