Combat Moves Stealth Mode
Part of the Dive, Crawl & Gun feature, and the one piece of it that is not animation at all.
Using it
Double-tap the stealth control — INPUT_FRONTEND_LS (left stick click) on keyboard, INPUT_LOOK_BEHIND on a pad.
| Keyboard | Controller | |
|---|---|---|
| Tap window | 401 ms | 201 ms |
Both numbers come straight out of the original binary (0x191 and 0xC9). It is a double tap, not a single press — worth knowing, because a single press doing nothing looks like a broken binding.
On a controller, Dead Eye blocks switching stealth on. The test is not bindsAreKeyboard and IsSpecialAbilityActive, and it sits inside the branch that only runs while stealth is off, so on keyboard and mouse Dead Eye does not block stealth at all, and on either device stealth can always be switched off during Dead Eye.
You can also toggle it from Dive, Crawl & Gun → Stealth → Toggle stealth now, which closes the panel and switches it immediately.
What it actually does
No animation is played. Eight natives are set:
SET_PED_CONFIG_FLAG(ped, 158, true)
SET_PLAYER_NOISE_MULTIPLIER(player, 0.0)
SET_PLAYER_SNEAKING_NOISE_MULTIPLIER(player, 0.0)
_SET_PED_CROUCH_MOVEMENT(ped, 1, 1, 0)
SET_PED_STEALTH_MOVEMENT(ped, 1, 1, 0)
_SET_PED_BLACKBOARD_INT(ped, 'Stealth', 1, -1)
_SET_PED_DESIRED_LOCO_MOTION_TYPE(ped, 'Stealth')
_SET_PED_BLACKBOARD_FLOAT(ped, 'stealth', 1.0, -1)That swaps the player's locomotion for the game's own stealth move set, which ships with RDR2 and is never used by it.
Why takedowns look better in stealth
The player never stands up out of a crouch, because there is no crouch — the stealth locomotion replaces it outright rather than layering on top of it.
Noise is set to 0 outright while prone or in stealth, not scaled down. proneNoiseMultiplier exists as a slider if you want to put some noise back, but the original's value is 0.0.
The stealth overhaul
On top of the move set, the overhaul touches three things on each NPC it picks up. It caches and scales the seeing range, caches and scales the hearing range, and calls SET_PED_HIGHLY_PERCEPTIVE(ped, false).
When stealth ends, the restore loop writes back only the seeing and hearing ranges. Nothing in the resource ever sets the highly-perceptive flag back on, so an NPC that had it loses it permanently — for the rest of that ped's life, not just for the duration of the stealth.
| Default | ||
|---|---|---|
overhaulEnabled | true | the whole overhaul |
seeingRangeMultiplier | 0.2 | NPCs see you from a fifth as far |
hearingRangeMultiplier | 0.2 | and hear you from a fifth as far |
overhaulRadius | 100.0 | metres — which NPCs get adjusted |
overhaulInterval | 1000 | ms between sweeps |
applyToDefaultCrouching | false | also dull senses during a normal crouch |
The radius and interval are the original's: 100 m, once a second.
applyToDefaultCrouching changes more than stealth
With it on, an ordinary crouch gets the same sense reduction — so players who never touch stealth mode still become much harder to detect. On a server where NPC difficulty matters, leave it off.
The senses are also dulled while crawling, on your back, or sitting — not only in stealth mode proper.
Settings
Config.Dive.stealth = {
enabled = true,
locoMotionType = 'Stealth', -- _SET_PED_DESIRED_LOCO_MOTION_TYPE
blackboardInt = 'Stealth', -- set to 1, -1
blackboardFloat = 'stealth', -- set to 1.0, -1
proneNoiseMultiplier = 0.0,
overhaulEnabled = true,
applyToDefaultCrouching = false,
seeingRangeMultiplier = 0.2,
hearingRangeMultiplier = 0.2,
overhaulRadius = 100.0,
overhaulInterval = 1000,
}Config.Dive.pedConfigFlag is 158 — the flag set on the ped when stealth comes on.
Turning it off
Config.Dive.stealth.enabled = falseThe rest of Dive, Crawl & Gun carries on working. Or hide the section so players cannot change any of it while leaving it running on your values:
Config.Menu.sections['dive.stealth'] = falseHiding it does not disable it — see Server setup.
Exports
exports.rm_combat_moves:IsStealthOn()
exports.rm_combat_moves:SetStealth(true)SetStealth bypasses the double-tap entirely, so it is the right way to drive stealth from your own resource — for example putting a player into stealth when they enter a hideout.