Weapon FX Json Modding Overview

The .json files are located in resources > data > weaps > json. When the game loads this data, it loads the files alphabetically. If multiple .json files have the same weapon, the later file will overwrite the earlier one, so modded files should always be after the base files (this is easy to do because the base files start with two underscores, which when sorting alphabetically will sort them to the top of the list).

Changes to the .json files will only take effect when starting a new campaign or career.

From testing, it appears that all time-related properties (.e.g, "beam\_time", "shot\_gap") are relative to the base reload speed of weapons, which is two seconds. So a "beam\_time" of 0.2 would actually be 0.4 seconds, etc.

**Universal Properties:**

**"type"**: options are "shooter" and "bullet". "Shooter" should be used for autocannons, missiles, and flamers. "Bullet" should be used for machine guns and melee weapons. Beam weapons don’t need a "type" so this value can be removed.

**"num\_shots"**: if the weapon fires multiple times at once then this determines how many shots are fired. Examples include pulse lasers (3 shots), flamers (4 shots), and machine guns (3 shots). Note that for weapons which fire once but have multiple projectiles (e.g., missiles, LB-X autocannons), this value should be 1 because the number of projectiles is determined by the "shot\_copies" value.

**"shot\_gap"**: if the weapon fires multiple times at once then this denotes the delay between shots.

**"fire\_sound"**: the sound the weapon makes when it fires. The sounds are found in [BattleMercs Folder]/resources/sounds.

**"hit\_sound"**: the sound the weapon makes when it hits the target. The sounds are found in [BattleMercs Folder]/resources/sounds.

**"jitter"**: mechanics unknown.

**"lock\_on"**: mechanics unknown.

**Beam Weapons (Lasers and PPCs):**

**"beam\_time"**: how long the beam lasts when firing.

**"beam\_colors"**: a beam can have multiple colors (e.g., a bright core fading to darker edges, like a lightsaber), and this value determines the RGB values for those.

**"beam\_sizes"**: how wide each color of the beam is. The number of sizes here should match the number of different colors in "beam\_colors".

**"beam\_alpha"**: how transparent or opaque the beam is.

**"beam\_line"**: mechanics unknown.

**"beam\_line\_size"**: mechanics unknown.

**"Xbeam\_colors"**: mechanics unknown.

**"Xbeam\_blend"**: mechanics unknown.

**"fade\_time"**: after the "beam\_time" elapses, this determines how long the beam takes to fade away.

**"fade\_sizes"**: this affects what the beam looks like as it fades, but the exact mechanics are not known.

**"fade\_colors"**: this affects what the beam looks like as it fades, but the exact mechanics are not known.

**"fade\_amount"**: this affects what the beam looks like as it fades, but the exact mechanics are not known.

**"particle\_sprite"**: when a beam hits, it has a particle effect, and this determines the sprite used for that effect.

**"particle\_scale"**: how large the particles are compared to the base sprite size.

**"num\_particles"**: how many particles appear on a hit.

**"particle\_time"**: how long the particles last before disappearing.

**"particle\_vel"**: mechanics unknown.

**"particle\_anim\_speed"**: mechanics unknown.

**"Shooter" Weapons (Autocannons, Missiles, and Flamers):**

**"shot\_speed"**: how quickly the projectiles travel.

**"shot\_sprite"**: the sprite used for the projectiles.

**"shot\_scale"**: how large the projectiles are compared to the base sprite size. Length and width can be adjusted separately to make the projectile long and narrow or short and wide.

**"shot\_hit\_range"**: mechanics unknown.

**"miss\_lock"**: mechanics unknown.

**"hit\_sprite"**: the sprite used when the projectiles hit the target.

**"hit\_scale"**: how large the hit sprites are compared to the base sprite size.

**"shot\_copies"**: if the weapon fires multiple projectiles at once (e.g., missiles, LB-X autocannons), this designates the number of projectiles.

**"shots\_roll\_hit"**: if the weapon fires multiple projectiles at once, but each projectile deals damage separately (missiles, LB-X autocannons, Ultra autocannons), this designates that each projectile should roll to hit separately.

**"shot\_frame\_rand"**: mechanics unknown.

**"shot\_sprite\_blend"**: mechanics unknown.

**"muzzle\_sprite"**: the sprite used for the muzzle flash.

**"muzzle\_scale"**: how large the muzzle flash is compared to the base sprite size.

**"shot\_steady"**: mechanics unknown.

**"sound\_every\_shot"**: if the weapon fires multiple projectiles at once, but each projectile deals damage separately (e.g., Ultra autocannons), this designates that the "fire\_sound" should activate for each shot (e.g., twice instead of once).

**"sound\_every\_hit"**: this is used if the weapon fires multiple projectiles and the "hit\_sound" should activate for each individual hit.

**"shot\_that\_damages"**: if the weapon fires multiple projectiles but should only deal damage once (e.g., flamers), this designates which shot should deal damage.

**"Bullet" Weapons (Machine Guns and Melee):**

**"shot\_time"**: how long the shot effect lasts. If the weapon fires multiple rounds (e.g., machine guns) then this applies to each shot.

**"muzzle\_sprite"**: the sprite used for the muzzle flash.

**"muzzle\_scale"**: how large the muzzle flash is compared to the base sprite size.

**"muzzle\_offset"**: mechanics unknown.

**"muzzle\_anim"**: mechanics unknown.

**"hit\_sprite"**: the sprite used when the weapon hits the target.

**"hit\_scale"**: how large the hit sprites are compared to the base sprite size.

**"hit\_offset"**: mechanics unknown.