Weapons

Lara has a fixed number of weapons as follows.

  • Pistols
  • Magnums / Automatic Pistols
  • Uzis
  • Shotgun
  • M16
  • Grenade Launcher
  • Harpoon Gun
  • Flare (not strictly a weapon, but treated similarly by the engine)
  • Black Skidoo

The file cfg/weapons.json5 contains properties for these weapon types, each described in the table below.

Property Type Description
aim_speed Integer Determines how quickly Lara's arms rotate into position when aiming at a target.
damage Integer The HP damage value to subtract from targets when struck by this weapon type. This value is doubled when playing either Japanese or Japanese NG+ modes.
draw_frame Integer For rifle type weapons, the relative frame number of the equip animation where the object mesh swap is performed e.g. removing the shotgun from Lara's back and putting it in her hand.
equip_anim_idx Integer For rifle type weapons, the relative equip animation index of the associated object e.g. O_LARA_SHOTGUN.
flash_pos / flash_pos_alt XYZ Specifies the offset position where the weapon flash object (O_GUN_FLASH / O_M16_FLASH / O_FLARE_FIRE) will be drawn. flash_pos_alt is used only for discarded flares.
flash_shade Integer Specifies the shade applied when drawing the weapon flash object (O_GUN_FLASH / O_M16_FLASH / O_FLARE_FIRE).
flash_color Float array (length 3) Specifies the color applied when drawing the weapon flash object (O_GUN_FLASH / O_M16_FLASH / O_FLARE_FIRE), used in TR3 lighting system.
glow_color Float array (length 3) Specifies the color applied when drawing the weapon glow object (O_GLOW), used in TR3 lighting system.
glow_pos XYZ Specifies the additional offset to apply to the glow sprite position.
flash_time Integer Determines the number of frames to show the weapon flash object (O_GUN_FLASH / O_M16_FLASH) after firing a weapon.
muzzle_pos XYZ Specifies the additional offset to apply to the muzzle for smoke effects (right hand).
muzzle_pos_alt XYZ Specifies the additional offset to apply to the muzzle for smoke effects (left hand for dual pistols).
smoke_count Integer How many smoke effect instances to spawn upon shooting.
shell_pos XYZ Specifies the additional offset to apply to the gun for shells (right hand).
shell_pos_alt XYZ Specifies the additional offset to apply to the gun for shells (left hand for dual pistols).
gun_height Integer Used to determine the start Y position when firing a weapon, and to determine if Lara is too far submerged in water to be able to use a weapon (other than the harpoon).
is_available Boolean Determines if a weapon can be given to Lara when using item cheats. Pickups for unavailable weapons/flares will still work normally.
left_angles Integer array (length 4) These values determine if Lara has lost target on her left arm.
lock_angles Integer array (length 4) These values are used to test if Lara is able to lock on to a target.
pickup_qty Integer The amount of ammo given for the weapon when equivalent ammo object is picked up.
pickup_qty_alt Integer As per pickup_qty, but this applies exclusively to flares when playing Japanese NG.
recoil_frame Integer For pistol type weapons, this value determines when Lara should snap back to the aiming frame after the weapon is fired i.e. Uzis have a lower value than Pistols for faster fire rate.
right_angles Integer array (length 4) These values determine if Lara has lost target on her right arm.
sample_num String The sound effect to play when the weapon is fired (see ./11-SAMPLES.md).
shot_accuracy Integer Adds a random factor to angles used when firing a weapon. Higher values mean less accuracy.
target_dist Float The maximum distance (in world sectors) that a target can be from Lara in order for her to lock on.
type String The category that determines how the gun is handled. Accepted values are as follows.
  • WEAPON_TYPE_DUAL_PISTOLS
  • WEAPON_TYPE_SINGLE_PISTOL
  • WEAPON_TYPE_RIFLE
  • WEAPON_TYPE_MOUNTED
undraw_frame Integer For rifle type weapons, the relative frame number of the unequip animation where the object mesh swap is performed e.g. removing the shotgun from Lara's hand and putting it on her back.