Knowledge from the fieldRedM

Fully clean a ped (dirt + blood + wound decals + facial blood) without doing a character reload

learning:1

Fully clean a ped (dirt + blood + wound decals + facial blood) without doing a character reload

Context

After bathing/wash/medical scripts, you typically want the ped visually reset (no dirt, no blood, no wound decals). Many community resources (e.g. VORP rc reload-character command, rn-bathing, scandi_clothing) do this by triggering a full character reload. That reload is heavy: it strips all metaped tags, calls _RESET_PED_COMPONENTS (0x8507BCB710FA6DC0), then rebuilds head/body/legs/hair/face overlays/albedo frame-by-frame. During the rebuild the player ped briefly renders as a base/bald model — on mp_female this looks androgynous/masculine until overlays + albedo finish streaming, which players read as "my character turned into a man for a second".

What actually works (no reload needed)

This native sequence cleans the ped fully without touching components/skin:

ClearPedEnvDirt(ped)
ClearPedBloodDamage(ped)
Citizen.InvokeNative(0xE3144B932DFDFF65, ped, 0.0, -1, true, true) -- _SET_PED_DIRT_CLEANED
ClearPedDamageDecalByZone(ped, 10, "ALL")
Citizen.InvokeNative(0x7F5D88333EE8A86F, ped, 1)                  -- _CLEAR_PED_BLOOD_DAMAGE_FACIAL

What each one covers:

  • ClearPedEnvDirt — environmental dirt layer
  • ClearPedBloodDamage — body blood splatter
  • _SET_PED_DIRT_CLEANED (0xE3144B932DFDFF65) — dirt accumulation state. Param shape (ped, 0.0, -1, true, true) matches R* MP scripts.
  • ClearPedDamageDecalByZone(ped, 10, "ALL") — wound/damage decals on zone 10
  • _CLEAR_PED_BLOOD_DAMAGE_FACIAL (0x7F5D88333EE8A86F) — facial blood specifically; ClearPedBloodDamage does NOT cover this.

Why this matters

  • No visual flash / "wrong gender" artifact during the cleanup.
  • Cheap — no model load, no component reapply, no texture rebuild.
  • Safe inside an active task/animation; doesn't desync clothing state.

If a resource is already calling its framework's reload-character command (VORP rc, etc.) just to clean dirt, replace it with the sequence above.

When you DO still need a reload

Only when wound damage actually changed mesh/skin texture (heavy decals from gunfire) — _CLEAR_PED_BLOOD_DAMAGE_FACIAL + ClearPedDamageDecalByZone cover normal cases, but a few rare decal types persist in the texture and only a full albedo rebuild (via component reload + overlay re-stream) clears them. For the post-bath/post-wash use case this is overkill.

Linked natives

  • _CLEAR_PED_BLOOD_DAMAGE_FACIAL (0x7F5D88333EE8A86F)
  • _SET_PED_DIRT_CLEANED (0xE3144B932DFDFF65)

Tags: ped, cleanup, dirt, blood, decals, wash, bathing
Category: natives
Created: 2026-04-25T12:39:13.810Z

Back to documentation