<!-- fivemad.com, Markdown source of https://fivemad.com/docs/tools/animations -->
> Source: https://fivemad.com/docs/tools/animations
> Section: Tools
> Tags: animations, TaskPlayAnim, anim dict, synced scenes, heist
> Tool: https://fivemad.com/tools/animations
> Last updated: 2026-09-25
> Site map for assistants: https://fivemad.com/llms.txt

# Animation Browser

Browse every GTA V animation dictionary and clip, search the whole set, watch any of them on a freemode ped and copy ready TaskPlayAnim Lua.

The Animation Browser lists every animation dictionary the game ships and plays them on a freemode ped in your browser, so you can see what a clip does before you put it in a script. It also has a section for synchronised scenes: the pairs of animations that were authored to be played by two peds at the same time.

Every snippet block on this page has a **Lua / JS / TS / C#** switcher in its corner. The choice is remembered across the site, and [the runtimes page](/docs/development/runtimes) explains what changes between them.

## The two tabs

| Tab | What it holds |
| --- | --- |
| All animations | Every in-game dictionary and clip in the game, browsable and searchable |
| Synced scenes | Two ped scenes with their props, both peds on one timeline |

## All animations

The first tab is the whole in-game set: 11,273 dictionaries and 97,204 clips, the real names and the real numbers straight out of the game files. You browse it in three steps.

1. Pick a family (heists, ambient and scenarios, movement, vehicles, weapons and combat, nightclub, casino, animals, story mode and the rest). Each one says how many dictionaries and clips it holds.
2. Pick a dictionary. The row shows its clip count and how many of its clips play on a ped.
3. Pick a clip. It starts playing, and you get its length, frames, rate and bone track count plus the Lua.

Search covers all of it. Type two or more letters and every dictionary and clip name is matched at once; words that hit the dictionary name count for every clip in it, so `ornate_bank` gives you the whole Pacific Standard set and `reload pistol` narrows to pistol reloads. Clips that play are listed first.

> [!NOTE]
> Not every clip can run on a ped, and the rows say which and why: `facial or camera` (no body bone moves), `not a ped rig` (it drives a vehicle, a weapon or a prop) and `nothing to watch` (a single pose). Those are still listed with their real facts and their Lua, and the viewer says so instead of showing you the previous animation. Dictionaries for animals are marked too: they only share part of their skeleton with a ped.

The ped follows the dictionary name: a dictionary with `female` in it opens on the female ped, everything else on the male. The **Ped** switch still overrides it.

### Where the heist animations are

The heist dictionaries sit in the catalogue like every other dictionary, under **Heists and robberies**: drilling, cutting, thermal charges, keypads and card swipes, safes, money and gold grabs, carrying, hold ups and crew prep. Typing `drill` finds every drilling clip and `ornate_bank` the whole Pacific Standard set.

## Watching a clip

1. Pick a clip in the list on the left. It downloads on the spot, usually under 10 KB, and starts playing.
2. Drag to orbit the camera, scroll to zoom, and press **Reset view** to go back to the default framing.
3. Use the bar to scrub through the motion, **Speed** to slow it down, and **Loop** to watch it once instead of over and over.
4. **Ped** switches between the male and the female freemode ped.

> [!NOTE]
> Clips that travel (walking in, stepping away) are held on the spot here so you can see them. In the game they move the ped.

The facts under the viewer are the ones you usually need: how long the clip runs, how many frames it has, its rate and how many bones it actually moves. A clip with very few bone tracks only moves part of the body.

## Getting it into your script

Click the dictionary name or the clip name to copy it. Under that, the Lua panel gives you a working block:

```lua title="client.lua"
local dict = "anim@heists@ornate_bank@grab_cash"
local anim = "grab"

RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do
    Wait(0)
end

TaskPlayAnim(PlayerPedId(), dict, anim, 8.0, -8.0, -1, 1, 0.0, false, false, false)
RemoveAnimDict(dict)
```

The flag and the duration are filled in from the clip: a clip that reads as a loop (`idle`, `loop`, `base`) gets flag `1` and no time limit, anything else gets flag `0` and its own length in milliseconds. There is a one line upper body version below it, for when the ped should keep walking.

For other flag combinations, the [Animation Flags Calculator](/docs/tools/animation-flags-calculator) builds the number.

## Synced scenes

A synchronised scene plays two animations that were made to fit together, so both peds line up exactly: a handshake, a hug, a mugging, a fistfight, a drug deal. The other tab lists them with their category.

- Both peds play on one timeline, so play, pause and scrub move them together.
- **Ped 1** and **Ped 2** pick the model for each side, and **Swap peds** flips them.
- When a scene animates a prop and we have a model for it, the prop is drawn and animated too. When we cannot draw it, the model name is listed as "needs prop" so you still know what to spawn.
- If the two clips are not the same length, the shorter one holds on its last frame. That is what the game does inside a scene, not a bug in the preview.

The Lua panel writes the whole block for a scene: loading the dictionaries, creating any prop, `NetworkCreateSynchronisedScene` at your ped's position and heading, both peds added to it, and the start call.

```lua title="scene.lua"
local scene = NetworkCreateSynchronisedScene(coords.x, coords.y, coords.z, 0.0, 0.0, heading, 2, false, false, 1065353216, 0, 1.0)
NetworkAddPedToSynchronisedScene(ped1, scene, dict, anim1, 1000.0, -1000.0, 16, 16, 1148846080, 0)
NetworkAddPedToSynchronisedScene(ped2, scene, dict, anim2, 1000.0, -1000.0, 16, 16, 1148846080, 0)
NetworkStartSynchronisedScene(scene)
```

> [!TIP]
> The scene is created at a position and a heading, not at a ped. Put it where you want the pair to stand, then attach both peds; the offsets are baked into the animations.

## Sharing a link

The page keeps your selection in the URL, so you can send someone the exact clip or scene:

- `/tools/animations?d=anim@heists@fleeca_bank@drilling&c=drill_straight_idle`
- `/tools/animations?d=amb@world_human_smoking@male@male_a@base&c=base`
- `/tools/animations?tab=scenes&s=<scene id>`

A `?d=&c=` link opens the browser on that dictionary and that clip.

## Limits

- The viewer needs WebGL. On a browser without it the page says so instead of showing an empty box.
- The list covers the in-game dictionaries (`anim/ingame`). Cutscene animations live in the [Cutscene Browser](/tools/cutscenes).
- A clip that does not move enough of the ped's own bones is not played on one; it is listed with its facts and its Lua and says why.
- Facial clips only move face bones, so there is nothing to watch on a preview ped; they are listed and marked.
- Clips that drive a prop, a vehicle or a weapon instead of a body are listed and marked too. You see prop clips running on the prop in a synced scene.
