saints row iv · weapon upgrades

How Saints Row IV Weapon Upgrades Work (weapon_upgrades.xtbl)

How weapon upgrade levels patch weapon stats (replace / add / multiply / remove).

Weapon Upgrades4 rows
#Field / stepFunction
How upgrades work
1weapon_upgrades.xtbl lists, per weapon, fields to change at each upgrade level.weapon_upgrade_parse 00d72a20
2For each level the game copies the weapon's base stats and patches the listed fields.weapon_upgrade_apply_overrides 00d6d5c0
3Each change has a mode: OM_REPLACE (set), OM_ADDITIVE (add), OM_MULTIPLICATIVE (multiply) or OM_REMOVAL (remove), and one <Value> per level.
TipTo change one upgrade level, edit weapon_upgrades.xtbl rather than weapons.xtbl.
Fields an upgrade can change
Display_Name_Override
Description_Override
Bitmap_Override
Flags
Strafe_Angles
Muzzle_Flash
Muzzle_Effect
Alt_Muzzle_Effect
Melee_Effect
melee_material_effects
Trigger_Type
Alt_Trigger_Type
Alt_Ammo
Magazine_Size
Ammo_per_Shot
Ammo_Regeneration
Ammo_Regeneration_Depleted
Range_Max
Diversion_Kill_Multiplier
NPC_Aim_Drift
Time_Management
Alt_Time_Management
Damage_Max
Damage_Min
Melee_Attack_Info
Melee_Damage_Overrides
Sweep_Info
Explosion
Alt_Explosion
End_Point_Explosion
Alt_End_Point_Explosion
Underwater_Explosion
Muzzle_Explosion
Damage_Max_Dist
Damage_Min_Dist
Flat_Spread_Metrics
Fire_Cone_Angle
Fire_Cone_Length
Fire_Cone_Impact_Effect
Fire_Cone_Metrics
Shots_Per_Round
PlayerWeaponSpread
PlayerAltWeaponSpread
NPCWeaponSpread
NPCAltWeaponSpread
Ragdoll_Force_Shoot
Object_Bullet_Hit_Impulse_Magnitude
Vehicle_Hit_Impulse_Magnitude
Human_Hit_Impulse_Magnitude
melee_damage_to_anchored_scaler
vehicle_damage_scale
player_vehicle_damage_scale
Reload_scalar
HealthPickup
MechanicalsBonus
KillRoundsBonus
HealthRestoration
CashBonus
WielderDamageReductionPct
OverheatDamageBonus
Projectile_Info
Target_Lockon
Camera_Info
Burst_Fire_Info
Charge_Release_Info
Overheat_Info
Percent_Decrease_Per_Kill
Ragdoll_Info

Built from SR4_Game_Explained.xlsx (650 KB), if you'd rather filter it in Excel. SaintsRowIV.exe v1.0.6.1 (Steam). Names are ours unless they're Volition's own Lua or C++ class names.