~/guides/fivem-animation-list
FiveM Animation List
-- reference · updated august 2026 · var fivem team
-- 64 verified dict+clip pairs · 20,179 base-game anim dicts · taskplayanim + scenarios
This FiveM animation list is a curated reference of real anim dictionary and clip pairs you pass to TaskPlayAnim: the two values that make a ped smoke, wave, lean, sit, dance or hold a clipboard. Every pair below is verified against the DurtyFree GTA data dumps, grouped by use, with the exact Lua to request the dictionary and play it, a note on scenarios, and how to find any of the 20,000+ dictionaries in the game.
How animations work in FiveM
A FiveM animation is two strings: an animation dictionary (the anim dict) and a clip name (also called the anim name). The dictionary, for example amb@world_human_smoking@male@male_a@base, is a container that GTA V streams in on demand; the clip, like base, is the specific movement inside it. To play one you request the dictionary with RequestAnimDict(dict), wait until HasAnimDictLoaded(dict) returns true, then call TaskPlayAnim with both values. Miss the request step and nothing plays, which is the single most common animation bug in FiveM.
TaskPlayAnim takes the ped, the dict, the clip, a blend-in and blend-out speed, a duration, a flag, a playback rate and three lock booleans. The flag is a bitfield: 1 loops the clip, and you combine bits for upper-body-only or hold-last-frame behaviour, easiest to work out with Vespura's animation flags calculator. A duration of -1 plays until you stop it, and ClearPedTasks(PlayerPedId()) ends any animation. Because dictionaries and clips ship with the base game, the same pair works on ESX, QBCore, Qbox and standalone; only the code around it changes.
FiveM animation list: anim dict and clip pairs
The table below is a curated set of 64 animation dict and clip pairs, grouped by what they are used for on a roleplay server: idles and leaning, sitting, hands-up and restrained reactions, gestures, job loops, leisure animations, phone poses, paired social animations, dances and eating. Every row was checked against the DurtyFree GTA data dumps, the dictionary exists and the clip is listed inside it, so each pair is ready to drop into TaskPlayAnim. Names are case sensitive, copy them exactly.
| Group | Animation | Anim dict | Clip name |
|---|---|---|---|
| Idle | Hang out (arms folded) | amb@world_human_hang_out_street@male_a@base | base |
| Cross arms | amb@world_human_hang_out_street@female_arms_crossed@idle_a | idle_a | |
| Lean back on wall | amb@world_human_leaning@male@wall@back@hands_together@base | base | |
| Lean on wall (phone) | amb@world_human_leaning@male@wall@back@mobile@base | base | |
| Impatient wait | amb@world_human_hang_out_street@female_hold_arm@idle_a | idle_a | |
| Warm hands at fire | amb@world_human_stand_fire@male@idle_a | idle_a | |
| Sit | Sit on chair | amb@prop_human_seat_chair@male@generic@base | base |
| Sunbathe on back | amb@world_human_sunbathe@male@back@base | base | |
| Ground | Slumped on side | amb@world_human_bum_slumped@male@laying_on_left_side@idle_a | idle_b |
| Reaction | Hands up (mugged) | random@mugging3 | handsup_standing_base |
| Surrender / hands up | anim@mp_player_intuppersurrender | idle_a | |
| Cuffed (behind back) | mp_arresting | idle | |
| Cuffed (walk) | anim@move_m@prisoner_cuffed | idle | |
| Intimidate (point) | reaction@intimidation@1h | intro | |
| Gesture | Wave hello | friends@frj@ig_1 | wave_a |
| Wave (celebration) | anim@mp_player_intcelebrationmale@wave | wave | |
| Point ahead | gestures@f@standing@casual | gesture_point | |
| Shrug | gestures@m@standing@casual | gesture_shrug_hard | |
| Hello gesture | gestures@m@standing@casual | gesture_hello | |
| No way | gestures@m@standing@casual | gesture_no_way | |
| Damn | gestures@m@standing@casual | gesture_damn | |
| Thumbs up | anim@mp_player_intcelebrationmale@thumbs_up | thumbs_up | |
| Peace sign | mp_player_int_upperpeace_sign | mp_player_int_peace_sign | |
| Slow clap | anim@mp_player_intcelebrationmale@slow_clap | slow_clap | |
| Facepalm | anim@mp_player_intcelebrationfemale@face_palm | face_palm | |
| Salute | anim@mp_player_intuppersalute | idle_a | |
| Gang sign | mp_player_int_uppergang_sign_a | mp_player_int_gang_sign_a | |
| Blow a kiss | anim@mp_player_intcelebrationfemale@blow_kiss | blow_kiss | |
| Air guitar | anim@mp_player_intcelebrationfemale@air_guitar | air_guitar | |
| Jazz hands | anim@mp_player_intcelebrationfemale@jazz_hands | jazz_hands | |
| Knuckle crunch | anim@mp_player_intcelebrationfemale@knuckle_crunch | knuckle_crunch | |
| Job | Hold clipboard | amb@world_human_clipboard@male@base | base |
| Cop idle | amb@world_human_cop_idles@male@base | base | |
| Janitor sweep | amb@world_human_janitor@male@base | base | |
| Gardener plant | amb@world_human_gardener_plant@male@base | base | |
| Hammer | amb@world_human_hammering@male@base | base | |
| Weld | amb@world_human_welding@male@base | base | |
| Play guitar | amb@world_human_musician@guitar@male@base | base | |
| Vehicle mechanic | amb@world_human_vehicle_mechanic@male@base | base | |
| Binoculars | amb@world_human_binoculars@male@base | base | |
| Leisure | Smoke cigarette | amb@world_human_smoking@male@male_a@base | base |
| Light cigarette | amb@world_human_smoking@male@male_a@enter | enter | |
| Drink coffee | amb@world_human_drinking@coffee@male@idle_a | idle_a | |
| Drink beer | amb@world_human_drinking@beer@male@idle_a | idle_a | |
| Cheer / clap | amb@world_human_cheering@male_a | base | |
| Yoga | amb@world_human_yoga@male@base | base_a | |
| Push-ups | amb@world_human_push_ups@male@base | base | |
| Sit-ups | amb@world_human_sit_ups@male@base | base | |
| Jog on the spot | amb@world_human_jog_standing@male@idle_a | idle_a | |
| Stand and fish | amb@world_human_stand_fishing@idle_a | idle_a | |
| Phone | Phone call (listen) | cellphone@ | cellphone_call_listen_base |
| Read text on phone | cellphone@ | cellphone_text_read_base | |
| Selfie (peace) | cellphone@self@franklin@ | peace | |
| Social | Handshake | mp_ped_interaction | handshake_guy_a |
| Hug | mp_ped_interaction | hugs_guy_a | |
| Give / hand over | mp_common | givetake1_a | |
| CPR chest pump | mini@cpr@char_a@cpr_str | cpr_pumpchest | |
| Carry a box | anim@heists@box_carry@ | idle | |
| Dance | Solo dance (male) | anim@amb@nightclub@mini@dance@dance_solo@male@var_a@ | high_center |
| Solo dance (female) | anim@amb@nightclub@mini@dance@dance_solo@female@var_a@ | med_center | |
| Casual dance | missfbi3_sniping | dance_m_default | |
| Bartender pour | anim@amb@clubhouse@bar@drink@idle_a | idle_a_bartender | |
| Eat | Eat food | mp_player_inteat@burger | mp_player_int_eat_burger |
| Drink from bottle | mp_player_intdrink | loop_bottle |
Two families cover most of what servers use. The amb@world_human_* dictionaries are the ambient world animations the game plays on NPCs: smoking, drinking coffee, leaning, clipboards, welding, yoga. The mp_player_* and anim@mp_player_int* dictionaries hold the GTA Online player interactions and celebrations: waves, thumbs up, salutes, peace signs, slow claps. Learn those two prefixes and you can guess your way to a lot of animations before you even open a browser.
Scenarios vs animations
Alongside TaskPlayAnim there is a second way to make a ped do something: scenarios. A scenario is a named, prebuilt behaviour like WORLD_HUMAN_SMOKING or WORLD_HUMAN_CLIPBOARD started with TaskStartScenarioInPlace(ped, name, 0, true). You do not request a dictionary and you do not pass a clip, the game handles the enter, loop and exit for you. The trade-off is control: scenarios are quick and reliable but you cannot blend or set flags the way TaskPlayAnim allows. The base game ships 247 scenarios; the smoking, coffee and clipboard behaviours in the table above also exist as scenarios, which is why some emote menus use one or the other for the same visible action. Stop a scenario the same way you stop an animation, with ClearPedTasks.
Lua snippets: play an animation, a config, a scenario
The core recipe is request, wait, play. This snippet loops the smoking base animation on the local player and frees the dictionary once the clip is running, which is safe because the animation keeps playing after RemoveAnimDict.
-- client.lua | play a looping animation on the local player
local dict = "amb@world_human_smoking@male@male_a@base"
local clip = "base"
CreateThread(function()
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do
Wait(0) -- wait until the dictionary is streamed in
end
TaskPlayAnim(PlayerPedId(), dict, clip,
8.0, -8.0, -1, -- blend in, blend out, duration (-1 = until stopped)
1, -- flag 1 = loop (see the flags calculator for combos)
0.0, false, false, false)
RemoveAnimDict(dict) -- free memory, the clip keeps playing
end)
-- stop it later with:
-- ClearPedTasks(PlayerPedId())In a real resource you keep animations in a config table and register a command or keybind per entry, so server owners can add pairs from the list above without touching the logic. If you would rather not build this at all, a FiveM emote script gives players a searchable menu over this exact kind of table.
-- client.lua | drive animations from a config table + commands
local Anims = {
wave = { dict = "friends@frj@ig_1", clip = "wave_a" },
clap = { dict = "amb@world_human_cheering@male_a", clip = "base" },
lean = { dict = "amb@world_human_leaning@male@wall@back@hands_together@base", clip = "base" },
}
local function playAnim(name)
local a = Anims[name]
if not a then return end
RequestAnimDict(a.dict)
while not HasAnimDictLoaded(a.dict) do Wait(0) end
TaskPlayAnim(PlayerPedId(), a.dict, a.clip, 8.0, -8.0, -1, 1, 0.0, false, false, false)
end
for name in pairs(Anims) do
RegisterCommand(name, function() playAnim(name) end, false)
endScenarios are a one-liner when you do not need blend or flags, useful for NPC props and quick ambient poses.
-- client.lua | scenarios: one line, no RequestAnimDict needed
TaskStartScenarioInPlace(PlayerPedId(), "WORLD_HUMAN_SMOKING", 0, true)
-- other verified scenario names:
-- WORLD_HUMAN_AA_COFFEE, WORLD_HUMAN_CLIPBOARD,
-- WORLD_HUMAN_COP_IDLES, WORLD_HUMAN_MUSCLE_FLEX, WORLD_HUMAN_LEANING
-- stop the scenario:
ClearPedTasks(PlayerPedId())Finding more animation dictionaries
This page curates the pairs servers reach for most, but the game holds far more: the DurtyFree gta-v-data-dumps put the count at 20,179 dictionaries. When you need one that is not listed here, three references cover everything. alexguirre's GTA V Animations List lets you preview clips, Pleb Masters Forge has a searchable data browser, and the DurtyFree data dumps ship animDictsCompact.json, a machine-readable file with every dictionary and its clips, which is what verified this table.
Whichever source you use, the workflow is the same: copy the dictionary and clip exactly (they are case sensitive), test in-game, and if the ped just stands there check that you requested the dictionary and that your server build is new enough. DLC animations from casino, tuners, drug wars and later packs only exist on higher builds, set with sv_enforceGameBuild in your server.cfg. See the TaskPlayAnim native reference for the full parameter list.
Scripts that use these animations
If you would rather give players the animations than script each one, several Var FiveM resources are built on this same dict-and-clip foundation. Var-Emote is the direct fit: an advanced NUI emote menu with 381 emotes, 222 dances, 273 prop emotes, 114 walk styles and 42 shared dual emotes, plus an 8-slot wheel, Numpad binds and a 3D placement mode, so players trigger any of these animations without touching Lua. Var-Creator uses ped mood and expression animations in its take-a-picture mode with 30+ presets, and a FiveM barbershop script seats the ped in the chair with synced scissors animations while editing. All of them run on ESX and QBCore and ship in Escrow, Partially Open and Open Source variants.
Frequently asked questions
How do I play an animation in FiveM?
Call RequestAnimDict(dict) client-side, wait in a loop until HasAnimDictLoaded(dict) returns true, then call TaskPlayAnim(ped, dict, clip, blendIn, blendOut, duration, flag, rate, lockX, lockY, lockZ). Flag 1 loops the clip and duration -1 keeps it playing until you call ClearPedTasks. Skipping RequestAnimDict is the number one reason an animation does nothing.
What is an anim dict and a clip name in FiveM?
GTA V groups animations into dictionaries (anim dicts) like amb@world_human_smoking@male@male_a@base, and each dictionary contains one or more clips (also called anim names) like base or idle_a. TaskPlayAnim needs both: the dictionary to stream and the exact clip inside it. The pairs in the table above are the two values you pass.
What is the difference between an animation and a scenario?
An animation is a dict plus a clip played with TaskPlayAnim, and you control blend, duration and flags. A scenario is a prebuilt behaviour like WORLD_HUMAN_SMOKING started with TaskStartScenarioInPlace, no dictionary needed. Scenarios are quicker to trigger but give you less control. Both are stopped with ClearPedTasks.
Why does my FiveM animation not play?
The three usual causes: you did not request the dictionary with RequestAnimDict and wait for HasAnimDictLoaded, the dict or clip name is misspelled (they are case sensitive), or your server game build predates that animation. Newer DLC dicts need a higher build set with sv_enforceGameBuild in server.cfg.
Where can I find the full list of FiveM animation dictionaries?
The complete set is over 20,000 dictionaries. The DurtyFree gta-v-data-dumps repository lists every dictionary and clip name in animDictsCompact.json, alexguirre's GTA V Animations List lets you preview them, and Pleb Masters Forge has a searchable browser. The table on this page is a curated set of the most used pairs, each verified against the DurtyFree dump.
Can I use these animations on ESX and QBCore servers?
Yes. Animation dictionaries and clips come from the base game, not from a framework, so the same dict and clip pairs work identically on ESX, QBCore, Qbox and standalone servers. Only the surrounding script that triggers TaskPlayAnim changes between frameworks.
-- var-fivem.com
Give players every animation, no Lua required
Var-Emote wraps 1,000+ animations, dances, prop and dual emotes, the emote wheel and 3D placement into one NUI menu. Instant Tebex delivery, or browse the full library live on the test server first.
Related: FiveM emote list · FiveM ped list · FiveM blips list