Skip to content

Combat Moves Troubleshooting ​

Start here ​

/unstuck

Releases the menu's input grab, stops a slide and a gun trick, clears leftover tasks and hides the trick list. It works whether Config.Debug is on or off, so it is safe to give to players.

It does not end a dive. The command never calls StopDive(), so a player stranded prone, crawling, on their back or sitting is not freed by it — the dive loops re-issue the pose a frame after the tasks are cleared. For those states use the menu's Dive, Crawl & Gun → Fix → Stand up now row, or the StopDive() export.

Nothing happens when I press the dive key ​

You need a movement direction held at the same time. G on its own is deliberately inert — the direction chooses which of the five dive animations plays, and the requirement is what stops the key firing by accident.

One movement key is enough. G + W dives forward, G + A or G + D dives to that side, and G + S on its own dives backwards. dive() takes the first of the four movement controls that is down, in the order up, down, left, right, so holding S with A or D gives the same backward dive as S alone. Which of the two backward clips plays is a coin flip, and the left one is only picked with a pistol, revolver, rifle, two-handed weapon or sawn-off in hand.

If a direction is held and nothing happens, check in this order:

Staminaa dive needs at least 10 stamina and costs 9. The test is < minStaminaToDive, so exactly 10 still dives. An empty core refuses
Cooldown800 ms between dives
Another move runningdiving stands down while a slide, roll or spin is in progress
Config.Dive.enabledor a SetDiveEnabled(false) from your own script
enableDiveWhenOnlyAimingif you turned it on, free aim has to be active — the gate is IS_PLAYER_FREE_AIMING, not the aim control

On a server using assisted aim, enableDiveWhenOnlyAiming stops diving outright. IS_PLAYER_FREE_AIMING stays false under assisted aim even with the aim button held, and the dive does not fall back to checking the aim control the way the slide does, so holding aim will not bring diving back.

cs_dive gives a live read-out of state, weapon class and submersion.

Nothing happens when I press slide ​

You need to be running, not walking. The slide needs real ground speed — 2.5 m/s by default (Config.MinSpeed).

Then, in order:

Hold, do not tap250 ms by default (Config.HoldDuration)
Cooldown750 ms between slides
In waterblocked by default (Config.AllowInWater)
Binoculars or a kit itemblocked by default (Config.BlockWithBinoculars)
A wall within 1.6 m aheadthe obstacle probe refuses

A roll or a gun trick already running is not a reason. canSlide tests only its own sliding flag and never consults IsRolling or IsSpinning, so a slide can start in the middle of either. The exclusion is one-directional — a roll refuses while you are sliding, and a gun trick refuses while you are sliding or rolling.

My shots do not come out during a slide ​

Hold aim. Firing is intentionally blocked unless you are aiming — that is Config.BlockAttackUnlessAiming, which ships true to match the original. Set it to false to allow firing without aiming at all.

If you are aiming and still cannot fire, it is worth knowing why this is a known hard spot:

Three natives lie about firing on this build

IS_PED_WEAPON_READY_TO_SHOOT returns false while stood still, aiming, with the trigger down and the gun firing. IS_PED_SHOOTING has never been observed returning true. And IS_PLAYER_FREE_AIMING returns false under assisted aim even with the aim button held.

The last one is why the original mod appeared to block firing for the whole slide on servers using assisted aim — it only checked that native. This port gates on the aim control as well.

Use ammo deltas to tell whether a shot came out: cs_watch shows the ammo column, and if it drops, the gun fired.

If it still will not fire, cs_noanim is the control experiment: slide with no animation task at all. If the weapon fires in that mode but not otherwise, the animation task is what blocks firing. Then check you have not added reset flag 27 (PRF_BlockWeaponFire) to Config.SlideResetFlags.

The menu will not open ​

  1. Try /combatmoves. If that works, the key is the problem — either PGUP is bound to something else, or Config.MenuKey was changed.

  2. If neither works, the menu may have been switched off: Config.Menu.enabled = false. The command prints a notice once when that is the case.

  3. Check the resource started at all, in the server console.

The menu looks like plain unstyled text ​

A file the panel needs is not being served. Two causes:

The folder did not copy fullycheck nui/ and nui/ASSETS/ are both there
A file is missing from files{}RedM will not serve anything not listed in fxmanifest.lua

The globs for nui/ASSETS/*.png, *.ttf and *.mp3 exist for exactly that reason. If you added artwork, add it to the manifest.

The menu opens but the mouse does nothing ​

Config.MenuMouse is false. It is the cursor half of SetNuiFocus(true, hasCursor) — with it off there is no cursor at all, so the hover and click handlers exist but can never fire. The keyboard bindings still work.

Combat Moves → Menu → Mouse cursor toggles it live, and applies straight away rather than on the next open.

I am stuck prone / cannot move / the camera is stuck ​

/unstuck will not do it. It never calls StopDive(), and the crawl, on-back and sitting loops re-issue their animation and camera a frame after it clears your tasks. Use the menu's Dive, Crawl & Gun → Fix → Stand up now row, or the StopDive() export — those set the dive module's stopRequested and get you up from any state.

/unstuck is still the right call for a menu that will not close, a stranded trick-list title or a slide that did not finish.

If it happens repeatedly, suspect a conflict rather than a bug — see below.

A move half-plays and snaps back ​

Almost always another resource, not this one. Three usual suspects:

ClearPedTasks on the local player every frameinterrupts a move mid-animation
Something taking over the camerafights the slide and dive cameras
Control groups disabled every frameswallows the inputs

cs_watch shows live control and ped state and usually identifies the culprit in a few seconds. To hand the camera back:

lua
Config.CustomCamera           = false
Config.Dive.enableProneCamera = false
Config.Dive.enableDiveCamera  = false

Slides keep getting cut short ​

Check Config.AbortOn. If you turned incapacitated on, turn it back off:

lua
Config.AbortOn.incapacitated = false   -- the shipped default

IS_PED_INCAPACITATED was observed returning true mid-slide on a player at full health with full cores on this build, so it cannot be trusted to mean what its name says.

The gun tricks do nothing ​

You need a sidearm drawn. By default only pistols and revolvers can be spun (Config.GunTricks.requirePistol). Set it to false to let anything be spun.

Also: it is a double-tap within 400 ms, not a single press.

Double-tapping N keys my microphone ​

N is INPUT_PUSH_TO_TALK in RedM. It is the original mod's key, and RedM happens to put push-to-talk there.

lua
Config.GunTricks.key = 'TAB'

TAB is INPUT_TOGGLE_HOLSTER and is the usual swap.

The trick names do not show on screen ​

The on-screen list ships switched off. Turn it on in Gun Tricks → Settings → Show trick list, which sets hudMode to 'nui'.

If you turned it on and still see nothing, the renderer is the problem rather than the setting. Try cs_hud draw — the UIDEBUG renderer is plain but it always draws. 'prompt' mode will show very little, because RDR2 hides a prompt whose control is disabled and the trick controls are suppressed while spinning.

A half-working renderer can leave its title stuck on screen; /unstuck sets hudMode back to 'none'.

A key will not bind ​

K, T and Y cannot be bound to anything in RedM

There is no key hash for them. This is a platform limitation, not a bug here, and no resource can work around it. Use another key, or switch the slide to Config.InputMode = 'keymap' and let players pick.

The usable set is in Controls.

The roll snags at the end ​

Config.Roll.exitPhase decides when control comes back. Phase 2's last stretch is the character pushing back up and settling, and the heading stays pinned for all of it — so the roll looks finished while you still have no control.

Check whether the menu moved it

The panel's Combat Roll → Control back at slider has a range of 0.50–1.00, but config.lua ships 0.005. If anyone nudged that row, the value jumped to at least 0.50 and the snag came back — and the panel cannot get back to the shipped value. Restart the resource to reload config.lua, then hide the row:

lua
Config.Menu.options['roll.control-back-at'] = false

Run cs_menuids roll to confirm the id on your build.

Time slows down for me but other players say it looked normal ​

That is bullet time, and it is a client-side effect by nature — it changes time scale for the whole client. It ships off for exactly this reason.

Turn it off under Slide → Combat → Bullet time when aiming, or ask the server owner to block it:

cfg
setr combat_slide_allow_timescale "false"

Every slide prints a report to my console ​

Config.Debug is true, which is how the resource ships.

lua
Config.Debug = false

That stops the printing. It does not remove the cs_* commands or /unstuck — those are registered either way. See Debug commands.

My character grunts are missing on a dive ​

They are deliberately dropped, and cannot be restored from Lua.

Every ambient-speech native in RDR3 takes an Any* pointing at a struct whose first field is itself a pointer to the speech name. There is no way to place the address of one Lua string inside the bytes of another, so the struct cannot be built. Passing the fields flat throws a native exception and takes the frame down.

Settings I changed in the menu are gone after a restart ​

That is by design. Menu changes apply immediately and last until the resource restarts — they are never written to config.lua and never sent to anyone else.

To make a value permanent, set it in config.lua.

Still stuck ​

Collect this before asking for help:

  1. Your server console output from when the resource started.

  2. Your client console (F8) output, with Config.Debug = true so the state reports are included.

  3. Which feature, and the exact keys you pressed.

  4. The output of cs_watch or cs_dive if it is a move that will not play, or cs_diveanim if it is an animation that looks wrong.

Then open a ticket on Discord.

Documentation for RedMorrow. Scripts are licensed per server — redistribution is not permitted.