-- Original name: $NS_Register.lua
-- Original author: Nihilist Penguin (https://steamcommunity.com/id/bickback/)

-- Copyright 2023 Nihilist Penguin. This item is not authorized for posting on Steam,
-- except under the Steam account named Nihilist Penguin, or with the copyright holder's explicit permission.
-- Redistribution of this mod without explicit permission from the original creator is prohibited under any circumstances.
-- This includes, but not limited to, uploading these mods to the Steam Workshop or any other site,
-- distribution as part of another mod or modpack, and distribution of modified versions.

NSGlobal = {}

NSGlobal.register = {}
NSGlobal.register.info = {}
NSGlobal.register.default = {}
NSGlobal.register.mapping = {}
NSGlobal.register.override = {}

NSGlobal.register.debug = true

-- ##############################################
-- ########### Section: Register Info ###########
-- ##############################################

NSGlobal.register.info.rweapon_type_descriptions = {
	["0"] = "Pistol",
	["1"] = "Revolver",
	["2"] = "Sub-machine Gun",
	["3"] = "Assault Rifle",
	["4"] = "Semi-auto Rifle",
	["5"] = "Lever/Bolt-action Rifle",
	["6"] = "Shotgun",
	["7"] = "Machine Gun",
	["8"] = "Others", -- not allowed to be silenced as of this version
}

-- #################################################
-- ########### Section: Register Sandbox ###########
-- #################################################

NSGlobal.register.default.rweapon_type = "8"

NSGlobal.register.default.rweapon_type_silenced_sounds = {
	["0"] = "Shot_usp_silence",
	["1"] = "Shot_gp100_silence",
	["2"] = "Shot_mac10_silence",
	["3"] = "Shot_mk23_silence",
	["4"] = "Shot_mauser_silence",
	["5"] = "Shot_msg90_silence",
	["6"] = "Shot_spas12_silence",
	["7"] = "Shot_g21lmg_silence",
	["8"] = "Shot_aps_silence",
}

NSGlobal.register.default.supported_ammo_types = {
	"Base.Bullets9mm",
	"Base.22Bullets",
	"Base.Bullets44",
	"Base.Bullets45",
	"Base.223Bullets",
	"Base.556Bullets",
	"Base.308Bullets",
	"Base.762Bullets",
	"Base.Bullets38",
	"GWP.357Bullets",
	"Base.ShotgunShells",
}

NSGlobal.register.default.silencer_item_names = {
	"Base.Silencer22",
	"Base.Silencer9",
	"Base.Silencer44",
	"Base.Silencer45",
	"Base.Silencer38n357",
	"Base.Silencer223n556",
	"Base.Silencer308n762",
	"Base.SilencerShells",
}

-- #################################################
-- ########### Section: Register Mapping ###########
-- #################################################

NSGlobal.register.mapping.ammo_mult_sandbox_to_ingame = {
	["m9"] = { "Base.Bullets9mm" },
	["m22"] = { "Base.22Bullets" },
	["m44"] = { "Base.Bullets44" },
	["m45"] = { "Base.Bullets45" },
	["m223n556"] = { "Base.223Bullets", "Base.556Bullets" },
	["m308n762"] = { "Base.308Bullets", "Base.762Bullets" },
	["m38n357"] = { "Base.Bullets38", "GWP.357Bullets" },
	["mShells"] = { "Base.ShotgunShells" },
}

NSGlobal.register.mapping.ammo_mult_ingame_to_sandbox = {
	["Base.Bullets9mm"] = "m9",
	["Base.22Bullets"] = "m22",
	["Base.Bullets44"] = "m44",
	["Base.Bullets45"] = "m45",
	["Base.Bullets38"] = "m38n357",
	["GWP.357Bullets"] = "m38n357",
	["Base.223Bullets"] = "m223n556",
	["Base.556Bullets"] = "m223n556",
	["Base.308Bullets"] = "m308n762",
	["Base.762Bullets"] = "m308n762",
	["Base.ShotgunShells"] = "mShells",
}

NSGlobal.register.mapping.ammo_sound_to_sandbox = {
	["Base.Bullets9mm"] = "s9",
	["Base.22Bullets"] = "s22",
	["Base.Bullets44"] = "s44",
	["Base.Bullets45"] = "s45",
	["Base.Bullets38"] = "s38n357",
	["GWP.357Bullets"] = "s38n357",
	["Base.223Bullets"] = "s223n556",
	["Base.556Bullets"] = "s223n556",
	["Base.308Bullets"] = "s308n762",
	["Base.762Bullets"] = "s308n762",
	["Base.ShotgunShells"] = "sShells",
}

NSGlobal.register.mapping.ammo_sound_sandbox_to_ingame = {
	["s9"] = { "Base.Bullets9mm" },
	["s22"] = { "Base.22Bullets" },
	["s44"] = { "Base.Bullets44" },
	["s45"] = { "Base.Bullets45" },
	["s38n357"] = { "Base.Bullets38", "GWP.357Bullets" },
	["s223n556"] = { "Base.223Bullets", "Base.556Bullets" },
	["s308n762"] = { "Base.308Bullets", "Base.762Bullets" },
	["sShells"] = { "Base.ShotgunShells" },
}

NSGlobal.register.mapping.ammo_dist_sandbox_to_ingame = {
	["d9"] = { "Base.Bullets9mm" },
	["d22"] = { "Base.22Bullets" },
	["d44"] = { "Base.Bullets44" },
	["d45"] = { "Base.Bullets45" },
	["d38n357"] = { "Base.Bullets38", "GWP.357Bullets" },
	["d223n556"] = { "Base.223Bullets", "Base.556Bullets" },
	["d308n762"] = { "Base.308Bullets", "Base.762Bullets" },
	["dShells"] = { "Base.ShotgunShells" },
}

NSGlobal.register.mapping.ammo_dist_ingame_to_sandbox = {
	["Base.Bullets9mm"] = "d9",
	["Base.22Bullets"] = "d22",
	["Base.Bullets44"] = "d44",
	["Base.Bullets45"] = "d45",
	["Base.Bullets38"] = "d38n357",
	["GWP.357Bullets"] = "d38n357",
	["Base.223Bullets"] = "d223n556",
	["Base.556Bullets"] = "d223n556",
	["Base.308Bullets"] = "d308n762",
	["Base.762Bullets"] = "d308n762",
	["Base.ShotgunShells"] = "dShells",
}

NSGlobal.register.mapping.ammo_crafting_sandbox_to_ingame = {
	["c9"] = { "Base.Bullets9mm" },
	["c22"] = { "Base.22Bullets" },
	["c44"] = { "Base.Bullets44" },
	["c45"] = { "Base.Bullets45" },
	["c38n357"] = { "Base.Bullets38", "GWP.357Bullets" },
	["c223n556"] = { "Base.223Bullets", "Base.556Bullets" },
	["c308n762"] = { "Base.308Bullets", "Base.762Bullets" },
	["cShells"] = { "Base.ShotgunShells" },
}

NSGlobal.register.mapping.ammo_crafting_ingame_to_sandbox = {
	["Base.Bullets9mm"] = "c9",
	["Base.22Bullets"] = "c22",
	["Base.Bullets44"] = "c44",
	["Base.Bullets45"] = "c45",
	["Base.Bullets38"] = "c38n357",
	["GWP.357Bullets"] = "c38n357",
	["Base.223Bullets"] = "c223n556",
	["Base.556Bullets"] = "c223n556",
	["Base.308Bullets"] = "c308n762",
	["Base.762Bullets"] = "c308n762",
	["Base.ShotgunShells"] = "cShells",
}

NSGlobal.register.mapping.ammo_type_to_silencer_item_name = {
	["Base.Bullets9mm"] = "Base.Silencer9",
	["Base.22Bullets"] = "Base.Silencer22",
	["Base.Bullets44"] = "Base.Silencer44",
	["Base.Bullets45"] = "Base.Silencer45",
	["Base.Bullets38"] = "Base.Silencer38n357",
	["GWP.357Bullets"] = "Base.Silencer38n357",
	["Base.223Bullets"] = "Base.Silencer223n556",
	["Base.556Bullets"] = "Base.Silencer223n556",
	["Base.308Bullets"] = "Base.Silencer308n762",
	["Base.762Bullets"] = "Base.Silencer308n762",
	["Base.ShotgunShells"] = "Base.SilencerShells",
}

-- #################################################
-- ########### Section: Register Default ###########
-- #################################################

-- manually registered ranged weapons with their corresponding type
NSGlobal.register.default.rweapon_types = {
	-- base game
	["Base.Pistol"] = "0",
	["Base.Pistol2"] = "0",
	["Base.Pistol3"] = "0",
	["Base.Revolver"] = "1",
	["Base.Revolver_Short"] = "1",
	["Base.Revolver_Long"] = "1",
	["Base.AssaultRifle"] = "3",
	["Base.AssaultRifle2"] = "3",
	["Base.HuntingRifle"] = "5",
	["Base.VarmintRifle"] = "5",
	["Base.Shotgun"] = "6",
	["Base.ShotgunSawnoff"] = "6",
	["Base.DoubleBarrelShotgun"] = "6",
	["Base.DoubleBarrelShotgunSawnoff"] = "6",
	-- VFE
	["Base.AssaultRifleM1"] = "4",
	["Base.1022"] = "4",
	["Base.SKS"] = "4",
	["Base.SKSSpikerBayonet"] = "4",
	["Base.SKSSpiker"] = "4",
	["Base.Mini14Folded"] = "4",
	["Base.Mini14Unfolded"] = "4",
	["Base.Mini14"] = "4",
	["Base.Glock18"] = "0",
	["Base.Spas12"] = "6",
	["Base.Spas12Folded"] = "6",
	["Base.AssaultRifleBayonet"] = "4",
	["Base.ShotgunSemi"] = "6",
	["Base.ShotgunSawnoffNoStock"] = "6",
	["Base.DoubleBarrelShotgunSawnoffNoStock"] = "6",
	["Base.AK47Folded"] = "3",
	["Base.AK47Unfolded"] = "3",
	["Base.AK47"] = "3",
	["Base.ShotgunSemi2"] = "6",
	["Base.MP5Folded"] = "2",
	["Base.MP5Unfolded"] = "2",
	["Base.MP5"] = "2",
	["Base.Shotgun2"] = "6",
	["Base.Shotgun2Bayonet"] = "6",
	["Base.Tec9"] = "0",
	["Base.CAR15DFolded"] = "3",
	["Base.CAR15Folded"] = "3",
	["Base.CAR15"] = "3",
	["Base.SniperRifle"] = "5",
	["Base.MK23SOCOM"] = "0",
	["Base.LeverRifle"] = "5",
	["Base.MAC10Unfolded"] = "2",
	["Base.MAC10Folded"] = "2",
	["Base.CZ75"] = "0",
	["Base.Glock"] = "0",
	["Base.FAL"] = "4",
	["Base.FALClassic"] = "4",
	["Base.P229"] = "0",
	-- Gunrunner's Weapon Pack
	["GWP.ColtPython38"] = "1",
	["GWP.Glock21"] = "0",
	["GWP.MiniUzi"] = "2",
	["GWP.M60"] = "7",
	["GWP.Marlin1894Custom38"] = "5",
	["GWP.ColtPeacemaker"] = "1",
	["GWP.Heritage22Revolver"] = "1",
	["GWP.ThompsonM1A1"] = "2",
	["GWP.Model44"] = "4",
	["GWP.M1carbine9mm"] = "4",
	["GWP.Winchester1894"] = "5",
	["GWP.R870Police"] = "6",
	["GWP.NorincoMak90"] = "4",
	["GWP.PSG1"] = "5",
	["GWP.Marlin1894Custom357"] = "5",
	["GWP.BigBoy45ACP"] = "2",
	["GWP.HKG3"] = "3",
	["GWP.Winchester1887"] = "5",
	["GWP.Mini30"] = "5",
	["GWP.RugerMarkII"] = "0",
	["GWP.ColtPython357"] = "1",
	-- Stalker
	["Base.SVD"] = "4",
	["Base.M249"] = "7",
	["Base.Saiga12"] = "6",
	["Base.Bizon"] = "2",
	["Base.PPSH"] = "2",
	["Base.SV98"] = "5",
	["Base.PKM"] = "7",
	["Base.MP153"] = "6",
	["Base.MP153sawn"] = "6",
	["Base.UMP45"] = "2",
	["Base.Mosin"] = "5",
	["Base.HK416"] = "3",
	["Base.Galil"] = "3",
	["Base.SVT40"] = "4",
	["Base.VSS"] = "3",
	["Base.Vityaz"] = "2",
	["Base.Makarov"] = "0",
	["Base.USP45"] = "0",
	-- Scrap Guns
	["SGuns.SlamFire"] = "6",
	["SGuns.SSR"] = "5",
}

-- [Experimental] manually registered searchable keywords of ranged weapon types
NSGlobal.register.default.rweapon_types_keywords = {
	["0"] = {},
	["1"] = {},
	["2"] = {},
	["3"] = {},
	["4"] = {},
	["5"] = {},
	["6"] = {},
	["7"] = {},
}

-- ##################################################
-- ########### Section: Register Override ###########
-- ##################################################

-- used for overriding swing sounds
NSGlobal.register.override.rweapon_sounds = {
	-- base game
	-- ["Base.Pistol"] = "Shot_glock17",
	-- ["Base.Pistol2"] = "Shot_usp",
	["Base.Pistol3"] = "Shot_deagle",
	-- ["Base.Revolver"] = "Shot_gp100",
	-- ["Base.Revolver_Short"] = "Shot_gp100",
	-- ["Base.Revolver_Long"] = "Shot_gp100",
	["Base.HuntingRifle"] = "Shot_m40",
	["Base.VarmintRifle"] = "Shot_mosin",
	["Base.AssaultRifle"] = "Shot_m16",
	["Base.AssaultRifle2"] = "Shot_m14",
	["Base.Shotgun"] = "Shot_870",
	["Base.DoubleBarrelShotgun"] = "Shot_dt11",
	["Base.DoubleBarrelShotgunSawnoff"] = "Shot_dt11",
	-- VFE
	["Base.AssaultRifleM1"] = "Shot_m12",
	["Base.1022"] = "Shot_luger",
	-- ["Base.SKS"] = "Shot_sks",
	-- ["Base.SKSSpiker"] = "Shot_sks",
	["Base.Mini14Folded"] = "Shot_mini14",
	["Base.Mini14Unfolded"] = "Shot_mini14",
	["Base.Mini14"] = "Shot_mini14",
	["Base.Glock18"] = "Shot_glock17",
	["Base.Spas12"] = "Shot_spas12",
	["Base.Spas12Folded"] = "Shot_spas12",
	["Base.ShotgunSemi"] = "Shot_r11",
	["Base.ShotgunSawnoffNoStock"] = "Shot_dt11",
	["Base.DoubleBarrelShotgunSawnoffNoStock"] = "Shot_dt11",
	["Base.AK47Folded"] = "Shot_akm",
	["Base.AK47Unfolded"] = "Shot_akm",
	["Base.AK47"] = "Shot_akm",
	["Base.ShotgunSemi2"] = "Shot_r11",
	["Base.MP5Folded"] = "Shot_mp5",
	["Base.MP5Unfolded"] = "Shot_mp5",
	["Base.MP5"] = "Shot_mp5",
	["Base.Shotgun2"] = "Shot_moss",
	-- ["Base.Shotgun2Bayonet"] = "Shot_moss",
	-- ["Base.Tec9"] = "",
	-- ["Base.CAR15DFolded"] = "Shot_car15",
	["Base.CAR15Folded"] = "Shot_car15",
	["Base.CAR15"] = "Shot_car15",
	-- ["Base.SniperRifle"] = "Shot_g28",
	["Base.SniperRifle"] = "Shot_chey",
	["Base.LeverRifle"] = "Shot_winch18",
	["Base.MAC10Unfolded"] = "Shot_mac10",
	["Base.MAC10Folded"] = "Shot_mac10",
	["Base.CZ75"] = "Shot_cz75",
	["Base.Glock"] = "Shot_glock17",
	["Base.FAL"] = "Shot_fal",
	["Base.FALClassic"] = "Shot_fal",
	-- Gunrunner's Weapon Pack
	["GWP.ColtPython38"] = "Shot_m29",
	["GWP.Glock21"] = "Shot_glock17",
	["GWP.MiniUzi"] = "Shot_tom",
	["GWP.M60"] = "Shot_m60",
	["GWP.ColtPeacemaker"] = "Shot_peace",
	["GWP.ThompsonM1A1"] = "Shot_tom",
	["GWP.Model44"] = "Shot_luger",
	["GWP.Winchester1894"] = "Shot_win1895",
	["GWP.PSG1"] = "Shot_psg1",
	["GWP.HKG3"] = "Shot_scar",
	["GWP.Winchester1887"] = "Shot_m1887",
	["GWP.RugerMarkII"] = "Shot_1903",
	["GWP.ColtPython357"] = "Shot_m29",
	-- VFE Stalker
	["Base.SVD"] = "Shot_svd",
	["Base.M249"] = "Shot_m60",
	["Base.Saiga12"] = "Shot_saiga",
	["Base.Bizon"] = "Shot_mp7",
	["Base.PPSH"] = "Shot_mp5",
	["Base.SV98"] = "Shot_osv",
	["Base.PKM"] = "Shot_pkm",
	["Base.UMP45"] = "Shot_ump",
	["Base.Mosin"] = "Shot_mosin",
	["Base.HK416"] = "Shot_mk23",
	["Base.Galil"] = "Shot_galil",
	["Base.USP45"] = "Shot_usp",
}

-- used for overriding silenced swing sounds
NSGlobal.register.override.rweapon_silenced_sounds = {
	-- base game
	["Base.Pistol"] = "Shot_usp_silence",
	["Base.Pistol2"] = "Shot_usp_silence",
	["Base.Pistol3"] = "Shot_deagle_silence",
	["Base.Revolver"] = "Shot_gp100_silence",
	["Base.Revolver_Short"] = "Shot_gp100_silence",
	["Base.Revolver_Long"] = "Shot_gp100_silence",
	["Base.HuntingRifle"] = "Shot_m40_silence",
	["Base.VarmintRifle"] = "Shot_mosin_silence",
	["Base.AssaultRifle"] = "Shot_m16_silence",
	["Base.AssaultRifle2"] = "Shot_m14_silence",
	["Base.Shotgun"] = "Shot_870_silence",
	["Base.DoubleBarrelShotgun"] = "Shot_dt11_silence",
	["Base.DoubleBarrelShotgunSawnoff"] = "Shot_dt11_silence",
	-- VFE
	["Base.AssaultRifleM1"] = "Shot_m12_silence",
	["Base.1022"] = "Shot_luger_silence",
	["Base.SKS"] = "Shot_sks_silence",
	-- ["Base.SKSSpikerBayonet"] = "Shot_sks_silence",
	["Base.SKSSpiker"] = "Shot_sks_silence",
	["Base.Mini14Folded"] = "Shot_mini14_silence",
	["Base.Mini14Unfolded"] = "Shot_mini14_silence",
	["Base.Mini14"] = "Shot_mini14_silence",
	["Base.Glock18"] = "Shot_glock17_silence",
	["Base.Spas12"] = "Shot_spas12_silence",
	["Base.Spas12Folded"] = "Shot_spas12_silence",
	["Base.AssaultRifleBayonet"] = "Shot_m16_silence",
	["Base.ShotgunSemi"] = "Shot_r11_silence",
	["Base.ShotgunSawnoffNoStock"] = "Shot_dt11_silence",
	["Base.DoubleBarrelShotgunSawnoffNoStock"] = "Shot_dt11_silence",
	["Base.AK47Folded"] = "Shot_akm_silence",
	["Base.AK47Unfolded"] = "Shot_akm_silence",
	["Base.AK47"] = "Shot_akm_silence",
	["Base.ShotgunSemi2"] = "Shot_r11_silence",
	["Base.MP5Folded"] = "Shot_mp5_silence",
	["Base.MP5Unfolded"] = "Shot_mp5_silence",
	["Base.MP5"] = "Shot_mp5_silence",
	["Base.Shotgun2"] = "Shot_moss_silence",
	-- ["Base.Shotgun2Bayonet"] = "Shot_moss_silence",
	["Base.CAR15DFolded"] = "Shot_car15_silence",
	["Base.CAR15Folded"] = "Shot_car15_silence",
	["Base.CAR15"] = "Shot_car15_silence",
	-- ["Base.SniperRifle"] = "Shot_g28_silence",
	["Base.SniperRifle"] = "Shot_chey_silence",
	["Base.LeverRifle"] = "Shot_winch18_silence",
	["Base.MAC10Unfolded"] = "Shot_mac10_silence",
	["Base.MAC10Folded"] = "Shot_mac10_silence",
	["Base.CZ75"] = "Shot_cz75_silence",
	["Base.Glock"] = "Shot_glock17_silence",
	["Base.FAL"] = "Shot_fal_silence",
	["Base.FALClassic"] = "Shot_fal_silence",
	-- Gunrunner's Weapon Pack
	["GWP.ColtPython38"] = "Shot_m29_silence",
	["GWP.Glock21"] = "Shot_glock17_silence",
	["GWP.MiniUzi"] = "Shot_tom_silence",
	["GWP.M60"] = "Shot_m60_silence",
	["GWP.ColtPeacemaker"] = "Shot_peace_silence",
	["GWP.ThompsonM1A1"] = "Shot_tom_silence",
	["GWP.Model44"] = "Shot_luger_silence",
	["GWP.Winchester1894"] = "Shot_win1895_silence",
	["GWP.PSG1"] = "Shot_psg1_silence",
	["GWP.HKG3"] = "Shot_scar_silence",
	["GWP.Winchester1887"] = "Shot_m1887_silence",
	["GWP.RugerMarkII"] = "Shot_1903_silence",
	["GWP.ColtPython357"] = "Shot_m29_silence",
	-- VFE Stalker
	["Base.SVD"] = "Shot_svd_silence",
	["Base.M249"] = "Shot_m60_silence",
	["Base.Saiga12"] = "Shot_saiga_silence",
	["Base.Bizon"] = "Shot_mp_silence7",
	["Base.PPSH"] = "Shot_mp5_silence",
	["Base.SV98"] = "Shot_osv_silence",
	["Base.PKM"] = "Shot_pkm_silence",
	["Base.UMP45"] = "Shot_ump_silence",
	["Base.Mosin"] = "Shot_mosin_silence",
	["Base.HK416"] = "Shot_mk23_silence",
	["Base.Galil"] = "Shot_galil_silence",
	["Base.USP45"] = "Shot_usp_silence",
}

-- used for excluding weapons to be in the system
NSGlobal.register.override.denylist_weapon_name = {
	"Base.NailGun", -- Vanilla
	"Base.DoubleBarrelShotgun", -- Vanilla
	"Base.ShotgunSilent", -- VFE
	"Base.MP5SD", -- VFE
	"Base.CAR15D", -- VFE
	"Base.CAR15DFolded", -- VFE
	"Base.MK23SOCOM", -- VFE
	"GWP.Mac10SD", -- GWP
	"GWP.DeLisleCarbine", -- GWP
	"Base.VSS", -- VFE Stalker
	-- "Base.Rusty", -- NewEkron
	-- "Base.AZZK_pistol", -- Perts Party Tiles
	-- "Base.M41APulse", -- Pitstop
	-- "Base.BuckRogersGun", -- Pitstop
	-- "Base.Boltgun", -- Pitstop
	-- "Base.FutureAssaultRifle", -- Pitstop
	-- "Base.FutureRevolver", -- Pitstop
	-- "Base.FutureShotgun", -- Pitstop
	-- "Base.E11Blaster", -- Pitstop
	-- "Base.CyberPistol", -- Pitstop
}

-- used for excluding ammo types to be in the system
NSGlobal.register.override.denylist_ammo_type = {}

-- Specific model assignments due to model issues
NSGlobal.register.model_exceptions = {
	["Base.Shotgun"] = "Base.SilencerLRx180",
	["Base.Revolver_Long"] = "Base.SilencerSRx90",
	["Base.Pistol"] = "Base.SilencerSTy005",
	["Base.Pistol2"] = "Base.SilencerSTy005",
	["Base.Pistol3"] = "Base.SilencerSTy005",
}

NSGlobal.register.vfe_model_exceptions = {
	["Base.VarmintRifle"] = "Base.SilencerSTz02",
	["Base.Shotgun"] = "Base.SilencerLTz01",
	["Base.Shotgun2"] = "Base.SilencerLTz01",
	["Base.1022"] = "Base.SilencerSTz02",
	["Base.Mini14"] = "Base.SilencerSTz02",
	["Base.Mini14Folded"] = "Base.SilencerSTz02",
	["Base.Mini14Unfolded"] = "Base.SilencerSTz02",
	["Base.Spas12"] = "Base.SilencerLTz025Rz180",
	["Base.Spas12Folded"] = "Base.SilencerLTz025Rz180",
	["Base.ShotgunSemi"] = "Base.SilencerLTz025",
	["Base.ShotgunSemi2"] = "Base.SilencerLTz025",
	["Base.Shotgun2Bayonet"] = "Base.SilencerLTz025",
	["Base.Tec9"] = "Base.SilencerSTmy02z025",
	-- Gunrunner's Weapon Pack
	["GWP.Glock21"] = "Base.SilencerSTmx005",
	["GWP.MiniUzi"] = "Base.SilencerSTmx005",
	["GWP.M60"] = "Base.SilencerSTmx005z02",
	["GWP.ColtPeacemaker"] = "Base.SilencerSTmx005",
	["GWP.ColtPython357"] = "Base.SilencerSTmx005",
	["GWP.ColtPython38"] = "Base.SilencerSTmx005",
	["GWP.ThompsonM1A1"] = "Base.SilencerSTmx005mz01",
	["GWP.Model44"] = "Base.SilencerSTmx005",
	["GWP.Winchester1894"] = "Base.SilencerSTmx005",
	["GWP.Winchester1887"] = "Base.SilencerSTmx005z02",
	["GWP.PSG1"] = "Base.SilencerSTmx005",
	["GWP.HKG3"] = "Base.SilencerSTmx005",
	["GWP.RugerMarkII"] = "Base.SilencerSTmx005",
	["GWP.M1carbine9mm"] = "Base.SilencerSTmx005z02",
	["GWP.R870Police"] = "Base.SilencerLTmy025z05Rz180",
	["GWP.NorincoMak90"] = "Base.SilencerSTy02",
	["GWP.BigBoy45ACP"] = "Base.SilencerSTmx005y005",
	["GWP.Mini30"] = "Base.SilencerSTmx005y005",
	-- VFE Stalker
	["Base.Bizon"] = "Base.SilencerSTy02z02",
	["Base.SV98"] = "Base.SilencerSTy02",
	["Base.Mosin"] = "Base.SilencerSTmy015z01",
	["Base.HK416"] = "Base.SilencerSTy01",
}
