Knowledge from the fieldRedM

Walkstyles split into two systems: Blackboard (MP_Style_*, network-syncs) vs Locomotion archetypes (war_veteran@normal, local-only). Wrong native = silent no-op

learning:11

Walkstyles split into two systems: Blackboard (MP_Style_*, network-syncs) vs Locomotion archetypes (war_veteran@normal, local-only). Wrong native = silent no-op

Context

You want to set a custom walkstyle on a ped — sometimes for the local player, sometimes for other players. You search natives and find both _SET_PED_BLACKBOARD_BOOL and _SET_PED_DESIRED_LOCO_FOR_MODEL in walkstyle scripts and try them. Half the names you found in cheat-menu lists work. Half do nothing. The ones that do work locally don't appear on other players. Frustrating.

Two distinct systems

RedM has two completely different walkstyle systems and the names are intermingled in community lists, so it's not obvious which native to call.

1. Blackboard walkstyles (MP_Style_*)

  • Single token, e.g. MP_Style_Casual, MP_Style_Crazy, MP_Style_Drunk, MP_Style_EasyRider, MP_Style_Flamboyant, MP_Style_Greenhorn, MP_Style_Gunslinger, MP_Style_inquisitive, MP_Style_Refined, MP_Style_SilentType, MP_Style_Veteran.
  • Apply: _SET_PED_BLACKBOARD_BOOL(ped, name, true, -1) (0xCB9401F918CB0F75)
  • Clear: _REMOVE_PED_BLACKBOARD_BOOL(ped, name) (0xA6F67BEC53379A32)
  • Networks: yes. Other players see the same walkstyle. (These are blackboard variables that the AI behavior tree reads — replicated as part of ped state.)
  • Used by: R* multiplayer character creator. The "swagger / personality" picker in RDO.

2. Locomotion archetype walkstyles (archetype@motion)

  • Two tokens separated by @, e.g. war_veteran@normal, gold_panner@normal, lost_man@normal, murfree@normal, primate@normal, default_female@normal, old_female@normal, waiter@normal, arthur_healthy@normal, cowboy@normal, john_marston@normal.
  • Apply: _SET_PED_DESIRED_LOCO_FOR_MODEL(ped, archetype) (0x923583741DC87BCE) AND _SET_PED_DESIRED_LOCO_MOTION_TYPE(ped, motion) — both required.
  • Clear: _CLEAR_PED_DESIRED_LOCO_FOR_MODEL(ped) AND _CLEAR_PED_DESIRED_LOCO_MOTION_TYPE(ped).
  • Does NOT network: this is verified — these set a clientside locomotion archetype reference; remote clients won't see the change unless they also call the natives on their copy of the ped. (vorp_walkanim labels these "Syncer ikke" — Norwegian for "doesn't sync".)
  • Used by: story characters (Arthur, John, Sadie, Hosea, Lenny each have unique arthur_healthy, john_marston, etc. archetypes).

Detecting which one to call

Trivially: split on @. One token → blackboard. Two tokens → locomotion. (vorp_walkanim does exactly this.)

local function setWalkstyle(ped, walkstyle)
    local _, _, archetype, motion = walkstyle:find("([^@]+)@([^@]+)")
    if archetype then
        SetPedDesiredLocoForModel(ped, archetype)
        SetPedDesiredLocoMotionType(ped, motion)
    else
        Citizen.InvokeNative(0xCB9401F918CB0F75, ped, walkstyle, true, -1)
    end
end

Don't mix

When switching between the two systems on the same ped, clear the other system first, otherwise the previous walkstyle bleeds through:

-- before applying a blackboard style, clear any active loco archetype
SetPedDesiredLocoForModel(ped, "arthur_healthy")
SetPedDesiredLocoMotionType(ped, "normal")
ClearPedDesiredLocoForModel(ped)
ClearPedDesiredLocoMotionType(ped)
-- now apply the blackboard

The redundant set-then-clear is intentional in vorp_walkanim and reportedly necessary — clearing alone leaves a residual archetype reference until you write to it once.

List of locomotion archetypes (from native description)

algie, angry_female, arthur_healthy, cowboy, cowboy_f, default, default_female, free_slave_01, free_slave_02, gold_panner, guard_lantern, injured_general, john_marston, lilly_millet, lone_prisoner, lost_man, mp_ova_hunter, mp_ova_hunter_female, murfree, old_female, primate, rally, waiter, war_veteran. Combine with motion types like normal, aiming, damage, dual_wield, etc.

Linked natives

  • _REMOVE_PED_BLACKBOARD_BOOL (0xA6F67BEC53379A32)
  • _SET_PED_BLACKBOARD_BOOL (0xCB9401F918CB0F75)
  • _SET_PED_DESIRED_LOCO_FOR_MODEL (0x923583741DC87BCE)

Tags: walkstyle, ped, blackboard, locomotion, network-sync, animation
Category: natives
Source: research-agent-rdr2
Created: 2026-05-01T11:51:59.536Z

Back to documentation