GameData_ArchetypeDataBlock_bin.json (filled)
Defines weapon stats and metadata, including sentries.
This datablock is not referenced directly, but rather selected from PlayerOfflineGearDataBlock component firemode paired with specified component gear category from GearCategoryDataBlock. Sentry archetypes are hardcoded.
Weapons technically have 2 names. This is the one used as a more generic name, e.g. "Assault Rifle".
The other name is specified in GearJSON in PlayerOfflineGearDataBlock.
Weapon description displayed in lobby.
Firing mode of this weapon. Can affect which other fields are used.
SemiBurst is an unused but functional firemode. It's basically a semi auto where you can fire x shots before triggering a cooldown, unless your delay between any 2 shots is big enough for it to reset.
Recoil data ID of this weapon.
Which booster types should affect this weapon.
Seems functional but currently unused.
Base damage of this weapon.
Linear damage falloff for this weapon.
X determines where it starts, Y determines where it ends.
Anywhere in-between X and Y the damage falls off linearly via a multiplier to 0, but there's a lowest value for the multiplier.
Lowest value for the multiplier is currently 0.1.
Stagger damage multiplier for base damage.
Precision damage multiplier for base damage. This multiplier is only applied when a weakspot is hit (back damage doesn't count).
Default mag size.
GearMagPartDataBlock can affect this.
Time in seconds for the reload animation to complete. Note that reload can be completed before the animation is done.
GearMagPartDataBlock can affect this.
Used together with PlayerDataBlock Ammo values to several weapon ammo values. For example for a weapon with a cost of 10 and these (currently game default) ammo values:
We will have:
30 initial (mag included) ammo when starting a level.
OnDropin seems unused.
46 max reserve ammo.
450 * 0.2 / 10 = 9 bullets per refill (0.2 comes from the fact that you use 0.2 of a refill at any given time (e.g. 4 uses of a refill is 0.8)
Note that for sentries there's another multiplier in ItemDataBlock called ClassAmmoCostFactor.
Time in seconds between shots.
Sentries don't immediately detect that an enemy died so they're more likely to waste ammo on dead enemies with low delay.
Shell casing size multiplier.
Shell casing ejection speed range.
Whether this weapon can pierce.
Pierce is currently broken for sentries.
How many enemies can a piercing bullet hit. 1 means it will not pierce.
5 is technically max, although in a roundabout way - for piercing weapons, a loop is performed a maximum of 5 times before exiting. Each collider hit consumes one iteration. It can often happen that the same enemy is hit several times (although damage is applied only once), making high pierce give diminishing returns. In practice, even with 4-5 pierce you'll most likely only hit up to 3 enemies.
Hipfire random spread.
Spread is hard to judge, but a weapon with 1 spread is fairly accurate even at mid-long range (~15m).
Behind the scenes this is just a multiplier for a random point inside a unit circle.
ADS random spread.
How long equip animation takes. Also affects when it can be fired after selecting.
Animation sequence to play when equipping a weapon.
How long ADS animation takes.
Animation sequence to play when aiming with a weapon.
For burst weapons, delay between separate bursts.
For burst weapons, how many shots a single burst fires.
For shotguns, pellet count in a shot.
For shotguns, the cone size. Note that this value is Int32, only accepting whole numbers.
Cone size affects pellet spread, but it is not random. It fires one pellet in the middle and the rest in a circle around the middle based on a sin/cos function.
Shotgun random pellet spread. Also a whole number.
This doesn't scale well with cone size and can result in shots going way further from the middle than expected.
How long it takes for the weapon to charge before firing.
Delay before a weapon can charge up again when it stops firing.
Currently broken for auto weapons.
Time for semiburst weapon shot count to reset.
Delay before a sentry starts firing when detecting an enemy.
Sentry rotation speed.
Sentry detection max range.
Currently broken (sort of) - the noise range the sentry causes around itself directly depends on this value.
Max angle to either side at which a sentry can detect enemies.
Note that sentries can only cover 180 degrees (value 90) total as they physically cannot turn around.
By default sentries shoot where their barrel is aiming, which can cause them to miss when they shouldn't.
Setting this to true will make them basically an aimbot, always shooting towards the target.
Unfortunately, the target position is also currently broken on some enemies and so they can miss even as aimbot.
Distance for long range boosters.
Distance for short range boosters.
Seems to determine how sentries should target enemies.
Practical difference is unknown.
Should sentry only target biotracker-tagged enemies.
Should sentry prioritize targetting biotracker-tagged enemies.
Start fire delay multiplier when targetting biotracker-tagged enemies.
Rotation speed multiplier when targetting biotracker-tagged enemies.
Damage multiplier when targetting biotracker-tagged enemies.
Stagger damage multiplier when targetting biotracker-tagged enemies.
Cost of bullet multiplier when targetting biotracker-tagged enemies.
Makes perfect sense.
Shot delay multiplier when targetting biotracker-tagged enemies.