Commands & Controls
Player controls
Mouse wheel click
Aim, raises both weapons
Left click
Fire left gun, or both in unified mode
Right click
Fire right gun, or aim only in unified mode
X
Toggle fire mode
M
Put the dual guns away
X and M are registered through ox_lib, so players can rebind them in the FiveM keybind settings under rm_dualgun.
Fire modes
Toggled in game with X. The current mode is shown on the ammo HUD.
Mode 1: Independent (default)
Left click
Left gun fires
Right click
Right gun fires
Each hand runs its own magazine and fire-rate timer. Best for combined duals, where the two sides behave very differently.
Mode 2: Unified
Left click
Both guns fire
Right click
Aim only
Simpler to use, and closer to how dual-wielding usually feels in shooters.
Aim behaviour
There is a short delay between raising the guns and the first shot being allowed, and the aim pose is held briefly after you release the button. This keeps the animation from snapping in and out during rapid taps.
Commands
/useDual <weaponKey>
Testing
Spawn a dual gun with full ammo, no item needed
/undual
Player
Put the dual guns away
/dualdiag
Support
Print a state snapshot for support tickets
/useDual
Bypasses inventory ownership entirely, which makes it the fastest way to confirm your install works. Ammo spent this way is never saved.
/useDual is not restricted by default. Before going live, either remove the command or gate it behind an ace permission so players cannot give themselves weapons.
/dualdiag
Prints a diagnostic snapshot to the F8 console. If you open a support ticket, run this and include the output. It identifies most issues immediately.
Integration hook
Other resources can check whether a player is currently dual-wielding, and with what:
Useful for weapon-restricted zones, HUD integrations, job checks and logging.
Read only. Writing to this value from another resource will desync the player's weapons.
Localisation
All player-facing text lives in locales/. en.json is the reference file:
To add a language, copy en.json to a new file named after the locale code, replace the values while leaving the keys untouched, then point cfg.lua at it on the first line:
Keep the %d placeholders and their order. They are filled in at runtime, so removing one or swapping their positions will produce wrong numbers or an error.
Last updated