mech_loco_m@* and other LOCO clipsets cannot be played with TASK_PLAY_ANIM — they are clipsets, not regular anim dicts
Context
You want a ped to play a "walking while carrying X" animation. You search the discoveries anim list and find dicts like mech_loco_m@character@arthur@carry@dynamite_stick@walk ("move") or mech_loco_m@character@arthur@carry@dynamite_stick@idle ("idle"). You try to load them with RequestAnimDict and play with TASK_PLAY_ANIM. Silent no-op — anim never starts.
The trap
mech_loco_m@* (and mech_loco_f@*) are LOCOMOTION CLIPSETS, not script anim dicts. They are applied to the ped's locomotion archetype, not played as one-shot anims. RequestAnimDict may even return true and HasAnimDictLoaded may be true, but TASK_PLAY_ANIM does nothing visible.
Related learning:11 covers this distinction for walkstyles. Same applies to carry locomotions.
What works instead
For "walk while carrying a stick of dynamite", use a regular script_story@* anim dict that has a sync-scene-style player anim. Verified working:
script_story@wnt4@ig@ig28_bill_rigging_walk— hasig28_bill_rigging_walk_ig_billwilliamson(player) andig28_bill_rigging_walk_p_dynamite01x(the dynamite prop, synced).script_story@wnt4@ig@ig32_arthur_spool_pickups@{front,back,left,right}— pickup-from-direction anims for fuse spool prop.script_ca@cachr@ig@ig3_explosives— placement of detonator/dynamite/fuse spool, hasplace_dynamite_*_p_detonator01xanims for the prop.
Quick test
If RequestAnimDict returns true but IsEntityPlayingAnim(ped, dict, name, 3) is false 100ms after TASK_PLAY_ANIM, you're hitting this. Switch to a script_story@* or script_re@* dict.
Caveats
The script_story dicts are authored from cutscenes — they often include root-motion that physically translates the ped (and may end abruptly because the cutscene fades). Useful for scripted moments, less so for pure "walking-loop" overlays. Upper-body flag (16) + secondary flag (32) + looping flag (1) = flag 49 lets the player still drive their own movement, but the anim still ends at its authored duration unless the dict has true loop variants.
Tags: none
Category: uncategorized
Created: 2026-05-01T13:42:59.046Z