Hooks:PostHook( WeaponFactoryTweakData, "init", "MojjiZeroInit", function(self)
local mojji_offset = Vector3(0, 0, -0.6)
table.insert(self.parts.wpn_fps_pis_rage_lock.forbids, "wpn_fps_upg_o_mojji")
table.insert(self.parts.wpn_fps_pis_deagle_lock.forbids, "wpn_fps_upg_o_mojji")
table.insert(self.parts.wpn_fps_shot_r870_s_folding.forbids, "wpn_fps_upg_o_mojji")
table.insert(self.parts.wpn_fps_sho_s_spas12_folded.forbids, "wpn_fps_upg_o_mojji")

local sightid = {"wpn_fps_upg_o_mojji"}
for _, sight_id in ipairs(sightid) do
	self.wpn_fps_ass_amcar.adds[sight_id] = {
		"wpn_fps_m4_upper_reciever_round_vanilla",
		"wpn_fps_m4_uupg_draghandle_vanilla",
		"wpn_fps_m4_uupg_fg_rail_ext"
	}
	self.wpn_fps_ass_74.adds[sight_id] = {
		"wpn_fps_ak_extra_ris"
	}
	self.wpn_fps_ass_akm.adds[sight_id] = {
		"wpn_fps_ak_extra_ris"
	}
	self.wpn_fps_ass_akm_gold.adds[sight_id] = {
		"wpn_fps_ak_extra_ris"
	}
	self.wpn_fps_shot_saiga.adds[sight_id] = {
		"wpn_fps_ak_extra_ris"
	}
	self.wpn_fps_shot_r870.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_shot_r870.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_shot_serbu.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_smg_akmsu.adds[sight_id] = {
		"wpn_fps_ak_extra_ris"
	}
	self.wpn_fps_ass_ak5.adds[sight_id] = {
		"wpn_fps_ass_ak5_body_rail"
	}
	self.wpn_fps_smg_mp5.adds[sight_id] = {
		"wpn_fps_smg_mp5_body_rail"
	}
	self.wpn_fps_smg_mac10.adds[sight_id] = {
		"wpn_fps_smg_mac10_body_ris_special"
	}
	self.wpn_fps_smg_m45.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_ass_scar.adds[sight_id] = {
		"wpn_fps_ass_scar_o_flipups_down"
	}
	self.wpn_fps_pis_rage.adds[sight_id] = {
		"wpn_fps_pis_rage_o_adapter"
	}
	self.wpn_fps_pis_deagle.adds[sight_id] = {
		"wpn_fps_pis_rage_o_adapter"
	}
	self.wpn_fps_smg_scorpion.adds[sight_id] = {
		"wpn_fps_smg_scorpion_extra_rail"
	}
	self.wpn_fps_smg_tec9.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_smg_uzi.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_pis_judge.adds[sight_id] = {
		"wpn_fps_pis_rage_o_adapter"
	}
	self.wpn_fps_ass_g3.adds[sight_id] = {
		"wpn_fps_ass_g3_body_rail"
	}
	self.wpn_fps_ass_galil.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_ass_famas.adds[sight_id] = {
		"wpn_fps_ass_famas_o_adapter"
	}
	self.wpn_fps_sho_spas12.adds[sight_id] = {
		"wpn_fps_shot_r870_ris_special"
	}
	self.wpn_fps_smg_sterling.adds[sight_id] = {
		"wpn_fps_smg_sterling_o_adapter"
	}
	self.wpn_fps_snp_mosin.adds[sight_id] = {
		"wpn_fps_snp_mosin_rail"
	}
	self.wpn_fps_smg_thompson.adds[sight_id] = {
		"wpn_fps_smg_thompson_o_adapter"
	}
	self.wpn_fps_rpg7.adds[sight_id] = {
		"wpn_fps_rpg7_sight_adapter"
	}
	self.wpn_fps_sho_aa12.adds[sight_id] = {
		"wpn_fps_sho_aa12_body_rail"
	}
	self.wpn_fps_snp_model70.adds[sight_id] = {
		"wpn_fps_snp_model70_o_rail"
	}
	self.wpn_fps_smg_sr2.adds[sight_id] = {
		"wpn_fps_smg_sr2_o_rail"
	}
	self.wpn_fps_smg_cobray.adds[sight_id] = {
		"wpn_fps_smg_cobray_o_adapter"
	}
	self.wpn_fps_ass_asval.adds[sight_id] = {
		"wpn_fps_ass_asval_scopemount"
	}
	self.wpn_fps_ass_sub2000.adds[sight_id] = {
		"wpn_fps_ass_sub2000_o_adapter"
	}
	self.wpn_fps_snp_siltstone.adds[ sight_id ] = {
		"wpn_fps_snp_siltstone_o_scopemount"
	}
	self.wpn_fps_smg_coal.adds[ sight_id ] = {
		"wpn_fps_smg_coal_o_scopemount_standard"
	}
	self.wpn_fps_ass_ching.adds[ sight_id ] = {
		"wpn_fps_ak_extra_ris"
	}
	self.wpn_fps_smg_erma.adds[ sight_id ] = {
		"wpn_fps_smg_erma_extra_rail"
	}
	self.wpn_fps_gre_slap.adds[ sight_id ] = {
		"wpn_fps_gre_slap_o_adapter"
	}
	self.wpn_fps_pis_deagle.override[sight_id] = {
		a_obj = "a_quite"
	}
	self.wpn_fps_sho_ksg.override[sight_id] = {
		override = {
			wpn_fps_upg_fl_ass_smg_sho_peqbox = {a_obj = "a_fl_2"},
			wpn_fps_upg_fl_ass_laser = {a_obj = "a_fl_2"},
			wpn_fps_upg_fl_ass_peq15 = {a_obj = "a_fl_2"}
		},
		forbids = {
			"wpn_fps_addon_ris"
		}
	}
	self.wpn_fps_ass_sub2000.override[sight_id] = {
		parent = "foregrip"
	}
	self.parts.wpn_upg_ak_fg_standard.override[sight_id] = {
		a_obj = "a_of"
	}
	self.parts.wpn_upg_ak_fg_standard_gold.override[sight_id] = {
		a_obj = "a_of"
	}
	self.parts.wpn_fps_smg_akmsu_fg_standard.override[sight_id] = {
		a_obj = "a_of"
	}
	self.parts.wpn_upg_saiga_fg_standard.override[sight_id] = {
		a_obj = "a_of"
	}
	self.parts.wpn_fps_ass_galil_fg_fab.override[sight_id] = {
		a_obj = "a_os_fab",
		stance_mod = {
			wpn_fps_ass_galil = {
				translation = Vector3(0, 0, -4.1)
			}
		}
	}
	self.parts.wpn_fps_ass_galil_fg_mar.override[sight_id] = {
		a_obj = "a_os_mar",
		stance_mod = {
			wpn_fps_ass_galil = {
				translation = Vector3(0, -8, -2.8)
			}
		}
	}
	self.parts.wpn_fps_upg_ak_fg_krebs.override[sight_id] = {
		a_obj = "a_o_krebs",
		stance_mod = {
			wpn_fps_ass_74 = {
				translation = Vector3(0, 0, -4.4)
			},
			wpn_fps_ass_akm = {
				translation = Vector3(0, 0, -4.4)
			},
			wpn_fps_ass_akm_gold = {
				translation = Vector3(0, 0, -4.4)
			}
		}
	}
	self.parts.wpn_fps_upg_ak_fg_trax.override[sight_id] = {
		a_obj = "a_o_krebs",
		stance_mod = {
			wpn_fps_ass_74 = {
				translation = Vector3(0, 0, -4.4)
			},
			wpn_fps_ass_akm = {
				translation = Vector3(0, 0, -4.4)
			},
			wpn_fps_ass_akm_gold = {
				translation = Vector3(0, 0, -4.4)
			}
		}
	}
	self.parts.wpn_fps_upg_ak_fg_zenit.override[sight_id] = {
		a_obj = "a_o_zenit",
		stance_mod = {
			wpn_fps_smg_akmsu = {
				translation = Vector3(0, 0, -3.9)
			}
		}
	}
	self.parts.wpn_fps_smg_akmsu_fg_rail.override = {}
	self.parts.wpn_fps_smg_akmsu_fg_rail.override[sight_id] = {
		stance_mod = {
			wpn_fps_smg_akmsu = {
				translation = Vector3(0, 0, -3.6)
			}
		}
	}
	self.parts.wpn_fps_upg_o_ak_scopemount.override[sight_id] = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_74 = {
				translation = Vector3(0, 0, -5.2)
			},
			wpn_fps_ass_akm = {
				translation = Vector3(0, 0, -5.2)
			},
			wpn_fps_ass_akm_gold = {
				translation = Vector3(0, 0, -5.2)
			},
			wpn_fps_shot_saiga = {
				translation = Vector3(0, 0, -5.2)
			},
			wpn_fps_smg_akmsu = {
				translation = Vector3(-0.028, 0, -4.96)
			}
		}
	}
	self.parts.wpn_fps_upg_o_m14_scopemount.override[sight_id] = {
		a_obj = "a_o_sm",
		stance_mod = {
			wpn_fps_ass_m14 = {
				translation = Vector3(-0.03, 0, -5.81)
			}
		}
	}
end
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_m4 = {translation = Vector3(0, 0, -0.58) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_amcar = {translation = Vector3(0, 0, -0.1) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_m16 = {translation = Vector3(0, 0, -0.12) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_olympic = {translation = Vector3(0, 0, -0.12) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_74 = {translation = Vector3(0, 0, -3.1) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_akm = {translation = Vector3(-0.02, -16, -3.15) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_akm_gold = {translation = Vector3(-0.02, -16, -3.15) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_shot_saiga = {translation = Vector3(0, 0, -3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_shot_r870 = {translation = Vector3(0.015, 0, -3.25) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_shot_serbu = {translation = Vector3(0, 0, -3.25) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_akmsu = {translation = Vector3(-0.028, 0, -3.3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_ak5 = {translation = Vector3(0.025, 0, -3.45) + mojji_offset,rotation = Rotation(0, -0.35, 0)}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_aug = {translation = Vector3(0, 0, -2.8) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_g36 = {translation = Vector3(0, 0, -3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_p90 = {translation = Vector3(0, 0, -2.97) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_m14 = {translation = Vector3(-0.02, -15, -3.85) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_mp9 = {translation = Vector3(0, 0, -3.47) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_mp5 = {translation = Vector3(0, 0, -3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_mac10 = {translation = Vector3(0, -10, -3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_s552 = {translation = Vector3(-0.08, 0, -2.1) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_m45 = {translation = Vector3(0, -10, -3.9) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_mp7 = {translation = Vector3(0, 0, -2.8) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_scar = {translation = Vector3(0, 0, -0.25) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_lmg_hk21 = {translation = Vector3(0, 0, -3.2) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_lmg_m249 = {translation = Vector3(0, 0, -3.2) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_pis_rage = {translation = Vector3(-0.05, -15, -4.65) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_pis_deagle = {translation = Vector3(0, -18, -4.2) + mojji_offset,rotation = Rotation(0, -0.5, 0)}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_m95 = {translation = Vector3(0, -1, -3.8) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_msr = {translation = Vector3(0, -7, -3.52) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_r93 = {translation = Vector3(-0.01, -7, -3.755) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_fal = {translation = Vector3(0, 7, -3.5) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_ben = {translation = Vector3(0, 0, -3.2) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_striker = {translation = Vector3(0, 5, -2.8) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_ksg = {translation = Vector3(0, 0, -1.3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_scorpion = {translation = Vector3(0, -8, -5.2) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_tec9 = {translation = Vector3(0, 0, -4.9) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_uzi = {translation = Vector3(0, 0, -5.1) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_pis_judge = {translation = Vector3(0, -10, -5.4) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_g3 = {translation = Vector3(0.02, -8, -3.4) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_galil = {translation = Vector3(0, -2, -3.2) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_famas = {translation = Vector3(-0.01, -5, -6.25) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_spas12 = {translation = Vector3(-0.2, 5, -3.9) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_sterling = {translation = Vector3(0, -14, -3.6) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_mosin = {translation = Vector3(0, -28, -4.3) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_thompson = {translation = Vector3(0, -24, -4.2) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_l85a2 = {translation = Vector3(-0.01, 8, 1.885) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_vhs = {translation = Vector3(-0.005, -1, -1.18) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_gre_m32 = {translation = Vector3(0, 5, -3.45) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_aa12 = {translation = Vector3(-0.01, 0, 0.1) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_rpg7 = {translation = Vector3(0, 5, 0.03) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_polymer = {translation = Vector3(0, 2, -0.65) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_wa2000 = {translation = Vector3(0, -5, 0.75) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_model70 = {translation = Vector3(0, -10, -4.05) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_shot_m37 = {translation = Vector3(0, -10, -4.05) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_sr2 = {translation = Vector3(0, 12, -4.6) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_tecci = {translation = Vector3(-0.01, 10, -1.68) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_hajk = {translation = Vector3(0, 8, -0.5) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_desertfox = {translation = Vector3(0, -15, -3.9) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_schakal = {translation = Vector3(0, 0, -2.8) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_rota = {translation = Vector3(0, 0, -0.42) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_gre_arbiter = {translation = Vector3(0, 0, -0.4) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_contraband = {translation = Vector3(-0.01, 0, -1.68) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_tti = {translation = Vector3(0, 1, -0.1) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_snp_siltstone = {translation = Vector3(0, 5, -4) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_flint = {translation = Vector3(0, 5, -2.6) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_coal = {translation = Vector3(0, 15, -4) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_ching = {translation = Vector3(0, 5, -2.77) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_erma = {translation = Vector3(0, 5, -3.85) + mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_sho_basset = {translation = Vector3(0, 5, -0.68) + mojji_offset}

	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_asval = {translation = Vector3(0, 10, -0.6)}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_ass_sub2000 = {translation = mojji_offset}
	self.parts.wpn_fps_upg_o_mojji.stance_mod.wpn_fps_smg_cobray = {translation = mojji_offset}
end )