For the complete documentation index, see llms.txt. This page is also available as Markdown.

Weapons

All dual weapons live in cfg.weapons. The table key is the item name: rm_appistol_dual is both the config key and the inventory item.


Normal entries

Both hands hold the same weapon. All fields sit at the top level:

rm_appistol_dual = {
    label = 'AP Pistol', weapon = 'weapon_appistol', weaponHash = 584646201,
    animSet = 'small', ammo = 'dual_pistol_ammo',
    magazine_capacity = 18, max_ammo = 100, reload_time_ms = 1500,
    shot_interval = 80, recoilData = { recoil = 0.5, screenShake = 0.1 },
},
Field
Meaning

label

Display name in the HUD and notifications

weapon

Vanilla weapon name

weaponHash

Numeric hash, must match weapon

animSet

Which animation set to use (see below)

ammo

Ammo item name that reloads this weapon

magazine_capacity

Rounds per magazine, per hand, before a reload triggers

max_ammo

Total ammo cap per hand (magazine + reserve)

reload_time_ms

How long the reload animation locks the player

shot_interval

Minimum milliseconds between shots from the same hand

recoilData

{ recoil, screenShake }, reserved, not applied yet

magazine_capacity and max_ammo are per hand. max_ammo = 100 on a dual pistol means 100 rounds in the left gun and 100 in the right, 200 total.


Combined entries

A different weapon in each hand. Per-side fields move into left and right subtables; everything shared stays at the top:

Shared at the top level: label, animSet, ammo, recoilData Per side: weapon, weaponHash, label, magazine_capacity, max_ammo, reload_time_ms, shot_interval

Six combined weapons ship by default:

Item
Left hand
Right hand

rm_microassault_dual

Micro SMG

Assault Rifle

rm_desperado_dual

Revolver

Sawed-Off Shotgun

rm_chaos_dual

RPG

Minigun

rm_breacher_dual

SMG

Pump Shotgun

rm_pyro_dual

Firework

Grenade Launcher

rm_akimbo_dual

AP Pistol

Micro SMG


Animation sets

animSet picks the pose. Six sets ship in stream/:

Set
Posture
Typical weapons

small

Relaxed two-hand

Pistols, SMGs, compacts

gang

Sideways gangster hold

Heavy pistols, revolvers, micro SMGs

long

Braced, longer weapons

Rifles, shotguns, railgun

mg

Machine gun stance

MG

mini

Minigun stance

Minigun

rpg

Shoulder-fired

RPG, homing launcher, firework

For combined weapons, use the set that suits the larger of the two weapons.

The gang, mg and long sets also override the walk clipset while moving. This exists to cancel the "sassy walk" that GTA otherwise blends in.


Adding a weapon

  1. Add an entry to cfg.weapons, keyed by your new item name.

  2. Add the same item name to all three files in [items]/.

  3. Make sure weaponHash matches weapon. A mismatch means that hand ends up holding the wrong gun.

  4. Point ammo at an existing ammo item, or create a new one and add it to the item files too.

No client changes are needed. The weapon table is read at runtime on both sides and the animation set is looked up by name, so a restart is enough.


Balancing notes

shot_interval is the single most important number for balance. It is a hard floor between shots on one hand, so the real DPS of a dual weapon is roughly:

A dual minigun at shot_interval = 30 therefore produces about 66 shots per second. That is also the worst case for network traffic. See Rate Limits.

The default fire rates range from 30 ms (minigun) to 1500 ms (launchers).

Last updated