if RequiredScript == "lib/tweak_data/weaponfactorytweakdata" then

	local old_wftd_init = WeaponFactoryTweakData.init
	function WeaponFactoryTweakData:init()
		old_wftd_init(self)
		self:stuff_general()
	end
		
	function WeaponFactoryTweakData:stuff_general()
	


table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_o_leupold"
})

table.list_append(self.wpn_fps_ass_m16.uses_parts, {
"wpn_fps_upg_o_leupold"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_o_mbus_rear"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_o_mbus_rear"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_uupg_b_long"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_uupg_b_sd"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_upper_reciever_round"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_ass_m4_upper_reciever_ballos"
})


table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_ass_m4_upper_reciever_core"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_o_45rds"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_o_45rds_v2"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_upper_reciever_round"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_ass_m4_upper_reciever_ballos"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_ass_m4_upper_reciever_core"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_uupg_draghandle_core"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_uupg_draghandle_ballos"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_m4_uupg_draghandle_core"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_ass_m4_lower_reciever_core"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_m4_m_l5"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_pis_usp_b_expert"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_snp_m95_bipod"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_snp_m95_lower_reciever"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_snp_m95_upper_reciever"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_upg_m4_g_mgrip"
})

table.list_append(self.wpn_fps_ass_m14.uses_parts, {
"wpn_fps_snp_r93_b_suppressed"
})

--Weapon Mod STATS (moved here as of 6/6/16)

--individual weapon's mods

self.wpn_fps_ass_asval.override = {}
self.wpn_fps_ass_asval.override.wpn_fps_upg_i_singlefire = {
stats = { value = 1, damage = 80, recoil = -3, spread = 6, extra_ammo = -5 }
}

self.wpn_fps_ass_galil.override = {}
self.wpn_fps_ass_galil.override.wpn_fps_m4_uupg_m_std = {
stats = { value = 1, damage = -20, recoil = 3, spread = -3, extra_ammo = 5 }
}




-- Scope Data

self.wpn_fps_ass_m14.override = {}
self.wpn_fps_ass_m14.override.wpn_fps_snp_mosin_iron_sight = {
a_obj = "a_o",
stats = { zoom = 1, value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 0 }
}
self.parts.wpn_fps_upg_o_leupold.stance_mod.wpn_fps_ass_m14 = { translation = Vector3(0.0, -40, -4.65) }

self.parts.wpn_fps_upg_o_m14_scopemount.override = {
	wpn_fps_upg_o_eotech_xps = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.05, -11, -5.15)
			}
		}
	},
	wpn_fps_upg_o_aimpoint = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.05, -11, -5.15) + Vector3(0, 2, 0)
			}
		}
	},
	wpn_fps_upg_o_specter = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.05, -11, -5.15) + Vector3(0, 4, 0)
			}
		}
	},		
	wpn_fps_extra_zoom = {
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.05, -11, -5.15) + Vector3(0, 0, -3.15)
			}
		}
	},
	wpn_fps_upg_o_acog = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.05, -11, -5.15) + Vector3(0, 6, 0)
			}
		}
	},
	wpn_fps_upg_o_mbus_rear = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.0525, -21.5, -5.915)
			}
		}
	},
	wpn_fps_upg_o_leupold = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(0.05, -26.5, -6.02)
			}
		}
	},		
	wpn_fps_upg_o_45iron = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(-1.35, 10, -15),
				rotation = Rotation(0, 0.2, -45) 
			}
		}
	},
	wpn_fps_upg_o_docter = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_eotech_xps),
	
	wpn_fps_upg_o_eotech = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_aimpoint),
	
	wpn_fps_upg_o_t1micro = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_eotech_xps),
	
	wpn_fps_upg_o_cmore = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_aimpoint),
	
	wpn_fps_upg_o_aimpoint_2 = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_aimpoint),
	
	wpn_fps_upg_o_cs = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_aimpoint),
	
	wpn_fps_upg_o_reflex = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_aimpoint),
	
	wpn_fps_upg_o_rx01 = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_eotech_xps),

	wpn_fps_upg_o_rx30 = deep_clone(self.parts.wpn_fps_upg_o_m14_scopemount.override.wpn_fps_upg_o_aimpoint),
}



self.wpn_fps_ass_akm.override = {}
self.wpn_fps_ass_akm.override.wpn_fps_upg_o_leupold = {
a_obj = "a_o_sm",
stats = { zoom = 10, value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 0 }
}
self.parts.wpn_fps_upg_o_leupold.stance_mod.wpn_fps_ass_akm = { translation = Vector3(0.0, -40, -4) }



self.wpn_fps_ass_akm_gold.override = {}
self.wpn_fps_ass_akm_gold.override.wpn_fps_upg_o_leupold = {
a_obj = "a_o_sm",
stats = { zoom = 10, value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 0 }
}
self.parts.wpn_fps_upg_o_leupold.stance_mod.wpn_fps_ass_akm_gold = { translation = Vector3(0.0, -20, -5.5) }





self.wpn_fps_ass_amcar.override = {}
self.wpn_fps_ass_amcar.override.wpn_fps_upg_m4_m_pmag = {
stats = {  value = 1, damage = 0, recoil = -1, spread = -1, extra_ammo = 16 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_ass_l85a2_m_emag = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 2, extra_ammo = 5 }
}
self.wpn_fps_ass_amcar.override.wpn_fps_upg_m4_m_l5 = {
stats = {  value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 5 }
}
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, concealment = -2}
}



self.wpn_fps_smg_olympic.override = {}
self.wpn_fps_smg_olympic.override.wpn_fps_upg_m4_m_pmag = {
stats = {  value = 1, damage = 0, recoil = -1, spread = -1, extra_ammo = 16 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_ass_l85a2_m_emag = {
stats = {  value = 1, damage = 0, recoil = 0, spread = 2, extra_ammo = 5 }
}
self.wpn_fps_smg_olympic.override.wpn_fps_upg_m4_m_l5 = {
stats = {  value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 5 }
}
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, concealment = -2}
}



self.wpn_fps_ass_m16.override = {}
self.wpn_fps_ass_m16.override.wpn_fps_upg_o_leupold = {
a_obj = "a_o",
stats = { zoom = 10, value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 0 }
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_pmag = {
stats = { value = 1, damage = 0, recoil = -1, spread = -1, extra_ammo = 16 }
}
self.wpn_fps_ass_m16.override.wpn_fps_ass_l85a2_m_emag = {
stats = { value = 1, damage = 0, recoil = 0, spread = 2, extra_ammo = 5 }
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_l5 = {
stats = { value = 1, damage = 0, recoil = 2, spread = 0, 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}
}
self.wpn_fps_ass_m16.override.wpn_fps_upg_m4_m_quad = {
stats = { value = 1, extra_ammo = 20, total_ammo_mod = 0, concealment = -2}
}
self.parts.wpn_fps_upg_o_leupold.stance_mod.wpn_fps_ass_m16 = { translation = Vector3(0, -20, -1.5) }



self.wpn_fps_ass_m4.override = {}
self.wpn_fps_ass_m4.override.wpn_fps_upg_o_leupold = {
a_obj = "a_o",
stats = { zoom = 10, value = 1, damage = 0, recoil = 2, spread = 0, extra_ammo = 0 }
}
self.parts.wpn_fps_upg_o_leupold.stance_mod.wpn_fps_ass_m4 = { translation = Vector3(0, -20, -1.5) }
end

end