Hooks:PostHook( WeaponFactoryTweakData, "init", "BCM_WeaponFactoryTweakData_init", function(self)

table.list_append(self.wpn_fps_smg_coal.uses_parts, {
"wpn_upg_ak_s_folding", "wpn_upg_ak_s_skfoldable", "wpn_fps_upg_ak_s_solidstock"
})

table.list_append(self.wpn_fps_ass_amcar.uses_parts, {
"wpn_fps_upg_m4_m_pmag", "wpn_fps_ass_l85a2_m_emag", "wpn_fps_upg_m4_g_ergo", "wpn_fps_upg_m4_g_sniper", "wpn_fps_upg_m4_g_mgrip", "wpn_fps_upg_m4_g_hgrip", "wpn_fps_upg_m4_s_pts"
})

table.list_append(self.wpn_fps_ass_m4.uses_parts, {
"wpn_fps_m16_fg_railed"
})

table.list_append(self.wpn_fps_ass_m16.uses_parts, {
"wpn_fps_upg_ass_m4_fg_lvoa", "wpn_fps_upg_fg_jp", "wpn_fps_upg_fg_smr"
})

--
--BARRELS 

--cursed code, do not release
--self.parts.wpn_fps_m4_uupg_b_medium_vanilla = {
--forbids = {"wpn_fps_upg_300aac"}
--}

self.parts.wpn_fps_smg_shepheard_body_short.stats = {value = 1, spread = -2, spread_moving = 1, concealment = 2}
self.parts.wpn_fps_smg_shepheard_body_short.custom_stats = {optimal_range_mul = 0.7142}
self.parts.wpn_fps_pis_legacy_b_threaded.stats = {value = 1}
self.parts.wpn_fps_pis_sparrow_b_threaded.stats = {value = 1}

self.parts.wpn_fps_lmg_m60_b_short.stats = {value = 1, spread = -2}
self.parts.wpn_fps_lmg_par_b_short.stats = {value = 1, spread = -1, recoil = -1, concealment = 2} 
self.parts.wpn_fps_lmg_m249_b_long.stats = {value = 1, spread = 1, recoil = 1, concealment = -1} 
self.parts.wpn_fps_lmg_hk21_b_long.stats = {value = 1, spread = 1, recoil = 1, concealment = -1} 
self.parts.wpn_fps_lmg_mg42_b_mg34.stats = {value = 1, recoil = 2}
self.parts.wpn_fps_lmg_mg42_b_mg34.custom_stats = {rof_mult = 0.7083}

self.parts.wpn_fps_snp_wa2000_b_long.stats = {value = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_snp_r93_b_short.stats = {value = 1, spread = -2, recoil = -1, concealment = 2} 
self.parts.wpn_fps_snp_mosin_b_short.stats = {value = 1, spread = -2, recoil = -1, concealment = 2} 
self.parts.wpn_fps_snp_winchester_b_long.stats = {value = 1, spread = 2, concealment = -3}
self.parts.wpn_fps_snp_mosin_b_standard.stats = {value = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_snp_msr_b_long.stats = {value = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_snp_r700_b_short.stats = {value = 1, spread = -2, concealment = 2}

self.parts.wpn_fps_pis_rsh12_b_comp.stats = {value = 1, recoil = 1, spread = 2, concealment = -1}
self.parts.wpn_fps_pis_rage_b_comp2.stats = {value = 1, recoil = 2}
self.parts.wpn_fps_pis_rage_b_comp1.stats = {value = 1, recoil = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_pis_rage_b_long.stats = { value = 1, recoil = 1, spread = 2, concealment = -1} --Overcompensating
self.parts.wpn_fps_pis_rage_b_long.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_pis_rage_b_short.stats = {value = 1, recoil = -3, spread = -2, concealment = 2} --Pocket Surprize
self.parts.wpn_fps_pis_rage_b_short.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_pis_deagle_b_modern.stats = {value = 1, recoil = 2} --Custom Milled
self.parts.wpn_fps_pis_deagle_b_modern.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_deagle_b_long.stats = {value = 1, spread = 2, recoil = -1, concealment = -2}
self.parts.wpn_fps_pis_deagle_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_pis_usp_b_expert.stats = {value = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_pis_usp_b_match.stats = {value = 1, spread = 1, recoil = 1, concealment = -2}
self.parts.wpn_fps_pis_usp_b_match.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_smg_tec9_ns_ext.stats = {value = 1, spread = 2, recoil = -1, concealment = -2} --Ghetto Blaster
self.parts.wpn_fps_pis_peacemaker_b_long.stats = {value = 1, spread = 3, recoil = -1, concealment = -3}
self.parts.wpn_fps_pis_g22c_b_long.stats = { value = 1, damage = 0, spread = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_pis_c96_b_long.stats = {value = 1, damage = 0, recoil = -2, spread = 3, concealment = -3, total_ammo_mod = 0}
self.parts.wpn_fps_pis_chinchilla_b_satan.stats = {value = 1, spread = 2, concealment = -2} 

self.parts.wpn_fps_m4_uupg_b_medium.stats = {value = 1, spread = 1, concealment = -1} --Medium Barrel, PARA
self.parts.wpn_fps_m4_uupg_b_medium.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_smg_hajk_b_medium.stats = {value = 1, spread = -1, concealment = 1}
self.parts.wpn_fps_smg_hajk_b_medium.custom_stats = {optimal_range_mul = 0.95}
self.parts.wpn_fps_smg_hajk_b_short.stats = {value = 1, spread = -2, concealment = 1}
self.parts.wpn_fps_smg_hajk_b_short.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_sho_m590_b_long.stats = {value = 1, extra_ammo = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_sho_coach_b_short.stats = {value = 1, spread = -8, concealment = 9}
self.parts.wpn_fps_smg_sterling_b_long.stats = {value = 1, spread = 2, spread_moving = -2, recoil = 1, concealment = -2}
self.parts.wpn_fps_smg_sterling_b_long.custom_stats = {optimal_range_mul = 1.1428}
self.parts.wpn_fps_smg_sterling_b_short.stats = {value = 1, spread = -1, spread_moving = -1, concealment = 2}
self.parts.wpn_fps_smg_sterling_b_short.custom_stats = {optimal_range_mul = 0.8571}
self.parts.wpn_fps_smg_polymer_barrel_precision.stats = {value = 1, damage = 3, spread = 2, spread_moving = -3, recoil = -1, concealment = -2}
self.parts.wpn_fps_smg_polymer_barrel_precision.custom_stats = {optimal_range_mul = 1.3}
self.parts.wpn_fps_smg_p90_b_long.stats = {value = 1, damage = 3, spread = 2, concealment = -2}
self.parts.wpn_fps_smg_p90_b_civilian.stats = {value = 1, damage = 3, spread = 2, recoil = -1, concealment = -2}
self.parts.wpn_fps_smg_p90_b_civilian.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_smg_schakal_b_civil.stats = {value = 1, damage = 3, spread = 2, spread_moving = -3, concealment = -2}
self.parts.wpn_fps_smg_schakal_b_civil.custom_stats = {optimal_range_mul = 1.1428}
self.parts.wpn_fps_smg_pm9_b_short.stats = {value = 1, spread = -1, spread_moving = -1, concealment = 1}
self.parts.wpn_fps_smg_pm9_b_short.custom_stats = {optimal_range_mul = 1.1428}
self.parts.wpn_fps_smg_vityaz_b_long.stats = {value = 1, damage = 3, spread = 2, spread_moving = -3, concealment = -2}
self.parts.wpn_fps_smg_vityaz_b_long.custom_stats = {optimal_range_mul = 1.1428}
self.parts.wpn_fps_smg_thompson_barrel_short.stats = {value = 1, spread = -1, concealment = 2}
self.parts.wpn_fps_smg_thompson_barrel_short.custom_stats = {optimal_range_mul = 0.8571}
self.parts.wpn_fps_smg_thompson_barrel_long.stats = {value = 1, damage = 3,  spread = 2, spread_moving = -3, concealment = -2}
self.parts.wpn_fps_smg_thompson_barrel_long.custom_stats = {optimal_range_mul = 1.1428}
self.parts.wpn_fps_smg_m45_b_green.stats = {value = 1}
self.parts.wpn_fps_smg_m45_b_small.stats = {value = 1, spread = -1, concealment = 1}
self.parts.wpn_fps_smg_m45_b_small.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_sho_saiga_b_short.stats = {value = 1, spread = -4, recoil = -2, concealment = 2}
self.parts.wpn_fps_sho_aa12_barrel_silenced.stats = {value = 1, spread = 0, damage = -5, recoil = -2, concealment = -2, suppression = 8}
self.parts.wpn_fps_sho_ksg_b_short.stats = {value = 1, spread = -2, recoil = -2, extra_ammo = -2, concealment = 3}
self.parts.wpn_fps_sho_ben_b_short.stats = {value = 1, spread = -2, recoil = -2, extra_ammo = -1, concealment = 3}
self.parts.wpn_fps_shot_huntsman_b_short.stats = {value = 1, spread = -7, recoil = -2, concealment = 10}
self.parts.wpn_fps_shot_m1897_b_long.stats = {spread = 3, recoil = 1, value = 1, concealment = -2}
self.parts.wpn_fps_sho_boot_b_long.stats = {value = 1, spread = 2, recoil = -2, extra_ammo = 1, concealment = -3} 
self.parts.wpn_fps_sho_boot_b_short.stats = {value = 1, spread = -2, recoil = -2, extra_ammo = -1, concealment = 3}
self.parts.wpn_fps_ass_tecci_b_long.stats = {value = 1, spread = 2, spread_moving = -2, recoil = 1, concealment = -3}
self.parts.wpn_fps_ass_tecci_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_upg_ak_b_draco.stats = {value = 1, spread = -2, recoil = -1, concealment = 3, damage = 0} --AK Slavic Dragon
self.parts.wpn_fps_upg_ak_b_ak105.stats = {value = 1, spread = -1, recoil = 1, concealment = 1, damage = 0} --Modern Barrel
self.parts.wpn_fps_upg_ass_ak_b_zastava.stats = {value = 1, damage = 8, spread = 2, recoil = -3, concealment = -4} --AK DMR
self.parts.wpn_fps_upg_ass_ak_b_zastava.custom_stats = {optimal_range_mul = 1.2}
self.parts.wpn_fps_ass_s552_b_long.stats = {value = 1, spread = 1, spread_moving = -2, concealment = -1}
self.parts.wpn_fps_ass_s552_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_ass_g3_b_short.stats = {value = 1, recoil = 1, spread = -1, total_ammo_mod = 0, concealment = 1}
self.parts.wpn_fps_ass_g3_b_sniper.stats = { value = 1, damage = 10, recoil = -1, spread = 1, extra_ammo = -5, total_ammo_mod = 0, concealment = -2, reload = 1}
self.parts.wpn_fps_ass_g3_b_sniper.custom_stats = {optimal_range_mul = 1.06667}
self.parts.wpn_fps_upg_ass_m4_b_beowulf.stats = { value = 1, damage = 6, spread = 2, concealment = -3} --AR DMR
self.parts.wpn_fps_upg_ass_m4_b_beowulf.custom_stats = {optimal_range_mul = 1.2}
self.parts.wpn_fps_m4_uupg_b_short.stats = { value = 1, spread = -1, concealment = 1 }
self.parts.wpn_fps_m4_uupg_b_short.custom_stats = {optimal_range_mul = 0.92}
self.parts.wpn_fps_m4_uupg_b_long.stats = { value = 1, damage = 3, spread = 2, spread_moving = 2, concealment = -2 }
self.parts.wpn_fps_m4_uupg_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_ass_ak5_b_short.stats = { value = 1, damage = -3, spread = -1, spread_moving = 1, concealment = 1}
self.parts.wpn_fps_ass_ak5_b_short.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_ass_corgi_b_short.stats = {value = 1, damage = -3, spread = -2, spread_moving = 2, recoil = 1, concealment = 1}
self.parts.wpn_fps_ass_corgi_b_short.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_aug_b_short.stats = { value = 1, spread = -1, recoil = 1, concealment = 1}
self.parts.wpn_fps_aug_b_short.custom_stats = {optimal_range_mul = 0.92}
self.parts.wpn_fps_aug_b_long.stats = { value = 1, damage = 3, spread = 1, spread_moving = -2, concealment = -1}
self.parts.wpn_fps_aug_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_ass_scar_b_short.stats = {value = 1, spread = -1, concealment = 3}
self.parts.wpn_fps_ass_l85a2_b_short.stats = {value = 1, spread = -1, concealment = 1}
self.parts.wpn_fps_ass_l85a2_b_short.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_ass_l85a2_b_long.stats = {value = 1, damage = 3, spread = 1, concealment = -1} 
self.parts.wpn_fps_ass_l85a2_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_ass_ching_b_short.stats = {value = 1, spread = -2, recoil = -2, concealment = 2}
self.parts.wpn_fps_ass_famas_b_long.stats = {value = 1, damage = 3, spread = 1, concealment = -1}
self.parts.wpn_fps_ass_famas_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_ass_famas_b_short.stats = { value = 1,spread = -1, concealment = 1}
self.parts.wpn_fps_ass_famas_b_short.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_ass_famas_b_sniper.stats = {value = 1, damage = 5, recoil = -1, spread = 2, concealment = -2}
self.parts.wpn_fps_ass_famas_b_sniper.custom_stats = {optimal_range_mul = 1.2}
self.parts.wpn_fps_ass_vhs_b_sniper.stats = {value = 1, damage = 5, recoil = -1, spread = 2, concealment = -2}
self.parts.wpn_fps_ass_vhs_b_sniper.custom_stats = {optimal_range_mul = 1.2}
self.parts.wpn_fps_ass_ching_b_short.stats = {value = 1, spread = -2, recoil = -1, concealment = 1}
self.parts.wpn_fps_ass_ching_b_short.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_ass_vhs_b_short.stats = {value = 1, spread = -1, concealment = 1} 
self.parts.wpn_fps_ass_vhs_b_short.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_ass_asval_b_proto.stats = {value = 1, recoil = -1, spread = -2, concealment = 4, suppression = 10}

--MAGAZINES

self.parts.wpn_fps_fla_system_m_high.stats = {value = 1, total_ammo_mod = -10, damage = 5}
self.parts.wpn_fps_fla_system_m_low.stats = {value = 1, total_ammo_mod = 10, damage = -5}
self.parts.wpn_fps_fla_mk2_mag_welldone.stats = {value = 1, total_ammo_mod = -10, damage = 5}
self.parts.wpn_fps_fla_mk2_mag_rare.stats = {value = 1, total_ammo_mod = 10, damage = -5}

self.parts.wpn_fps_smg_sterling_m_long.stats = {value = 1, concealment = -2, extra_ammo = 5}
self.parts.wpn_fps_pis_g26_m_contour.stats = {value = 1}
self.parts.wpn_fps_ass_fal_m_01.stats = {value = 1, concealment = -2, extra_ammo = 5, reload = -2} --Extended
self.parts.wpn_fps_smg_shepheard_mag_extended.stats = {value = 1, concealment = -2, extra_ammo = 5}
self.parts.wpn_fps_pis_p226_m_extended.stats = {value = 1, extra_ammo = 4, concealment = -2 }
self.parts.wpn_fps_pis_1911_m_extended.stats = {value = 1, extra_ammo = 2, concealment = -1}
self.parts.wpn_fps_pis_lemming_m_ext.stats = {value = 1, extra_ammo = 5, concealment = -2}
self.parts.wpn_fps_smg_scorpion_m_extended.stats = {value = 1, extra_ammo = 0, concealment = -2, reload = 3}
self.parts.wpn_fps_pis_g18c_m_mag_33rnd.stats = {value = 1, extra_ammo = 8, concealment = -2}
self.parts.wpn_fps_sho_b_spas12_long.stats = { value = 1, extra_ammo = 1, total_ammo_mod = 0, recoil = 0, concealment = -1 }
self.parts.wpn_fps_shot_shorty_m_extended_short.stats = {value = 1, extra_ammo = 1, concealment = -1 }
self.parts.wpn_fps_shot_r870_body_rack.stats = { value = 1, extra_ammo = 0, total_ammo_mod = 2, recoil = 0, concealment = -1 }
self.parts.wpn_fps_smg_schakal_m_short.stats = {value = 1, extra_ammo = -5, concealment = 1}
self.parts.wpn_fps_smg_schakal_m_long.stats = {value = 1, extra_ammo = 5, concealment = -3}
self.parts.wpn_fps_smg_pm9_m_quick.stats = {value = 1, concealment = -1, reload = 2} --Speed Pull
self.parts.wpn_fps_m4_upg_m_quick.stats = {value = 1, concealment = 1, reload = 2} --Speed Pull
self.parts.wpn_fps_ass_g36_m_quick.stats = {value = 1, concealment = -1, reload = 2} --Speed Pull
self.parts.wpn_fps_ass_aug_m_quick.stats = {value = 1, concealment = -1, reload = 2} --Speed Pull
self.parts.wpn_fps_smg_sr2_m_quick.stats = {value = 1, concealment = -1, reload = 2} --Speed Pull
self.parts.wpn_fps_smg_p90_m_strap.stats = {value = 1, concealment = -1, reload = 2} --Speed Pull
self.parts.wpn_fps_smg_mac10_m_quick.stats = {value = 1, extra_ammo = 5, concealment = -2, reload = 2} --Speed Pull
self.parts.wpn_fps_upg_ak_m_quick.stats = {value = 1, concealment = -1, reload = 2} --Speed Pull
self.parts.wpn_fps_upg_ak_m_uspalm.stats = {value = 1, concealment = 1}
self.parts.wpn_fps_upg_ak_m_quad.stats = { value = 1, extra_ammo = 15, total_ammo_mod = 0, concealment = -2, reload = -3} --Quadstacked
self.parts.wpn_fps_upg_m4_m_quad.stats = { value = 1, extra_ammo = 15, total_ammo_mod = 0, concealment = -2, reload = -3} --Quadstacked
self.parts.wpn_fps_upg_m4_m_drum.stats = { value = 1, extra_ammo = 30, total_ammo_mod = 0, concealment = -3}
self.parts.wpn_fps_m4_uupg_m_std.stats = { value = 1, extra_ammo = 5, total_ammo_mod = 0, spread = 0, recoil = 0, concealment = -1} --Milspec Mag
self.parts.wpn_fps_upg_m4_m_straight.stats = { value = 1, extra_ammo = -5, total_ammo_mod = 0, spread = 0, recoil = 0, concealment = 1} --20-Mag
self.parts.wpn_fps_upg_m4_m_pmag.stats = { value = 1, extra_ammo = 0, total_ammo_mod = 0, recoil = 0} --Tactical Mag
self.parts.wpn_fps_upg_m4_m_l5.stats = { value = 1, extra_ammo = 0, total_ammo_mod = 0, spread = 0, concealment = 1} --L5 Mag
self.parts.wpn_fps_ass_l85a2_m_emag.stats = { value = 1, extra_ammo = 0, total_ammo_mod = 0, recoil = 0} --Expert Mag
self.parts.wpn_fps_smg_sterling_m_short.stats = {value = 1, extra_ammo = -5, concealment = 1}
self.parts.wpn_fps_smg_mp5_m_straight.stats = { value = 1, spread = 0, recoil = 0}
self.parts.wpn_fps_smg_mp7_m_extended.stats = { value = 1, extra_ammo = 10, total_ammo_mod = 0, spread = 0, concealment = -3}
self.parts.wpn_fps_smg_mp9_m_extended.stats = { value = 1, extra_ammo = 5, total_ammo_mod = 0, spread = 0, concealment = -2}
self.parts.wpn_fps_smg_tec9_m_extended.stats = {value = 1, extra_ammo = 6, concealment = -2}
self.parts.wpn_fps_smg_mac10_m_extended.stats = { value = 1, extra_ammo = 5, total_ammo_mod = 0, spread = 0, concealment = -2}
self.parts.wpn_fps_smg_fmg9_m_speed.stats = {value = 1, reload = 2}

--HANDGUARDS 

self.parts.wpn_fps_sho_basset_fg_short.stats = {value = 1, recoil = -1, spread = -2, concealment = 3}
self.parts.wpn_fps_smg_thompson_foregrip_discrete.stats = {value = 1}
self.parts.wpn_fps_smg_mp5_fg_flash.stats = {value = 1, concealment = -1}
self.parts.wpn_fps_smg_mp5_fg_mp5a5.stats = {value = 1}
self.parts.wpn_fps_smg_mp5_fg_m5k.stats = {value = 1, recoil = -1, spread = -2, spread_moving = -3, concealment = 3} --Sehr Kurze
self.parts.wpn_fps_smg_mp5_fg_m5k.custom_stats = {optimal_range_mul = 0.8571}
self.parts.wpn_fps_snp_siltstone_fg_polymer.stats = {value = 1}
self.parts.wpn_fps_shot_r870_fg_wood.stats = {value = 1}
self.parts.wpn_fps_sho_saiga_fg_holy.stats = { value = 1, spread = 0, recoil = 1, concealment = 1 } --Hollow
self.parts.wpn_fps_ass_ak5_fg_ak5c.stats = { value = 1, recoil = 1} --Karbin Ceres
self.parts.wpn_fps_ass_ak5_fg_fnc.stats = { value = 1, concealment = 1} --Belgian Heat 
self.parts.wpn_fps_ass_galil_fg_fab.stats = { value = 1,recoil = 1}
self.parts.wpn_fps_ass_galil_fg_mar.stats = { value = 1, spread = -2, recoil = 1, concealment = 5 } --CQB 
self.parts.wpn_fps_ass_galil_fg_mar.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_ass_galil_fg_sar.stats = { value = 1,recoil = 1, concealment = 1 } --Light
self.parts.wpn_fps_ass_galil_fg_sniper.stats = { value = 1, damage = 10, spread = 1}
self.parts.wpn_fps_ass_galil_fg_sniper.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_upg_ak_fg_combo2.stats = { value = 1, spread = 0, recoil = 0, concealment = -1 } --Railed Wooden
self.parts.wpn_upg_ak_fg_combo3.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --The Tactical Russian
self.parts.wpn_fps_upg_ak_fg_tapco.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --Battleproven
self.parts.wpn_fps_upg_fg_midwest.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 } --Lightweight
self.parts.wpn_fps_upg_ak_fg_krebs.stats = { value = 1, spread = 0, recoil = 1, concealment = -1 } --Crabs
self.parts.wpn_fps_upg_ak_fg_trax.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --Keymod
self.parts.wpn_fps_ass_s552_fg_standard_green.stats = {value = 1}
self.parts.wpn_fps_ass_s552_fg_railed.stats = {value = 1}
self.parts.wpn_fps_ass_ching_fg_railed.stats = {value = 1, concealment = -1}
self.parts.wpn_fps_ass_l85a2_fg_short.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_upg_fg_jp.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --Competition Foregrip
self.parts.wpn_fps_upg_fg_smr.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --Gazelle
self.parts.wpn_fps_upg_ass_m4_fg_lvoa.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --OVAL
self.parts.wpn_fps_upg_ass_m4_fg_moe.stats = { value = 1, spread = 0, recoil = 1, concealment = -2 } --E.M.O. 
self.parts.wpn_fps_m4_uupg_fg_lr300.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 } --Aftermarket Special
self.parts.wpn_fps_aug_fg_a3.stats = { value = 1, spread = 0, damage = 0, recoil = 2, concealment = -2 }
self.parts.wpn_fps_smg_olympic_fg_railed.stats = { value = 1, spread = 0, recoil = -1, concealment = 1 } --Railed
self.parts.wpn_fps_upg_smg_olympic_fg_lr300.stats = { value = 1, spread = 0, recoil = 0, concealment = 1 } --Aftermarket Shorty
self.parts.wpn_fps_ass_sub2000_fg_gen2.stats = {value = 1, spread = 0, recoil = 1, concealment = 1} --Appalachian
self.parts.wpn_fps_ass_sub2000_fg_railed.stats = {value = 1, spread = 0, recoil = -1, concealment = 2} --Delabarre
self.parts.wpn_fps_m16_fg_railed.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 }
self.parts.wpn_fps_m16_fg_vietnam.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 }
self.parts.wpn_fps_upg_ass_m16_fg_stag.stats = { value = 1, spread = 1, recoil = 1, concealment = -1 }
self.parts.wpn_fps_ass_g36_fg_c.stats = { value = 1, spread = -1, concealment = 1 } --Compact 
self.parts.wpn_fps_ass_g36_fg_ksk.stats = { value = 1, recoil = 1, concealment = -1 } --Polizei 
self.parts.wpn_fps_upg_g36_fg_long.stats = { value = 1, damage = 3, spread = 2, recoil = -1, concealment = -3 } --Long
self.parts.wpn_fps_upg_g36_fg_long.custom_stats = {optimal_range_mul = 1.2}
self.parts.wpn_fps_ass_g3_fg_psg.stats = { value = 1, spread = 0, recoil = 1 } --Precision
self.parts.wpn_fps_ass_g3_fg_retro.stats = { value = 1, spread = -1, recoil = 0, concealment = 2 } --Wooden
self.parts.wpn_fps_ass_g3_fg_retro_plastic.stats = { value = 1, spread = -1, recoil = 0, concealment = 2 }
self.parts.wpn_fps_ass_g3_fg_railed.stats = { value = 1, spread = 0, recoil = 1 } --Tactical
self.parts.wpn_fps_ass_fal_fg_01.stats = { value = 1, spread = -3, recoil = -1, concealment = 5 } --CQB
self.parts.wpn_fps_ass_fal_fg_03.stats = { value = 1, spread = 0, recoil = 1, concealment = 1 } --Retro
self.parts.wpn_fps_ass_fal_fg_04.stats = { value = 1, spread = 1, recoil = 1, concealment = -1 } --Marksman
self.parts.wpn_fps_ass_fal_fg_wood.stats = { value = 1, spread = 0, recoil = 0, concealment = 0 } --Wooden 
self.parts.wpn_fps_lmg_rpk_fg_standard.stats = { value = 1, recoil = 1, concealment = 1 }
self.parts.wpn_fps_lmg_m60_fg_keymod.stats = {value = 1}
self.parts.wpn_fps_lmg_m60_fg_tactical.stats = {value = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_lmg_m249_fg_mk46.stats = { value = 1} 
self.parts.wpn_fps_lmg_hk21_fg_short.stats = { value = 1, spread = -3, recoil = -2, concealment = 3 }

--NOZZLES 

self.parts.wpn_fps_fla_system_b_wtf.stats = {value = 1, concealment = 1}

self.parts.wpn_fps_pis_lemming_b_nitride.stats = {value = 1}
self.parts.wpn_fps_upg_pis_ns_flash.stats = {value = 1, recoil = 2, spread = -1, concealment = -1} --Flash Hider
self.parts.wpn_fps_upg_ns_pis_typhoon.stats = {value = 1, recoil = 1, concealment = -1} --Hurricane Compensator
self.parts.wpn_fps_upg_ns_pis_meatgrinder.stats = {value = 1, recoil = 1, concealment = -2, suppression = -5} --Facepunch
self.parts.wpn_fps_upg_ns_pis_ipsccomp.stats = {value = 1, spread = 1, recoil = 1, concealment = -2}
self.parts.wpn_fps_pis_1911_co_2.stats = {value = 1, recoil = 2, concealment = -1} --Aggressor
self.parts.wpn_fps_pis_1911_co_2.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_1911_co_1.stats = {value = 1, recoil = 2, concealment = -1} --Punisher
self.parts.wpn_fps_pis_1911_co_1.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_g18c_co_1.stats = {value = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_pis_g18c_co_comp_2.stats = {value = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_pis_p226_co_comp_1.stats = {value = 1, recoil = 2, concealment = -1} --Ventilated .40
self.parts.wpn_fps_pis_p226_co_comp_1.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_p226_co_comp_2.stats = {value = 1, recoil = 2, concealment = -1} --Velocity .40
self.parts.wpn_fps_pis_p226_co_comp_2.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_usp_co_comp_1.stats = {value = 1, recoil = 2, concealment = -1} --Ventilated .45
self.parts.wpn_fps_pis_usp_co_comp_1.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_usp_co_comp_2.stats = {value = 1, recoil = 2, concealment = -1} --Velocity .45
self.parts.wpn_fps_pis_usp_co_comp_2.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_deagle_co_long.stats = {value = 1, recoil = 1, concealment = -2} --OVERKILL
self.parts.wpn_fps_pis_deagle_co_short.stats = {value = 1, recoil = 2, concealment = -1} --La Femme
self.parts.wpn_fps_pis_deagle_co_short.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_beretta_co_co1.stats = {value = 1, spread = 1, recoil = 1, concealment = -1} 
self.parts.wpn_fps_pis_beretta_co_co2.stats = { value = 1, spread = 1, recoil = 1, concealment = -2 } --The Competitor

self.parts.wpn_fps_snp_siltstone_ns_variation_b.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_snp_siltstone_ns_variation_b.custom_stats = {optimal_range_mul = 0.9}

self.parts.wpn_fps_upg_ns_duck.stats = {value = 1, recoil = 1, concealment = -1, spread_multi = {2, 0.5}}
self.parts.wpn_fps_upg_shot_ns_king.stats = {value = 1, spread = 1, recoil = 2, suppression = -3, concealment = -1}
self.parts.wpn_fps_upg_ns_shot_shark.stats = {value = 1, spread = 2, recoil = 1, suppression = -2, concealment = -1}

self.parts.wpn_fps_smg_baka_b_comp.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_smg_baka_b_comp.custom_stats = {optimal_range_mul = 0.95}
self.parts.wpn_fps_upg_ns_ass_smg_v6.stats = {value = 1, recoil = 2, concealment = -1, suppression = -2} --Marmon
self.parts.wpn_fps_upg_ns_ass_smg_v6.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_upg_ns_ass_smg_stubby.stats = { value = 1, recoil = 1, concealment = -1, suppression = -2 } --Stubby
self.parts.wpn_fps_upg_ns_ass_smg_tank.stats = { value = 1, recoil = 2, concealment = -1, suppression = -2 } --The Tank
self.parts.wpn_fps_upg_ns_ass_smg_tank.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_upg_ns_ass_smg_firepig.stats = { value = 1, damage = 5, spread = -1, recoil = -1, concealment = -1, suppression = -2 } --Fire Breather Nozzle
self.parts.wpn_fps_upg_ass_ns_jprifles.stats = { value = 1, recoil = 2, concealment = -1, suppression = -2 } --Competitor's Compensator
self.parts.wpn_fps_upg_ass_ns_jprifles.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_upg_ass_ns_linear.stats = { value = 1, damage = 5, spread = -1, recoil = -1, concealment = -2, suppression = -4 } --Funnel of Fun Nozzle
self.parts.wpn_fps_upg_ass_ns_surefire.stats = { value = 1, recoil = 2, concealment = -1, suppression = -2 } --Tactical Compensator
self.parts.wpn_fps_upg_ass_ns_surefire.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_upg_ass_ns_battle.stats = { value = 1, recoil = 1, concealment = -1, suppression = -2 } --Ported Compensator
self.parts.wpn_fps_ass_tecci_ns_special.stats = { value = 1, recoil = 2, concealment = -2, suppression = -2 }
self.parts.wpn_fps_ass_tecci_ns_special.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_pis_c96_nozzle.stats = {value = 1, recoil = 2, concealment = -1, suppression = -2 }
self.parts.wpn_fps_pis_c96_nozzle.custom_stats = {optimal_range_mul = 0.9}

--SUPPRESSORS 

self.parts.wpn_fps_upg_ns_pis_small.stats = {value = 1, damage = -5, concealment = -3, suppression = 8, alert_size = 12 } --Side doesn't matter
self.parts.wpn_fps_upg_ns_pis_small.custom_stats = {optimal_range_mul = 0.95}
self.parts.wpn_fps_smg_baka_b_smallsupp.stats = {value = 1, damage = -1, spread_moving = -1, concealment = -1, suppression = 10, alert_size = 12 } --Spring
self.parts.wpn_fps_smg_baka_b_smallsupp.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_baka_b_midsupp.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -2, suppression = 10, alert_size = 12 } --Maki
self.parts.wpn_fps_smg_baka_b_midsupp.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_baka_b_longsupp.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -3, suppression = 12, alert_size = 12 } --Futomaki
self.parts.wpn_fps_smg_baka_b_longsupp.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_upg_ns_ass_smg_large.stats = {value = 1, damage = -5, concealment = -3, suppression = 12, alert_size = 12 } --The Bigger the Better
self.parts.wpn_fps_upg_ns_ass_smg_large.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_smg_mp5_fg_mp5sd.stats = {value = 1, damage = -3, concealment = -1, suppression = 10, alert_size = 12} --The Ninja
self.parts.wpn_fps_smg_mp5_fg_mp5sd.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_pis_medium_slim.stats = {value = 1, damage = -3, concealment = -2, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_upg_ns_pis_medium_slim.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_pis_medium.stats = {value = 1, damage = -3, concealment = -2, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_upg_ns_pis_medium.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_pis_medium_gem.stats = {value = 1, damage = -3, concealment = -2, spread_moving = -1, suppression = 10, alert_size = 12 }  --Roctec
self.parts.wpn_fps_upg_ns_pis_medium_gem.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_pis_large.stats = {value = 1, damage = -5, concealment = -3, spread_moving = -1, suppression = 10, alert_size = 12 } --Monolith
self.parts.wpn_fps_upg_ns_pis_large.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_pis_jungle.stats = {value = 1, damage = -5, concealment = -3, spread_moving = -1, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_upg_ns_pis_jungle.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_pis_large_kac.stats = {value = 1, damage = -5, concealment = -3, spread_moving = -1, suppression = 10, alert_size = 12 } --Champion's
self.parts.wpn_fps_upg_ns_pis_large_kac.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_ass_smg_medium.stats = {value = 1, damage = -3, concealment = -2, spread_moving = -1, suppression = 10, alert_size = 12 } --Medium
self.parts.wpn_fps_upg_ns_ass_smg_medium.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_ass_smg_small.stats = {value = 1, damage = -1, spread = -1, concealment = -1, suppression = 8, alert_size = 12 } --Low Profile
self.parts.wpn_fps_upg_ns_ass_smg_small.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_smg_uzi_b_suppressed.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -2, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_smg_uzi_b_suppressed.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_sterling_b_suppressed.stats = {value = 1, damage = -3,  concealment = -2, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_smg_sterling_b_suppressed.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_sterling_b_e11.stats = {value = 1, damage = -3, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_smg_sterling_b_e11.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_polymer_ns_silencer.stats = {value = 1, damage = -3, concealment = -2, spread_moving = -1, suppression = 12, alert_size = 12 } 
self.parts.wpn_fps_smg_polymer_ns_silencer.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_p90_b_ninja.stats = {value = 1, damage = -3, concealment = -3, spread_moving = -1, suppression = 12, alert_size = 12 } 
self.parts.wpn_fps_smg_p90_b_ninja.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_smg_sr2_ns_silencer.stats = {value = 1, damage = -3, concealment = -2, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_smg_sr2_ns_silencer.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_schakal_ns_silencer.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -2, suppression = 10, alert_size = 12 } 
self.parts.wpn_fps_smg_schakal_ns_silencer.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_smg_mp9_b_suppressed.stats = {value = 1, damage = -3, concealment = -3, spread_moving = -1, suppression = 12, alert_size = 12 }
self.parts.wpn_fps_smg_mp9_b_suppressed.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_smg_scorpion_b_suppressed.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -3, suppression = 12, alert_size = 12 }
self.parts.wpn_fps_smg_scorpion_b_suppressed.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_smg_mp5_b_mp5sd.stats = {value = 1, damage = -1, spread = -1, concealment = -1, suppression = 8, alert_size = 12 }
self.parts.wpn_fps_smg_mp5_b_mp5sd.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_smg_vityaz_b_supressed.stats = {value = 1, damage = -3, spread = -1, spread_moving = -1, concealment = -1, suppression = 8, alert_size = 12 }
self.parts.wpn_fps_smg_vityaz_b_supressed.custom_stats = {optimal_range_mul = 0.9}
self.parts.wpn_fps_smg_cobray_ns_silencer.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -3, suppression = 12, alert_size = 12 }
self.parts.wpn_fps_smg_cobray_ns_silencer.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_smg_mp7_b_suppressed.stats = {value = 1, damage = -3, spread_moving = -1, concealment = -2, suppression = 10, alert_size = 12 }
self.parts.wpn_fps_smg_mp7_b_suppressed.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_upg_ns_ass_pbs1.stats = {value = 1, damage = -5, concealment = -3, suppression = 12, alert_size = 12 } 
self.parts.wpn_fps_upg_ns_ass_pbs1.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_ass_famas_b_suppressed.stats = { value = 1, damage = -5, concealment = -3, suppression = 10, alert_size = 12} 
self.parts.wpn_fps_ass_famas_b_suppressed.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_ass_sub2000_fg_suppressed.stats = {value = 1, damage = -3, spread = -1, concealment = 3, suppression = 8, alert_size = 12 } --Tooth Fairy
self.parts.wpn_fps_ass_sub2000_fg_suppressed.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_ass_vhs_b_silenced.stats = { value = 1, damage = -3, concealment = -1, suppression = 10, alert_size = 12} 
self.parts.wpn_fps_ass_vhs_b_silenced.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_ass_groza_b_supressor.stats = {value = 1, damage = -3, concealment = -2, suppression = 10, alert_size = 12}
self.parts.wpn_fps_ass_groza_b_supressor.custom_stats = {optimal_range_mul = 0.85}

self.parts.wpn_fps_lmg_mg42_b_vg38.stats = {value = 1, damage = -20, recoil = 1, suppression = 11, alert_size = 12}
self.parts.wpn_fps_lmg_mg42_b_vg38.custom_stats = {optimal_range_mul = 0.85, rof_mult = 0.7083}

self.parts.wpn_fps_snp_m95_barrel_suppressed.stats = {value = 1, damage = -20, recoil = 3, concealment = -3, suppression = 10, alert_size = 12}
self.parts.wpn_fps_snp_m95_barrel_suppressed.custom_stats = {optimal_range_mul = 0.75}
self.parts.wpn_fps_snp_sbl_b_long.stats = {value = 1, extra_ammo = -1, spread = 3, recoil = 1, concealment = -2}
self.parts.wpn_fps_snp_sbl_b_short.stats = {value = 1, damage = -10, spread = -1, extra_ammo = -1, concealment = -2, suppression = 14, alert_size = 12}
self.parts.wpn_fps_snp_sbl_b_short.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_r700_b_medium.stats = {value = 1, damage = -5, spread = -2, recoil = 2, concealment = -4, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_r700_b_medium.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_snp_msr_ns_suppressor.stats = {value = 1, damage = -5, concealment = -2, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_msr_ns_suppressor.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_model70_ns_suppressor.stats = {value = 1, damage = -5, concealment = -2, suppression = 12, alert_size = 12 }
self.parts.wpn_fps_snp_model70_ns_suppressor.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_wa2000_b_suppressed.stats = {value = 1, damage = -5, concealment = -2, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_wa2000_b_suppressed.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_desertfox_b_silencer.stats = {value = 1, damage = -5, concealment = -2, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_desertfox_b_silencer.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_tti_ns_hex.stats = {value = 1, damage = -10, concealment = -2, suppression = 12, alert_size = 12 } --Contractor
self.parts.wpn_fps_snp_tti_ns_hex.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_r93_b_suppressed.stats = {value = 1, damage = -5, concealment = -3, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_r93_b_suppressed.custom_stats = {optimal_range_mul = 0.8}
self.parts.wpn_fps_snp_winchester_b_suppressed.stats = {value = 1, damage = -15, spread = -1, recoil = 2, concealment = -2, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_siltstone_b_silenced.stats = {value = 1, damage = -10, spread = -1, concealment = -2, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_siltstone_b_silenced.custom_stats = {optimal_range_mul = 0.85}
self.parts.wpn_fps_snp_mosin_b_sniper.stats = {value = 1, damage = -10, spread = -1, concealment = -2, suppression = 14, alert_size = 12 }
self.parts.wpn_fps_snp_mosin_b_sniper.custom_stats = {optimal_range_mul = 0.85}

--GRIPS 

self.parts.wpn_fps_pis_1911_g_engraved.has_description = true
self.parts.wpn_fps_pis_1911_g_engraved.stats = {value = 1}
self.parts.wpn_fps_pis_beretta_g_engraved.has_description = true
self.parts.wpn_fps_pis_beretta_g_engraved.stats = {value = 1}
self.parts.wpn_fps_pis_breech_g_custom.has_description = true
self.parts.wpn_fps_pis_breech_g_custom.stats = {value = 1}
self.parts.wpn_fps_pis_peacemaker_g_bling.has_description = true
self.parts.wpn_fps_pis_peacemaker_g_bling.stats = {value = 1}
self.parts.wpn_fps_pis_shrew_g_bling.has_description = true
self.parts.wpn_fps_pis_shrew_g_bling.stats = {value = 1}

self.parts.wpn_fps_smg_scorpion_g_wood.stats = {value = 1}
self.parts.wpn_fps_smg_scorpion_g_ergo.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_smg_thompson_grip_discrete.stats = {value = 1}
self.parts.wpn_fps_smg_m45_g_ergo.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_smg_m45_g_bling.stats = {value = 1}
self.parts.wpn_fps_smg_pm9_g_wood.stats = {value = 1}
self.parts.wpn_fps_pis_rsh12_g_wood.stats = {value = 1}
self.parts.wpn_fps_pis_stech_g_tactical.stats = {value = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_pis_holt_g_bling.stats = {value = 1}
self.parts.wpn_fps_pis_stech_g_luxury.stats = {value = 1}
self.parts.wpn_fps_pis_beer_g_lux.stats = {value = 1}
self.parts.wpn_fps_pis_beer_g_robo.stats = {value = 1}
self.parts.wpn_fps_pis_czech_g_luxury.stats = {value = 1}
self.parts.wpn_fps_pis_sparrow_g_cowboy.stats = {value = 1, concealment = -1}
self.parts.wpn_fps_pis_ppk_g_laser.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_pis_g26_g_laser.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_pis_g26_g_gripforce.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_pis_legacy_g_wood.stats = {value = 1}
self.parts.wpn_fps_pis_2006m_g_bling.stats = {value = 1}
self.parts.wpn_fps_pis_chinchilla_g_death.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_pis_chinchilla_g_black.stats = {value = 1} 
self.parts.wpn_fps_pis_1911_g_ergo.stats = {value = 1, recoil = 2, concealment = -1}
self.parts.wpn_fps_pis_1911_g_bling.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_pis_deagle_g_ergo.stats = {value = 1, recoil = 2, concealment = -1}
self.parts.wpn_fps_pis_deagle_g_bling.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_ass_s552_g_standard_green.stats = {value = 1}
self.parts.wpn_fps_ass_famas_g_retro.stats = {value = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_ass_famas_g_retro.custom_stats = {rof_mult = 1.2222}
self.parts.wpn_fps_upg_m4_g_sniper.stats = { value = 1, spread = 1, recoil = -1, concealment = -1 } --Pro Grip
self.parts.wpn_fps_upg_g_m4_surgeon.stats  = { value = 1, spread = 0, recoil = 0, concealment = 1 } --Titanium Skeleton Grip
self.parts.wpn_fps_upg_m4_g_hgrip.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 }
self.parts.wpn_fps_upg_m4_g_ergo.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 }
self.parts.wpn_fps_upg_ak_g_rk3.stats = { value = 1, spread = 0, recoil = 1, concealment = 1 } --AK Aluminum
self.parts.wpn_fps_upg_ak_g_hgrip.stats = { value = 1, spread = 0, recoil = 2, concealment = 0 } --AK Rubber
self.parts.wpn_fps_upg_ak_g_wgrip.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 } --AK Wood
self.parts.wpn_fps_upg_ak_g_pgrip.stats = { value = 1, spread = 0, recoil = 2, concealment = 0 } --AK Plastic
self.parts.wpn_fps_ass_g3_g_retro.stats = { value = 1, spread = 0, recoil = 1, concealment = 0 }
self.parts.wpn_fps_ass_g3_g_sniper.stats = { value = 1, spread = 1, recoil = -1, concealment = -1 }
self.parts.wpn_fps_ass_fal_g_01.stats = { value = 1, spread = 0, recoil = 1, concealment = 1 } 
self.parts.wpn_fps_snp_wa2000_g_light.stats = {value = 1, recoil = -1, concealment = 1}
self.parts.wpn_fps_snp_wa2000_g_stealth.stats = {value = 1}
self.parts.wpn_fps_snp_wa2000_g_walnut.stats = {value = 1}

--SLIDES

self.parts.wpn_fps_pis_p226_b_long.stats = {value = 1, spread = 1, concealment = -2}
self.parts.wpn_fps_pis_p226_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_pis_p226_b_equinox.stats = {value = 1}
self.parts.wpn_fps_pis_ppk_b_long.stats = {value = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_pis_1911_b_vented.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_pis_1911_b_long.stats = {value = 1, spread = 1, concealment = -1}
self.parts.wpn_fps_pis_1911_b_long.custom_stats = {optimal_range_mul = 1.1}
self.parts.wpn_fps_pis_hs2000_sl_long.stats = {value = 1, spread = 1}
self.parts.wpn_fps_pis_hs2000_sl_custom.stats = {value = 1, spread = -1, recoil = 1, concealment = 1}
self.parts.wpn_fps_pis_g26_b_custom.stats = {value = 1}
self.parts.wpn_fps_pis_beretta_sl_brigadier.stats = {value = 1}

--STOCKS 

self.parts.wpn_fps_sho_coach_s_short.stats = {value = 1, recoil = -8, concealment = 9}
self.parts.wpn_fps_smg_thompson_stock_discrete.stats = {value = 1}
self.parts.wpn_fps_snp_mosin_body_black.stats = {value = 1}
self.parts.wpn_fps_snp_siltstone_s_polymer.stats = {value = 1}
self.parts.wpn_fps_lmg_rpk_s_standard.stats = {value = 1}
self.parts.wpn_fps_upg_ak_s_solidstock.stats = {value = 1, spread = 0, recoil = 2, concealment = -2} --Classic Stock
self.parts.wpn_upg_ak_s_psl.stats = {value = 1, spread = 1, recoil = 1, concealment = -2} --Wooden Sniper
self.parts.wpn_upg_ak_s_folding_vanilla.stats = {value = 1, recoil = -1, concealment = 2}
self.parts.wpn_fps_ass_ak5_s_ak5c.stats = {value = 1, recoil = 1}  --Caesar
self.parts.wpn_fps_ass_ak5_s_ak5b.stats = {value = 1, spread = 1, concealment = -1} --Bertil
self.parts.wpn_fps_ass_asval_s_solid.stats = {value = 1, recoil = 3, spread = 0, concealment = -3}
self.parts.wpn_fps_ass_galil_s_wood.stats = {value = 1}
self.parts.wpn_fps_ass_galil_s_skeletal.stats = {value = 1, recoil = -1, concealment = 1}
self.parts.wpn_fps_ass_galil_s_fab.stats = {value = 1}
self.parts.wpn_fps_ass_galil_s_plastic.stats = {value = 1}
self.parts.wpn_fps_ass_galil_s_light.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_ass_galil_s_sniper.stats = {value = 1, spread = 1, recoil = 1, concealment = -1}
self.parts.wpn_fps_ass_ching_s_pouch.stats = {value = 1, total_ammo_mod = 4}
self.parts.wpn_fps_ass_scar_s_sniper.stats = { value = 1, spread = 1, recoil = 1, concealment = -1 }
self.parts.wpn_fps_ass_g36_s_kv.stats = {value = 1, recoil = 1} --Solid Stock
self.parts.wpn_fps_ass_g36_s_sl8.stats = {value = 1, spread = 1, recoil = 2, concealment = -3 }
self.parts.wpn_fps_snp_tti_s_vltor.stats = {value = 1, spread = 0, recoil = 2, concealment = -1 }  --Contractor Stock
self.parts.wpn_fps_upg_m4_s_standard.stats = {value = 1, spread = 0, recoil = 1, concealment = 1 } --Standard Stock
self.parts.wpn_fps_upg_m4_s_crane.stats = {value = 1, spread = 0, recoil = 1, concealment = 1 } --Wide Stock
self.parts.wpn_fps_upg_m4_s_mk46.stats = {value = 1, spread = 1, recoil = 1, concealment = 0 } --War-Torn Stock
self.parts.wpn_fps_upg_m4_s_ubr.stats = { value = 1, spread = 0, recoil = 2, concealment = -1 } --2 Piece Stock
self.parts.wpn_fps_upg_m4_s_pts.stats = { value = 1, spread = 0, recoil = 2, concealment = -1 } --Tactical Stock
self.parts.wpn_fps_m4_uupg_s_fold.stats = { value = 1, spread = 0, recoil = -1, concealment = 3 } --Folding Stock
self.parts.wpn_fps_ass_fal_s_01.stats = { value = 1, spread = 0, recoil = -1, concealment = 3 } --CQB 
self.parts.wpn_fps_ass_fal_s_wood.stats = { value = 1, spread = 0, recoil = 0, concealment = 0 } 
self.parts.wpn_fps_ass_fal_s_03.stats = { value = 1, spread = 1, recoil = 2, concealment = -2 } --Marksman
self.parts.wpn_fps_ass_g3_s_wood.stats = { value = 1, spread = 0, recoil = 0, concealment = 1 }
self.parts.wpn_fps_ass_g3_s_sniper.stats = { value = 1, spread = 1, recoil = 1, concealment = -1 }
self.parts.wpn_fps_smg_mp5_s_folding.stats = {value = 1, concealment = 1}
self.parts.wpn_fps_smg_mp5_s_adjust.stats = {value = 1, recoil = -1, concealment = 2}
self.parts.wpn_fps_smg_mp5_s_ring.stats = {value = 1, recoil = -4, concealment = 3}
self.parts.wpn_fps_ass_s552_s_standard_green.stats = {value = 1} 
self.parts.wpn_fps_sho_s_spas12_folded.stats = { value = 1, spread = 0, recoil = -2, concealment = 2 } 
self.parts.wpn_fps_sho_s_spas12_solid.stats = { value = 1, spread = 0, recoil = 2, concealment = -1 }
self.parts.wpn_fps_shot_b682_s_ammopouch.stats = { value = 1, total_ammo_mod = 2 }
self.parts.wpn_fps_shot_b682_s_short.stats = {value = 1, recoil = -4, concealment = 5}
self.parts.wpn_fps_shot_m1897_s_short.stats = {value = 1, spread = 0, recoil = -4, concealment = 2}
self.parts.wpn_fps_sho_ben_s_collapsed.stats = { value = 1, spread = 0, recoil = -1, concealment = 1 } --Collapsed
self.parts.wpn_fps_sho_ben_s_solid.stats = { value = 1, spread = 0, recoil = 2, concealment = -2 }
self.parts.wpn_fps_shot_r870_s_folding.stats = { value = 1, spread = 0, recoil = -3, concealment = 2 } --Muldon
self.parts.wpn_fps_shot_r870_s_solid_big.stats = { value = 1, spread = 0, recoil = 0, concealment = -1 } -- Govt. Issue Tactical
self.parts.wpn_fps_shot_r870_s_nostock.stats = { value = 1, spread = 0, recoil = -4, concealment = 3 }
self.parts.wpn_fps_shot_r870_s_nostock_big.stats = { value = 1, spread = 0, recoil = -3, concealment = 2 } 
self.parts.wpn_fps_shot_huntsman_s_short.stats = { value = 1, spread = 0, recoil = -5, concealment = 10 }
self.parts.wpn_fps_sho_boot_s_long.stats = {value = 1, recoil = 4, concealment = -3}
self.parts.wpn_fps_lmg_par_s_plastic.stats = {value = 1} 
self.parts.wpn_fps_snp_r700_s_military.stats  = {value = 1, total_ammo_mod = 1, recoil = 1}
self.parts.wpn_fps_snp_r700_s_tactical.stats  = {value = 1, recoil = 1}
self.parts.wpn_fps_smg_shepheard_s_no.stats = {value = 1, recoil = -4, concealment = 2}
self.parts.wpn_fps_smg_erma_s_folded.stats = {value = 1, recoil = -2, concealment = 2}
self.parts.wpn_fps_smg_thompson_stock_nostock.stats = {value = 1, recoil = -4, concealment = 3}
self.parts.wpn_fps_smg_schakal_s_folded.stats = {value = 1, recoil = -2, concealment = 2}
self.parts.wpn_fps_smg_vityaz_s_short.stats = {value = 1, recoil = -2, concealment = 2}
self.parts.wpn_fps_smg_pm9_s_tactical.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_sr2_s_unfolded.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_sterling_s_folded.stats = {value = 1, recoil = -2, concealment = 2}
self.parts.wpn_fps_smg_sterling_s_nostock.stats = {value = 1, recoil = -2, concealment = 3}
self.parts.wpn_fps_smg_sterling_s_solid.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_m45_s_folded.stats = {value = 1, spread = -2, concealment = 2}
self.parts.wpn_fps_smg_uzi_s_leather.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_uzi_s_solid.stats = {value = 1, recoil = 2, spread_moving = 1, concealment = -2}
self.parts.wpn_fps_smg_uzi_s_standard.stats = {value = 1, spread = -2, spread_moving = -2, recoil = -2, concealment = 2}
self.parts.wpn_fps_smg_baka_s_standard.stats = {value = 1, concealment = 1} --No Stock
self.parts.wpn_fps_smg_baka_s_unfolded.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_scorpion_s_nostock.stats = {value = 1, concealment = 1}
self.parts.wpn_fps_smg_scorpion_s_unfolded.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_mp9_s_skel.stats = {value = 1, recoil = 2, concealment = -2}
self.parts.wpn_fps_smg_mac10_s_skel.stats = {value = 1, recoil = 2, spread_moving = 1}
self.parts.wpn_fps_smg_mp7_s_long.stats = {value = 1, recoil = 2, spread_moving = 1, concealment = -1}
self.parts.wpn_fps_smg_fmg9_stock_padded.stats = {value = 1, recoil = 1}

--UPPERS
self.parts.wpn_fps_pis_rage_body_smooth.stats = {value = 1}
self.parts.wpn_fps_ass_s552_body_standard_black.stats = { value = 1, concealment = 0 } --Heat Treated
self.parts.wpn_fps_m4_upper_reciever_edge.stats = {value = 1} --Exotique

self.parts.wpn_fps_upg_ass_m4_upper_reciever_ballos.stats = {value = 1} --LW Upper  

self.parts.wpn_fps_upg_ass_m4_upper_reciever_core.stats = {value = 1} --THRUST

--LOWERS
self.parts.wpn_fps_upg_ass_m4_lower_reciever_core.stats = {value = 1} --THRUST

--BODY 
self.parts.wpn_fps_smg_mac10_body_modern.stats = {value = 1, recoil = 1}
self.parts.wpn_fps_ass_corgi_body_lower_strap.stats = {value = 1}
self.parts.wpn_fps_smg_p90_body_boxy.stats = {value = 1, concealment = -2}
self.parts.wpn_fps_smg_cobray_body_upper_jacket.stats = {value = 1}
self.parts.wpn_fps_sho_m590_body_rail.stats = {value = 1, recoil = 1, concealment = -2}
self.parts.wpn_fps_ass_m14_body_ruger.stats = {concealment = 16, spread = -1, value = 1, recoil = -3}
self.parts.wpn_fps_ass_shak12_body_vks.stats = {value = 1, recoil = -2, spread = 2}
self.parts.wpn_fps_ass_shak12_body_vks.perks = {"fire_mode_single"}
self.parts.wpn_fps_smg_m45_body_green.stats = {value = 1}
self.parts.wpn_fps_pis_sparrow_body_941.stats = {value = 1, concealment = -1}
self.parts.wpn_fps_snp_r93_body_wood.stats = {value = 1, concealment = -1}
self.parts.wpn_fps_snp_msr_body_msr.stats = {value = 1, damage = 0, recoil = 2, concealment = 3} 
self.parts.wpn_fps_sho_boot_body_exotic.stats = {value = 1}
self.parts.wpn_fps_ass_m14_body_jae.stats = {value = 1, recoil = 2, concealment = 1}
self.parts.wpn_fps_ass_m14_body_ebr.stats = {value = 1, recoil = 2, concealment = 1}
self.parts.wpn_fps_pis_g26_body_custom.stats = {value = 1}
self.parts.wpn_fps_aug_body_f90.stats = {value = 1, concealment = -1} 
self.parts.wpn_fps_sho_ultima_body_rack.stats = {value = 1, total_ammo_mod = 2, concealment = -1}



------------------------------------------------------------OVERRIDE SHIT

-----MINI-----
self.wpn_fps_sho_basset.override = self.wpn_fps_sho_basset.override or {}
self.wpn_fps_sho_basset.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 2},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_x_basset.override = self.wpn_fps_sho_x_basset.override or {}
self.wpn_fps_sho_x_basset.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 4},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_spas12.override = self.wpn_fps_sho_spas12.override or {}
self.wpn_fps_sho_spas12.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 1},
custom_stats = {rays = 12} 
}

self.wpn_fps_shot_saiga.override = self.wpn_fps_shot_saiga.override or {}
self.wpn_fps_shot_saiga.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 1},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_aa12.override = self.wpn_fps_sho_aa12.override or {}
self.wpn_fps_sho_aa12.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_x_rota.override = self.wpn_fps_sho_x_rota.override or {}
self.wpn_fps_sho_x_rota.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_rota.override = self.wpn_fps_sho_rota.override or {}
self.wpn_fps_sho_rota.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_striker.override = self.wpn_fps_sho_striker.override or {}
self.wpn_fps_sho_striker.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_boot.override = self.wpn_fps_sho_boot.override or {}
self.wpn_fps_sho_boot.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 1},
custom_stats = {rays = 12} 
}

self.wpn_fps_shot_serbu.override = self.wpn_fps_shot_serbu.override or {}
self.wpn_fps_shot_serbu.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 1},
custom_stats = {rays = 12} 
}

self.wpn_fps_shot_r870.override = self.wpn_fps_shot_r870.override or {}
self.wpn_fps_shot_r870.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 1},
custom_stats = {rays = 12} 
}

self.wpn_fps_shot_m37.override = self.wpn_fps_shot_m37.override or {}
self.wpn_fps_shot_m37.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 1},
custom_stats = {rays = 12} 
}

self.wpn_fps_sho_ksg.override = self.wpn_fps_sho_ksg.override or {}
self.wpn_fps_sho_ksg.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5, extra_ammo = 2},
custom_stats = {rays = 12} 
}

self.wpn_fps_pis_x_judge.override = self.wpn_fps_pis_x_judge.override or {}
self.wpn_fps_pis_x_judge.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_pis_judge.override = self.wpn_fps_pis_judge.override or {}
self.wpn_fps_pis_judge.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_shot_b682.override = self.wpn_fps_shot_b682.override or {}
self.wpn_fps_shot_b682.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}

self.wpn_fps_shot_huntsman.override = self.wpn_fps_shot_huntsman.override or {}
self.wpn_fps_shot_huntsman.override.wpn_fps_upg_mini = {
stats = {damage = -10, total_ammo_mod = 5},
custom_stats = {rays = 12} 
}
---------------


self.wpn_fps_snp_desertfox.override = self.wpn_fps_snp_desertfox.override or {}
self.wpn_fps_snp_desertfox.override.wpn_fps_upg_338 = {
stats = {value = 1, damage = 125, spread = 1, recoil = -4, total_ammo_mod = -8, extra_ammo = -1}
}
self.wpn_fps_snp_r700.override = self.wpn_fps_snp_r700.override or {}
self.wpn_fps_snp_r700.override.wpn_fps_upg_338 = {
stats = {value = 1, damage = 125, spread = 1, recoil = -4, total_ammo_mod = -8, extra_ammo = -1}
}

self.wpn_fps_x_1911.override = self.wpn_fps_x_1911.override or {}
self.wpn_fps_x_1911.override.wpn_fps_pis_1911_m_extended = {
stats = {value = 1, extra_ammo = 4, concealment = -1}
}

self.wpn_fps_smg_x_akmsu.override = self.wpn_fps_smg_x_akmsu.override or {}
self.wpn_fps_smg_x_akmsu.override.wpn_fps_upg_ak_m_quad = {
stats = {value = 1, spread_moving = -2, concealment = -3, extra_ammo = 30, recoil = 1, spread = -1}
}
self.wpn_fps_smg_x_akmsu.override.wpn_fps_upg_grendel = {
stats = {value = 1, damage = 10, spread = 1, recoil = -3, extra_ammo = -4, total_ammo_mod = -2}
}

self.wpn_fps_smg_x_mp5.override = self.wpn_fps_smg_x_mp5.override or {}
self.wpn_fps_smg_x_mp5.override.wpn_fps_upg_10mm = {
stats = {value = 1, damage = 40, spread = 1, recoil = -3, extra_ammo = -5, total_ammo_mod = -7}
}

self.wpn_fps_pis_deagle.override = self.wpn_fps_pis_deagle.override or {}
self.wpn_fps_pis_deagle.override.wpn_fps_upg_44 = {
stats = {value = 1, damage = 65, recoil = -3, extra_ammo = -1, total_ammo_mod = -8}
}

self.wpn_fps_x_deagle.override = self.wpn_fps_x_deagle.override or {}
self.wpn_fps_x_deagle.override.wpn_fps_pis_deagle_m_extended = {
stats = {value = 1, concealment = -2, spread_moving = -2, extra_ammo = 6}
}
self.wpn_fps_x_deagle.override.wpn_fps_upg_50ae = {
stats = {value = 1, damage = 90, spread = 1, recoil = -5, extra_ammo = -2, total_ammo_mod = -10}
}
self.wpn_fps_x_deagle.override.wpn_fps_upg_44 = {
stats = {value = 1, damage = 65, recoil = -3, extra_ammo = -2, total_ammo_mod = -8}
}

self.wpn_fps_pis_g22c.override = self.wpn_fps_pis_g22c.override or {}
self.wpn_fps_pis_g22c.override.wpn_fps_pis_g18c_m_mag_33rnd = {
stats = {value = 1, extra_ammo = 6, concealment = -2}
}
self.wpn_fps_pis_x_g22c.override = self.wpn_fps_pis_x_g22c.override or {}
self.wpn_fps_pis_x_g22c.override.wpn_fps_pis_g18c_m_mag_33rnd = {
stats = {value = 1, extra_ammo = 12, concealment = -2}
}
self.wpn_fps_pis_x_g17.override = self.wpn_fps_pis_x_g17.override or {}
self.wpn_fps_pis_x_g17.override.wpn_fps_upg_9mm_to_45 = {
stats = {value = 1, damage = 35, recoil = -1, extra_ammo = -4, total_ammo_mod = -6}
}
self.wpn_fps_pis_x_g17.override.wpn_fps_upg_10mm = {
stats = {value = 1, damage = 20, spread = 1, recoil = -3, extra_ammo = -4, total_ammo_mod = -3}
}
self.wpn_fps_pis_x_g17.override.wpn_fps_pis_g18c_m_mag_33rnd = {
stats = {value = 1, extra_ammo = 16, concealment = -2}
}

self.wpn_fps_jowi.override = self.wpn_fps_jowi.override or {}
self.wpn_fps_jowi.override.wpn_fps_pis_g18c_m_mag_33rnd = {
stats = {value = 1, extra_ammo = 22, concealment = -2}
}
self.wpn_fps_jowi.override.wpn_fps_upg_10mm = {
stats = {value = 1, damage = 20, extra_ammo = -4, spread = 1, recoil = -3, total_ammo_mod = -3}
}
self.wpn_fps_jowi.override.wpn_fps_upg_9mm_to_45 = {
stats = {value = 1, damage = 35, extra_ammo = -2, recoil = -1, total_ammo_mod = -6}
}

self.wpn_fps_pis_g26.override = self.wpn_fps_pis_g26.override or {}
self.wpn_fps_pis_g26.override.wpn_fps_pis_g18c_m_mag_33rnd = {
stats = {value = 1, extra_ammo = 11, concealment = -2}
}
self.wpn_fps_pis_g26.override.wpn_fps_upg_10mm = {
stats = {value = 1, damage = 20, extra_ammo = -1, spread = 1, recoil = -3, total_ammo_mod = -3}
}
self.wpn_fps_pis_g26.override.wpn_fps_upg_9mm_to_45 = {
stats = {value = 1, damage = 35, extra_ammo = -2, recoil = -1, total_ammo_mod = -7}
}

self.wpn_fps_ass_amcar.override = self.wpn_fps_ass_amcar.override or {}
self.wpn_fps_ass_amcar.override.wpn_fps_m4_upg_m_quick = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, concealment = -1 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_upg_m4_m_pmag = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, reload = -3, concealment = -1 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_ass_l85a2_m_emag = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, reload = -3, concealment = -1 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_upg_m4_m_l5 = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, reload = -3, concealment = -1 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_m4_uupg_m_std = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, reload = -3, concealment = -1 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_upg_m4_m_drum = {
stats = { value = 1, extra_ammo = 40, total_ammo_mod = 0, concealment = -3}
}
self.wpn_fps_ass_amcar.override.wpn_fps_upg_m4_m_quad = {
stats = { value = 1, extra_ammo = 20, total_ammo_mod = 0, recoil = -1, concealment = -2, reload = -6}
}



self.wpn_fps_smg_olympic.override = self.wpn_fps_smg_olympic.override or {}
self.wpn_fps_smg_olympic.override.wpn_fps_m4_upg_m_quick = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, concealment = -1, reload = 0 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_m4_uupg_m_std = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, concealment = -1, reload = -2 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_upg_m4_m_pmag = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, concealment = -1, extra_ammo = 5, reload = -2 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_ass_l85a2_m_emag = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, concealment = -1, reload = -2 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_upg_m4_m_l5 = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, concealment = -1, extra_ammo = 5, reload = -2 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_upg_m4_m_drum = {
stats = { value = 1, extra_ammo = 40, total_ammo_mod = 0, concealment = -3}
}
self.wpn_fps_smg_olympic.override.wpn_fps_upg_m4_m_quad = {
stats = { value = 1, extra_ammo = 20, total_ammo_mod = 0, recoil = 0, concealment = -2, reload = -4}
}
self.wpn_fps_smg_olympic.override.wpn_fps_m4_uupg_fg_lr300 = {
stats = { value = 1, recoil = 1, concealment = -1}
} 


self.wpn_fps_ass_flint.override = self.wpn_fps_ass_flint.override or {}
self.wpn_fps_ass_flint.override.wpn_fps_upg_grendel = {
stats = {  value = 1, damage = 40, recoil = -3, spread = 1, extra_ammo = -2, total_ammo_mod = -8},
custom_stats = { ammo_pickup_min_mul = 0.7, ammo_pickup_max_mul = 0.7}
}
self.wpn_fps_ass_74.override = self.wpn_fps_ass_74.override or {}
self.wpn_fps_ass_74.override.wpn_fps_upg_grendel = {
stats = {  value = 1, damage = 40, recoil = -3, spread = 1, extra_ammo = -2, total_ammo_mod = -8},
custom_stats = { ammo_pickup_min_mul = 0.7, ammo_pickup_max_mul = 0.7}
}
--Fuck you overkill
self.wpn_fps_ass_74.override.wpn_fps_upg_ass_ak_b_zastava = {
stats = { value = 1, damage = 0, spread = 2, recoil = -3, concealment = -4}
}


self.wpn_fps_ass_m16.override = self.wpn_fps_ass_m16.override or {}
self.wpn_fps_ass_m16.override.wpn_fps_m4_uupg_m_std = {
stats = { value = 1, damage = 0, recoil = 0, spread = 0, concealment = -1, extra_ammo = 5}
}
self.wpn_fps_ass_m16.override.wpn_fps_m4_upg_m_quick = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, concealment = -1, reload = 1}
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_pmag = {
stats = { value = 1, damage = 0, recoil = 0, spread = 0, concealment = -1, extra_ammo = 5}
}
self.wpn_fps_ass_m16.override.wpn_fps_ass_l85a2_m_emag = {
stats = { value = 1, damage = 0, recoil = 0, spread = 0, extra_ammo = 5, concealment = -1}
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_l5 = {
stats = { value = 1, damage = 0, recoil = 0, spread = 0, concealment = -1, extra_ammo = 5}
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_drum = {
stats = { value = 1, extra_ammo = 40, total_ammo_mod = 0, concealment = -3, reload = -13}
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_quad = {
stats = { value = 1, extra_ammo = 20, total_ammo_mod = 0, recoil = -1, concealment = -2, reload = -3}
}
--Fuck you yet again, overkill
self.wpn_fps_ass_m16.override.wpn_fps_upg_ass_m4_b_beowulf = {
stats = { value = 1, damage = 0, spread = 2, recoil = -3, concealment = -4}
}
end )