2025-06-07 08:51:21 +02:00
|
|
|
|
--[[
|
|
|
|
|
Weapon Configuration Settings
|
|
|
|
|
This section covers all configurations for weapons in the game, including throwable items,
|
|
|
|
|
durability settings, and weapon-specific details like attachments and ammo levels.
|
|
|
|
|
|
|
|
|
|
Main configurations:
|
|
|
|
|
- `Config.RemoveTintAfterRemoving`: Controls whether tints are removed when a weapon is discarded.
|
|
|
|
|
- `Config.DurabilityBlockedWeapons`: Lists weapons that are exempt from durability degradation.
|
|
|
|
|
- `Config.Throwables`: Specifies throwable items available in the game, such as grenades and flares.
|
|
|
|
|
- `Config.DurabilityMultiplier`: Defines durability rates for various weapon types, with higher values
|
|
|
|
|
indicating faster degradation. Use these settings to customize weapon durability on a per-type basis.
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
|
|
Config.RemoveTintAfterRemoving = false -- If true, weapon tints are removed when the weapon is discarded or removed
|
|
|
|
|
Config.ForceToOnlyOneMagazine = false -- Player only can use one magazine at a time. When clip is empty then player can use another one.
|
|
|
|
|
|
|
|
|
|
Config.DurabilityBlockedWeapons = { -- List of weapons excluded from durability degradation
|
|
|
|
|
'weapon_stungun',
|
|
|
|
|
'weapon_nightstick',
|
|
|
|
|
'weapon_flashlight',
|
|
|
|
|
'weapon_unarmed',
|
2025-06-30 21:17:07 +02:00
|
|
|
|
'weapon_pocketlight',
|
|
|
|
|
'weapon_colbaton',
|
2025-06-07 08:51:21 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
-- You can use your custom weapon attachment lines by adding them here
|
|
|
|
|
Config.WeaponAttachmentLines = {
|
|
|
|
|
['suppressor'] = {
|
|
|
|
|
bones = { 'WAPSupp', 'WAPSupp_2' },
|
|
|
|
|
offset = { x = -18, y = 4 },
|
|
|
|
|
},
|
|
|
|
|
['flash'] = {
|
|
|
|
|
bones = { 'WAPFlshLasr', 'WAPFlshLasr_2' },
|
|
|
|
|
offset = { x = 5, y = 17 },
|
|
|
|
|
},
|
|
|
|
|
['scope'] = {
|
|
|
|
|
bones = { 'WAPScop', 'WAPScop_2' },
|
|
|
|
|
offset = { x = 5, y = -25 },
|
|
|
|
|
},
|
|
|
|
|
['clip'] = {
|
|
|
|
|
bones = { 'WAPClip', 'WAPClip_2' },
|
|
|
|
|
offset = { x = 15, y = 15 },
|
|
|
|
|
},
|
|
|
|
|
['tint'] = {
|
|
|
|
|
default = true,
|
|
|
|
|
offset = { x = 20, y = 0 },
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Config.Throwables = { -- Defines throwable items that players can use
|
|
|
|
|
'ball',
|
|
|
|
|
'bzgas',
|
|
|
|
|
'flare',
|
|
|
|
|
'grenade',
|
|
|
|
|
'molotov',
|
|
|
|
|
'pipebomb',
|
|
|
|
|
'proxmine',
|
|
|
|
|
'smokegrenade',
|
|
|
|
|
'snowball',
|
|
|
|
|
'stickybomb',
|
|
|
|
|
'newspaper',
|
2025-06-30 21:17:07 +02:00
|
|
|
|
'',
|
2025-06-09 14:25:17 +02:00
|
|
|
|
|
2025-06-07 08:51:21 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
---@type table<number, {item: string, type: string, isForEveryWeapon?: boolean}>
|
|
|
|
|
Config.AmmoItems = {
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_ammo',
|
|
|
|
|
type = 'AMMO_PISTOL'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_ammo',
|
|
|
|
|
type = 'AMMO_RIFLE'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_ammo',
|
|
|
|
|
type = 'AMMO_SMG'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_ammo',
|
|
|
|
|
type = 'AMMO_SHOTGUN'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'mg_ammo',
|
|
|
|
|
type = 'AMMO_MG'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'emp_ammo',
|
|
|
|
|
type = 'AMMO_EMPLAUNCHER'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rpg_ammo',
|
|
|
|
|
type = 'AMMO_RPG'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'grenadelauncher_ammo',
|
|
|
|
|
type = 'AMMO_GRENADELAUNCHER'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'snp_ammo',
|
|
|
|
|
type = 'AMMO_SNIPER'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'police_rifle_ammo',
|
|
|
|
|
type = 'AMMO_POLICE_RIFLE'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'master_ammo',
|
|
|
|
|
isForEveryWeapon = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Config.DurabilityMultiplier = { -- Durability settings per weapon type. Higher values mean quicker degradation.
|
|
|
|
|
-- Melee Weapons
|
|
|
|
|
weapon_dagger = 0.15, -- Durability rate for daggers
|
|
|
|
|
weapon_bat = 0.15,
|
|
|
|
|
weapon_bottle = 0.15,
|
|
|
|
|
weapon_crowbar = 0.15,
|
|
|
|
|
weapon_candycane = 0.15,
|
|
|
|
|
weapon_golfclub = 0.15,
|
|
|
|
|
weapon_hammer = 0.15,
|
|
|
|
|
weapon_hatchet = 0.15,
|
|
|
|
|
weapon_knuckle = 0.15,
|
|
|
|
|
weapon_knife = 0.15,
|
|
|
|
|
weapon_machete = 0.15,
|
|
|
|
|
weapon_switchblade = 0.15,
|
|
|
|
|
weapon_wrench = 0.15,
|
|
|
|
|
weapon_battleaxe = 0.15,
|
|
|
|
|
weapon_poolcue = 0.15,
|
|
|
|
|
weapon_briefcase = 0.15,
|
|
|
|
|
weapon_briefcase_02 = 0.15,
|
|
|
|
|
weapon_garbagebag = 0.15,
|
|
|
|
|
weapon_handcuffs = 0.15,
|
|
|
|
|
weapon_bread = 0.15,
|
|
|
|
|
weapon_stone_hatchet = 0.15,
|
|
|
|
|
-- Handguns
|
|
|
|
|
weapon_pistol = 0.15, -- Durability rate for standard pistols
|
|
|
|
|
weapon_pistol_mk2 = 0.15,
|
|
|
|
|
weapon_combatpistol = 0.15,
|
|
|
|
|
weapon_appistol = 0.15,
|
|
|
|
|
weapon_pistol50 = 0.15,
|
|
|
|
|
weapon_snspistol = 0.15,
|
|
|
|
|
weapon_heavypistol = 0.15,
|
|
|
|
|
weapon_vintagepistol = 0.15,
|
|
|
|
|
weapon_flaregun = 0.15,
|
|
|
|
|
weapon_marksmanpistol = 0.15,
|
|
|
|
|
weapon_revolver = 0.15,
|
|
|
|
|
weapon_revolver_mk2 = 0.15,
|
|
|
|
|
weapon_doubleaction = 0.15,
|
|
|
|
|
weapon_snspistol_mk2 = 0.15,
|
|
|
|
|
weapon_raypistol = 0.15,
|
|
|
|
|
weapon_ceramicpistol = 0.15,
|
|
|
|
|
weapon_navyrevolver = 0.15,
|
|
|
|
|
weapon_gadgetpistol = 0.15,
|
|
|
|
|
weapon_pistolxm3 = 0.15,
|
|
|
|
|
-- Submachine Guns
|
|
|
|
|
weapon_microsmg = 0.15, -- Durability rate for submachine guns
|
|
|
|
|
weapon_smg = 0.15,
|
|
|
|
|
weapon_smg_mk2 = 0.15,
|
|
|
|
|
weapon_assaultsmg = 0.15,
|
|
|
|
|
weapon_combatpdw = 0.15,
|
|
|
|
|
weapon_machinepistol = 0.15,
|
|
|
|
|
weapon_minismg = 0.15,
|
|
|
|
|
weapon_raycarbine = 0.15,
|
|
|
|
|
-- Shotguns
|
|
|
|
|
weapon_pumpshotgun = 0.15, -- Durability rate for shotguns
|
|
|
|
|
weapon_sawnoffshotgun = 0.15,
|
|
|
|
|
weapon_assaultshotgun = 0.15,
|
|
|
|
|
weapon_bullpupshotgun = 0.15,
|
|
|
|
|
weapon_musket = 0.15,
|
|
|
|
|
weapon_heavyshotgun = 0.15,
|
|
|
|
|
weapon_dbshotgun = 0.15,
|
|
|
|
|
weapon_autoshotgun = 0.15,
|
|
|
|
|
weapon_pumpshotgun_mk2 = 0.15,
|
|
|
|
|
weapon_combatshotgun = 0.15,
|
|
|
|
|
-- Assault Rifles
|
|
|
|
|
weapon_assaultrifle = 0.15, -- Durability rate for assault rifles
|
|
|
|
|
weapon_assaultrifle_mk2 = 0.15,
|
|
|
|
|
weapon_carbinerifle = 0.15,
|
|
|
|
|
weapon_carbinerifle_mk2 = 0.15,
|
|
|
|
|
weapon_advancedrifle = 0.15,
|
|
|
|
|
weapon_specialcarbine = 0.15,
|
|
|
|
|
weapon_bullpuprifle = 0.15,
|
|
|
|
|
weapon_compactrifle = 0.15,
|
|
|
|
|
weapon_specialcarbine_mk2 = 0.15,
|
|
|
|
|
weapon_bullpuprifle_mk2 = 0.15,
|
|
|
|
|
weapon_militaryrifle = 0.15,
|
|
|
|
|
weapon_heavyrifle = 0.15,
|
|
|
|
|
-- Light Machine Guns
|
|
|
|
|
weapon_mg = 0.15, -- Durability rate for machine guns
|
|
|
|
|
weapon_combatmg = 0.15,
|
|
|
|
|
weapon_gusenberg = 0.15,
|
|
|
|
|
weapon_combatmg_mk2 = 0.15,
|
|
|
|
|
-- Sniper Rifles
|
|
|
|
|
weapon_sniperrifle = 0.15, -- Durability rate for sniper rifles
|
|
|
|
|
weapon_heavysniper = 0.15,
|
|
|
|
|
weapon_marksmanrifle = 0.15,
|
|
|
|
|
weapon_remotesniper = 0.15,
|
|
|
|
|
weapon_heavysniper_mk2 = 0.15,
|
|
|
|
|
weapon_marksmanrifle_mk2 = 0.15,
|
|
|
|
|
weapon_huntingrifle = 0.15,
|
|
|
|
|
weapon_crossbow = 0.15,
|
|
|
|
|
-- Heavy Weapons
|
|
|
|
|
weapon_rpg = 0.15, -- Durability rate for heavy weapons
|
|
|
|
|
weapon_grenadelauncher = 0.15,
|
|
|
|
|
weapon_grenadelauncher_smoke = 0.15,
|
|
|
|
|
weapon_emplauncher = 0.15,
|
|
|
|
|
weapon_minigun = 0.15,
|
|
|
|
|
weapon_firework = 0.15,
|
|
|
|
|
weapon_railgun = 0.15,
|
|
|
|
|
weapon_hominglauncher = 0.15,
|
|
|
|
|
weapon_compactlauncher = 0.15,
|
|
|
|
|
weapon_rayminigun = 0.15,
|
|
|
|
|
weapon_railgunxm3 = 0.15,
|
|
|
|
|
-- Throwables
|
|
|
|
|
weapon_grenade = 0.15, -- Durability rate for throwables
|
|
|
|
|
weapon_bzgas = 0.15,
|
|
|
|
|
weapon_molotov = 0.15,
|
|
|
|
|
weapon_stickybomb = 0.15,
|
|
|
|
|
weapon_proxmine = 0.15,
|
|
|
|
|
weapon_snowball = 0.15,
|
|
|
|
|
weapon_pipebomb = 0.15,
|
|
|
|
|
weapon_ball = 0.15,
|
|
|
|
|
weapon_smokegrenade = 0.15,
|
|
|
|
|
weapon_flare = 0.15,
|
|
|
|
|
-- Miscellaneous
|
|
|
|
|
weapon_petrolcan = 0.15, -- Durability rate for miscellaneous items
|
|
|
|
|
weapon_fireextinguisher = 0.15,
|
|
|
|
|
weapon_hazardcan = 0.15,
|
|
|
|
|
weapon_fertilizercan = 0.15,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
Weapon Repair Configuration
|
|
|
|
|
This section defines weapon repair points and repair costs, allowing for tailored gameplay
|
|
|
|
|
around weapon maintenance. Configure each repair point's location, set individual costs by
|
|
|
|
|
weapon type, and create a streamlined repair experience for players.
|
|
|
|
|
|
|
|
|
|
Config.WeaponRepairPoints:
|
|
|
|
|
- Add as many repair points as you want, each identified by a unique index.
|
|
|
|
|
- `coords` defines the exact location for each repair point on the map.
|
|
|
|
|
- `IsRepairing` tracks if a weapon is being repaired at this location, to manage availability.
|
|
|
|
|
- `RepairingData` can hold additional data during repairs, useful for real-time repair management.
|
|
|
|
|
|
|
|
|
|
Config.WeaponRepairCosts:
|
|
|
|
|
- Customize repair costs by weapon type, supporting different gameplay economies.
|
|
|
|
|
- Assign a unique price for each weapon category such as pistols, rifles, shotguns, etc.
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
|
|
Config.WeaponRepairItemAddition = 10 -- The amount of weapon repair kits to add to the weapon repair kit item when using it
|
|
|
|
|
|
|
|
|
|
Config.WeaponRepairPoints = {
|
|
|
|
|
[1] = { coords = vector3(478.5390, -1004.7946, 32.9868), IsRepairing = false, RepairingData = {} } -- Default repair point. Add more as needed
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Config.WeaponRepairCosts = {
|
|
|
|
|
['Pistol'] = 1000, -- Cost to repair pistols
|
|
|
|
|
['Submachine Gun'] = 3000, -- Cost to repair submachine guns
|
|
|
|
|
['Light Machine Gun'] = 4000, -- Cost to repair machine guns
|
|
|
|
|
['Assault Rifle'] = 5000, -- Cost to repair rifles
|
|
|
|
|
['Sniper Rifle'] = 7000, -- Cost to repair sniper rifles
|
|
|
|
|
['Shotgun'] = 6000, -- Cost to repair shotguns
|
|
|
|
|
['Heavy Weapons'] = 10000,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
Weapon Stealing System
|
|
|
|
|
This configuration section sets up the weapon part stealing system, allowing players to loot
|
|
|
|
|
various parts from weapons under specific conditions. You can configure what items are considered
|
|
|
|
|
as weapon parts and adjust the chances for successful theft.
|
|
|
|
|
|
|
|
|
|
- Config.CanStealWeaponParts:
|
|
|
|
|
Set this to `true` if you want players to have the ability to steal weapon parts from weapons
|
|
|
|
|
in their possession. This adds a new layer to gameplay by giving opportunities for players
|
|
|
|
|
to gather specific parts used for crafting or repairs.
|
|
|
|
|
|
|
|
|
|
- Config.WeaponPartStealChance:
|
|
|
|
|
This sets the probability (in percentage) for successfully stealing a part from a weapon.
|
|
|
|
|
A higher percentage increases the chances of successful theft, whereas a lower percentage
|
|
|
|
|
makes it more challenging. Adjust this value based on the intended difficulty and reward
|
|
|
|
|
system for stealing parts.
|
|
|
|
|
|
|
|
|
|
- Config.AvailableWeaponParts:
|
|
|
|
|
This list defines the specific items that players can potentially steal when the system is active.
|
|
|
|
|
Each entry represents an item that could be looted, such as 'lockpick', 'repairkit', or 'armor'.
|
|
|
|
|
Add or remove items here to customize what parts are obtainable, making it flexible for different
|
|
|
|
|
gameplay requirements or item needs.
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
|
|
Config.CanStealWeaponParts = false -- Enable or disable the ability to steal weapon parts
|
|
|
|
|
Config.WeaponPartStealChance = 20 -- Probability percentage (1-100) for successful part theft
|
|
|
|
|
Config.AvailableWeaponParts = {
|
|
|
|
|
'electronickit',
|
|
|
|
|
'ironoxide',
|
|
|
|
|
'metalscrap',
|
|
|
|
|
-- Add here more names of items according to your needs
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
Weapon Accessory Configuration Guide:
|
|
|
|
|
This section configures weapon tints and attachments for various weapons.
|
|
|
|
|
Each tint and attachment has a unique label, component identifier, and associated item name.
|
|
|
|
|
|
|
|
|
|
Guidelines for Adding Attachments:
|
|
|
|
|
|
|
|
|
|
1. **Naming Convention**: Use descriptive names like `<name>_weapontint` for tints and `<category>_<attachment>` for other attachments.
|
|
|
|
|
- Avoid standalone names like `"ATTACHMENT"`, instead use names like `red_sight_scope`.
|
|
|
|
|
- Only use `WEAPON` prefix for weapon names. Avoid this in attachment names unless it’s an actual weapon.
|
|
|
|
|
|
|
|
|
|
2. **Adding New Tints or Attachments**: Follow the examples below to ensure consistency.
|
|
|
|
|
Each accessory must have a component, label, item, and, for tints, a tint index.
|
|
|
|
|
|
|
|
|
|
Reference: https://wiki.rage.mp/index.php?title=Weapons_Components for more on weapon components and configurations.
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
|
|
Config.WeaponAttachments = {
|
|
|
|
|
-- PISTOL WEAPONS
|
|
|
|
|
-- Example configuration for WEAPON_PISTOL attachments
|
|
|
|
|
['WEAPON_PISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_PISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_PISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP_02', item = 'pistol_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_PISTOL_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
-- Adding attachments for WEAPON_COMBATPISTOL following similar structure
|
|
|
|
|
['WEAPON_COMBATPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_COMBATPISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_COMBATPISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'pistol_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_COMBATPISTOL_VARMOD_LOWRIDER', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_PISTOL50'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_PISTOL50_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_PISTOL50_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'pistol_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_PISTOL50_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_APPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_APPISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_APPISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'pistol_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_APPISTOL_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_REVOLVER'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_REVOLVER_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_REVOLVER_VARMOD_BOSS', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_SNSPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SNSPISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_SNSPISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
grip = { component = 'COMPONENT_SNSPISTOL_VARMOD_LOWRIDER', item = 'pistol_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_SNSPISTOL_VARMOD_LOWRIDER', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_HEAVYPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_HEAVYPISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_HEAVYPISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'pistol_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_HEAVYPISTOL_VARMOD_LUXE', item = 'pistol_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_HEAVYPISTOL_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_VINTAGEPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_VINTAGEPISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_VINTAGEPISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'pistol_suppressor' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_CERAMICPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_CERAMICPISTOL_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_CERAMICPISTOL_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_CERAMICPISTOL_SUPP', item = 'pistol_suppressor' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_PISTOL_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_PISTOL_MK2_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_PISTOL_MK2_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH_02', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP_02', item = 'pistol_suppressor' },
|
|
|
|
|
compensator = { component = 'COMPONENT_AT_PI_COMP', item = 'pistol_compensator' },
|
|
|
|
|
holoscope = { component = 'COMPONENT_AT_PI_RAIL', item = 'pistol_holoscope' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_02', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_03', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_04', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_05', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_06', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_07', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_08', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_09', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_10', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_11', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_PISTOL_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_REVOLVER_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_REVOLVER_MK2_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_REVOLVER_MK2_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'pistol_flashlight' },
|
|
|
|
|
holoscope = { component = 'COMPONENT_AT_SIGHTS', item = 'pistol_holoscope' },
|
|
|
|
|
smallscope = { component = 'COMPONENT_AT_SCOPE_MACRO_MK2', item = 'pistol_smallscope' },
|
|
|
|
|
compensator = { component = 'COMPONENT_AT_PI_COMP_03', item = 'pistol_compensator' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_02', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_03', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_04', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_05', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_06', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_07', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_08', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_09', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_10', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_11', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_REVOLVER_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_SNSPISTOL_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SNSPISTOL_MK2_CLIP_01', item = 'pistol_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_SNSPISTOL_MK2_CLIP_02', item = 'pistol_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH_03', item = 'pistol_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'pistol_suppressor' },
|
|
|
|
|
compensator = { component = 'COMPONENT_AT_PI_COMP_02', item = 'pistol_compensator' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_02', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_03', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_04', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_05', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_06', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_07', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_08', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_09', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_10', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_11', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_SNSPISTOL_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- SMG WEAPONS
|
|
|
|
|
['WEAPON_MICROSMG'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_MICROSMG_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_MICROSMG_CLIP_02', item = 'smg_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_PI_FLSH', item = 'smg_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MACRO', item = 'smg_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'smg_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_MICROSMG_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_SMG'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SMG_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_SMG_CLIP_02', item = 'smg_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_SMG_CLIP_03', item = 'smg_drum' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'smg_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MACRO_02', item = 'smg_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'smg_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_SMG_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_ASSAULTSMG'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_ASSAULTSMG_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_ASSAULTSMG_CLIP_02', item = 'smg_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'smg_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MACRO', item = 'smg_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'smg_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_ASSAULTSMG_VARMOD_LOWRIDER', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_MINISMG'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_MINISMG_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_MINISMG_CLIP_02', item = 'smg_extendedclip' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_MACHINEPISTOL'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_MACHINEPISTOL_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_MACHINEPISTOL_CLIP_02', item = 'smg_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_MACHINEPISTOL_CLIP_03', item = 'smg_drum' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'smg_suppressor' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_COMBATPDW'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_COMBATPDW_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_COMBATPDW_CLIP_02', item = 'smg_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_COMBATPDW_CLIP_03', item = 'smg_drum' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'smg_flashlight' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'smg_grip' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_SMALL', item = 'smg_scope' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- SMG MK2 WEAPONS
|
|
|
|
|
['WEAPON_SMG_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SMG_MK2_CLIP_01', item = 'smg_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_SMG_MK2_CLIP_02', item = 'smg_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'smg_flashlight' },
|
|
|
|
|
holoscope = { component = 'COMPONENT_AT_SIGHTS_SMG', item = 'smg_holoscope' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_SMALL_SMG_MK2', item = 'smg_scope' },
|
|
|
|
|
drum = { component = 'COMPONENT_SMG_MK2_CLIP_Drum', item = 'smg_drum' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_PI_SUPP', item = 'smg_suppressor' },
|
|
|
|
|
barrel = { component = 'COMPONENT_AT_SB_BARREL_02', item = 'smg_barrel' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_SMG_MK2_CAMO', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_SMG_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_SMG_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_SMG_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_SMG_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_SMG_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_SMG_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_SMG_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_SMG_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_SMG_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_SMG_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- SHOTGUNS
|
|
|
|
|
['WEAPON_PUMPSHOTGUN'] = {
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'shotgun_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_SR_SUPP', item = 'shotgun_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_PUMPSHOTGUN_VARMOD_LOWRIDER', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_SAWNOFFSHOTGUN'] = {
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_SAWNOFFSHOTGUN_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_ASSAULTSHOTGUN'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_ASSAULTSHOTGUN_CLIP_01', item = 'shotgun_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_ASSAULTSHOTGUN_CLIP_02', item = 'shotgun_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'shotgun_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'shotgun_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'shotgun_grip' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_BULLPUPSHOTGUN'] = {
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'shotgun_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'shotgun_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'shotgun_grip' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_HEAVYSHOTGUN'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_HEAVYSHOTGUN_CLIP_01', item = 'shotgun_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_HEAVYSHOTGUN_CLIP_02', item = 'shotgun_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_HEAVYSHOTGUN_CLIP_03', item = 'shotgun_drum' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'shotgun_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'shotgun_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'shotgun_grip' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_COMBATSHOTGUN'] = {
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'shotgun_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'shotgun_suppressor' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_PUMPSHOTGUN_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_01', item = 'shotgun_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_02', item = 'shotgun_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'shotgun_flashlight' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_SR_SUPP_03', item = 'shotgun_suppressor' },
|
|
|
|
|
squaremuzzle = { component = 'COMPONENT_AT_MUZZLE_08', item = 'shotgun_squaredmuzzle' },
|
|
|
|
|
holoscope = { component = 'COMPONENT_AT_SCOPE_SMALL_MK2', item = 'shotgun_holoscope' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_SMALL_MK2', item = 'shotgun_scope' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_PUMPSHOTGUN_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- RIFLES
|
|
|
|
|
['WEAPON_ASSAULTRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_ASSAULTRIFLE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_ASSAULTRIFLE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_ASSAULTRIFLE_CLIP_03', item = 'rifle_drum' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MACRO', item = 'rifle_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'rifle_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'rifle_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_ASSAULTRIFLE_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_CARBINERIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_CARBINERIFLE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_CARBINERIFLE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_CARBINERIFLE_CLIP_03', item = 'rifle_drum' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MEDIUM', item = 'rifle_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'rifle_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'rifle_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_CARBINERIFLE_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_ADVANCEDRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_ADVANCEDRIFLE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_ADVANCEDRIFLE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_SMALL', item = 'rifle_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'rifle_suppressor' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_ADVANCEDRIFLE_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_SPECIALCARBINE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SPECIALCARBINE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_SPECIALCARBINE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_SPECIALCARBINE_CLIP_03', item = 'rifle_drum' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MEDIUM', item = 'rifle_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'rifle_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'rifle_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_SPECIALCARBINE_VARMOD_LOWRIDER', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_BULLPUPRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_BULLPUPRIFLE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_BULLPUPRIFLE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_SMALL', item = 'rifle_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'rifle_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'rifle_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_BULLPUPRIFLE_VARMOD_LOW', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_COMPACTRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_COMPACTRIFLE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_COMPACTRIFLE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
drum = { component = 'COMPONENT_COMPACTRIFLE_CLIP_03', item = 'rifle_drum' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_HEAVYRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_HEAVYRIFLE_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_HEAVYRIFLE_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_MEDIUM', item = 'rifle_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'rifle_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'rifle_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_BULLPUPRIFLE_VARMOD_LOW', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_ASSAULTRIFLE_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
holographic = { component = 'COMPONENT_AT_SIGHTS', item = 'rifle_holoscope' },
|
|
|
|
|
smallscope = { component = 'COMPONENT_AT_SCOPE_MACRO_MK2', item = 'rifle_smallscope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_MEDIUM_MK2', item = 'rifle_largescope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'rifle_suppressor' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_ASSAULTRIFLE_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_CARBINERIFLE_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_CARBINERIFLE_MK2_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_CARBINERIFLE_MK2_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
holographic = { component = 'COMPONENT_AT_SIGHTS', item = 'rifle_holoscope' },
|
|
|
|
|
smallscope = { component = 'COMPONENT_AT_SCOPE_MACRO_MK2', item = 'rifle_smallscope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_MEDIUM_MK2', item = 'rifle_largescope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'rifle_suppressor' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_CARBINERIFLE_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_SPECIALCARBINE_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
holographic = { component = 'COMPONENT_AT_SIGHTS', item = 'rifle_holoscope' },
|
|
|
|
|
smallscope = { component = 'COMPONENT_AT_SCOPE_MACRO_MK2', item = 'rifle_smallscope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_MEDIUM_MK2', item = 'rifle_largescope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'rifle_suppressor' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_SPECIALCARBINE_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_BULLPUPRIFLE_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_01', item = 'rifle_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_02', item = 'rifle_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'rifle_flashlight' },
|
|
|
|
|
holographic = { component = 'COMPONENT_AT_SIGHTS', item = 'rifle_holoscope' },
|
|
|
|
|
smallscope = { component = 'COMPONENT_AT_SCOPE_MACRO_02_MK2', item = 'rifle_smallscope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_SMALL_MK2', item = 'rifle_largescope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'rifle_suppressor' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO', item = 'digital_weapontint' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_BULLPUPRIFLE_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- SNIPERS
|
|
|
|
|
['WEAPON_SNIPERRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_SNIPERRIFLE_CLIP_01', item = 'sniper_defaultclip' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP_02', item = 'sniper_suppressor' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_LARGE', item = 'sniper_scope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_MAX', item = 'sniper_largescope' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
['WEAPON_HEAVYSNIPER'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_HEAVYSNIPER_CLIP_01', item = 'sniper_defaultclip' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_LARGE', item = 'sniper_scope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_MAX', item = 'sniper_largescope' }
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
['WEAPON_MARKSMANRIFLE'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_MARKSMANRIFLE_CLIP_01', item = 'sniper_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_MARKSMANRIFLE_CLIP_02', item = 'sniper_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'sniper_flashlight' },
|
|
|
|
|
scope = { component = 'COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM', item = 'sniper_scope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_AR_SUPP', item = 'sniper_suppressor' },
|
|
|
|
|
grip = { component = 'COMPONENT_AT_AR_AFGRIP', item = 'sniper_grip' },
|
|
|
|
|
luxuryfinish = { component = 'COMPONENT_MARKSMANRIFLE_VARMOD_LUXE', item = 'luxuryfinish_weapontint' }
|
|
|
|
|
},
|
|
|
|
|
['WEAPON_HEAVYSNIPER_MK2'] = {
|
|
|
|
|
defaultclip = { component = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_01', item = 'sniper_defaultclip' },
|
|
|
|
|
extendedclip = { component = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_02', item = 'sniper_extendedclip' },
|
|
|
|
|
flashlight = { component = 'COMPONENT_AT_AR_FLSH', item = 'sniper_flashlight' },
|
|
|
|
|
holographic = { component = 'COMPONENT_AT_SIGHTS', item = 'sniper_holoscope' },
|
|
|
|
|
smallscope = { component = 'COMPONENT_AT_SCOPE_SMALL_MK2', item = 'sniper_smallscope' },
|
|
|
|
|
largescope = { component = 'COMPONENT_AT_SCOPE_LARGE_MK2', item = 'sniper_largescope' },
|
|
|
|
|
suppressor = { component = 'COMPONENT_AT_SR_SUPP_03', item = 'sniper_suppressor' },
|
|
|
|
|
squaredmuzzle = { component = 'COMPONENT_AT_MUZZLE_08', item = 'sniper_squaredmuzzle' },
|
|
|
|
|
barrel = { component = 'COMPONENT_AT_SR_BARREL_02', item = 'sniper_barrel' },
|
|
|
|
|
digicamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO', item = 'weapon_digicamo' },
|
|
|
|
|
brushcamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_02', item = 'brushstroke_weapontint' },
|
|
|
|
|
woodcamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_03', item = 'woodland_weapontint' },
|
|
|
|
|
skullcamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_04', item = 'skull_weapontint' },
|
|
|
|
|
sessantacamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_05', item = 'sessanta_weapontint' },
|
|
|
|
|
perseuscamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_06', item = 'perseus_weapontint' },
|
|
|
|
|
leopardcamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_07', item = 'leopard_weapontint' },
|
|
|
|
|
zebracamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_08', item = 'zebra_weapontint' },
|
|
|
|
|
geocamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_09', item = 'geometric_weapontint' },
|
|
|
|
|
boomcamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_10', item = 'boom_weapontint' },
|
|
|
|
|
patriotcamo = { component = 'COMPONENT_HEAVYSNIPER_MK2_CAMO_IND_01', item = 'patriot_weapontint' }
|
|
|
|
|
}
|
|
|
|
|
-- Additional weapon attachments continue as needed
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
Weapon Tint Configuration and Hash Details
|
|
|
|
|
|
|
|
|
|
This section, `Config.WeaponTints`, allows you to add custom tints and associate textures for each compatible weapon.
|
|
|
|
|
By specifying the weapon hash, texture dictionary (YTD), and texture name, you can define unique looks for each
|
|
|
|
|
weapon type. You can retrieve the weapon hash codes from trusted sources such as the RAGE MP Wiki:
|
|
|
|
|
https://wiki.rage.mp/index.php?title=Weapons or other GTA V-related documentation.
|
|
|
|
|
|
|
|
|
|
Important Fields:
|
|
|
|
|
- `hash`: Unique identifier for each weapon model.
|
|
|
|
|
- `ytd`: Texture dictionary name, defining the collection where the texture resides.
|
|
|
|
|
- `texture`: Specific texture name applied to the weapon.
|
|
|
|
|
|
|
|
|
|
*DO NOT MODIFY* the functions or export structures below unless absolutely necessary. These functions are designed
|
|
|
|
|
for server synchronization and other advanced features, and altering them without full understanding may lead to
|
|
|
|
|
unintended behavior.
|
|
|
|
|
|
|
|
|
|
Tint Definition Example:
|
|
|
|
|
Below is the syntax to add new tint settings:
|
|
|
|
|
[number] = { name = 'Weapon Name', hash = 'WeaponHashCode', ytd = 'TextureDictionary', texture = 'TextureName' }
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
|
|
Config.WeaponTints = {
|
|
|
|
|
-- Pistols
|
|
|
|
|
[1] = { name = 'Pistol', hash = '453432689', ytd = 'w_pi_pistol', texture = 'w_pi_pistol' },
|
|
|
|
|
[2] = { name = 'Pistol Mk II', hash = '3219281620', ytd = 'w_pi_pistolmk2', texture = 'w_pi_pistolmk2' },
|
|
|
|
|
[3] = { name = 'Combat Pistol', hash = '1593441988', ytd = 'w_pi_combatpistol', texture = 'w_pi_combatpistol' },
|
|
|
|
|
[4] = { name = 'Pistol .50', hash = '-1716589765', ytd = 'w_pi_pistol50', texture = 'w_pi_pistol50' },
|
|
|
|
|
[5] = { name = 'SNS Pistol', hash = '-1076751822', ytd = 'w_pi_sns_pistol', texture = 'w_pi_sns_pistol' },
|
|
|
|
|
[6] = { name = 'Heavy Pistol', hash = '-771403250', ytd = 'w_pi_heavypistol', texture = 'w_pi_heavypistol' },
|
|
|
|
|
[7] = { name = 'Vintage Pistol', hash = '137902532', ytd = 'w_pi_vintage_pistol', texture = 'w_pi_vintage_pistol' },
|
|
|
|
|
[8] = { name = 'Marksman Pistol', hash = '-598887786', ytd = 'w_pi_singleshot', texture = 'w_pi_singleshot_dm' },
|
|
|
|
|
[9] = { name = 'Revolver', hash = '-1045183535', ytd = 'w_pi_revolver', texture = 'w_pi_revolver' },
|
|
|
|
|
[10] = { name = 'Stun Gun', hash = '911657153', ytd = 'w_pi_stungun', texture = 'w_pi_stungun' },
|
|
|
|
|
[11] = { name = 'Double-Action Revolver', hash = '-1746263880', ytd = 'w_pi_revolver', texture = 'w_pi_revolver' },
|
|
|
|
|
[12] = { name = 'Navy Revolver', hash = '-2056364401', ytd = 'w_pi_revolver', texture = 'w_pi_revolver' },
|
|
|
|
|
[13] = { name = 'Ceramic Pistol', hash = '727643628', ytd = 'w_pi_ceramic_pistol', texture = 'w_pi_ceramic_pistol' },
|
|
|
|
|
-- Submachine guns and machine guns
|
|
|
|
|
[14] = { name = 'Micro SMG', hash = '324215364', ytd = 'w_sb_microsmg', texture = 'w_sb_microsmg' },
|
|
|
|
|
[15] = { name = 'Machine Pistol', hash = '-619010992', ytd = 'w_sb_compactsmg', texture = 'w_sb_compactsmg' },
|
|
|
|
|
[16] = { name = 'SMG', hash = '736523883', ytd = 'w_sb_smg', texture = 'w_sb_smg' },
|
|
|
|
|
[17] = { name = 'SMG Mk II', hash = '2024373456', ytd = 'w_sb_smgmk2', texture = 'w_sb_smgmk2' },
|
|
|
|
|
[18] = { name = 'Assault SMG', hash = '-270015777', ytd = 'w_sb_assaultsmg', texture = 'w_sb_assaultsmg' },
|
|
|
|
|
[19] = { name = 'Mini SMG', hash = '-1121678507', ytd = 'w_sb_minismg', texture = 'w_sb_minismg_dm' },
|
|
|
|
|
[20] = { name = 'Combat PDW', hash = '171789620', ytd = 'w_sb_pdw', texture = 'w_sb_pdw' },
|
|
|
|
|
-- Assault rifles and carbines
|
|
|
|
|
[21] = { name = 'Assault Rifle', hash = '-1074790547', ytd = 'w_ar_assaultrifle', texture = 'w_ar_assaultrifle' },
|
|
|
|
|
[22] = { name = 'Assault Rifle Mk II', hash = '961495388', ytd = 'w_ar_assaultriflemk2', texture = 'w_ar_assaultriflemk2' },
|
|
|
|
|
[23] = { name = 'Carbine Rifle', hash = '-2084633992', ytd = 'w_ar_carbinerifle', texture = 'w_ar_carbinerifle' },
|
|
|
|
|
[24] = { name = 'Carbine Rifle Mk II', hash = '-86904375', ytd = 'w_ar_carbineriflemk2', texture = 'w_ar_carbineriflemk2' },
|
|
|
|
|
[25] = { name = 'Special Carbine', hash = '-1063057011', ytd = 'w_ar_specialcarbine', texture = 'w_ar_specialcarbine_tint' },
|
|
|
|
|
[26] = { name = 'Special Carbine Mk II', hash = '-1768145561', ytd = 'w_ar_specialcarbine_mk2', texture = 'w_ar_specialcarbine_mk2' },
|
|
|
|
|
[27] = { name = 'Bullpup Rifle', hash = '2132975508', ytd = 'w_ar_bullpuprifle', texture = 'w_ar_bullpuprifle' },
|
|
|
|
|
-- Sniper Rifles
|
|
|
|
|
[28] = { name = 'Sniper Rifle', hash = '100416529', ytd = 'w_sr_sniperrifle', texture = 'w_sr_sniperrifle' },
|
|
|
|
|
[29] = { name = 'Heavy Sniper', hash = '205991906', ytd = 'w_sr_heavysniper', texture = 'w_sr_heavysniper' },
|
|
|
|
|
[30] = { name = 'Heavy Sniper Mk II', hash = '177293209', ytd = 'w_sr_heavysnipermk2', texture = 'w_sr_heavysnipermk2' },
|
|
|
|
|
[31] = { name = 'Marksman Rifle', hash = '-952879014', ytd = 'w_sr_marksmanrifle', texture = 'w_sr_marksmanrifle' },
|
|
|
|
|
-- Shotguns
|
|
|
|
|
[32] = { name = 'Pump Shotgun', hash = '487013001', ytd = 'w_sg_pumpshotgun', texture = 'w_sg_pumpshotgun' },
|
|
|
|
|
[33] = { name = 'Sawed-Off Shotgun', hash = '2017895192', ytd = 'w_sg_sawnoff', texture = 'w_sg_sawnoff' },
|
|
|
|
|
[34] = { name = 'Bullpup Shotgun', hash = '-1654528753', ytd = 'w_sg_bullpupshotgun', texture = 'w_sg_bullpupshotgun' },
|
|
|
|
|
[35] = { name = 'Double Barrel Shotgun', hash = '-275439685', ytd = 'w_sg_doublebarrel', texture = 'w_sg_doublebarrel_dm' },
|
|
|
|
|
-- Others
|
|
|
|
|
[36] = { name = 'Railgun', hash = '1834241177', ytd = 'w_ar_railgun', texture = 'w_ar_railgun' },
|
|
|
|
|
[37] = { name = 'Minigun', hash = '1119849093', ytd = 'w_mg_minigun', texture = 'w_mg_minigun' },
|
|
|
|
|
[38] = { name = 'Widowmaker', hash = '-1238556825', ytd = 'w_mg_sminigun', texture = 'w_mg_sminigun' },
|
|
|
|
|
[39] = { name = 'Unholy Hellbringer', hash = '1198256469', ytd = 'w_ar_carbinerifle', texture = 'w_ar_carbinerifle' },
|
|
|
|
|
-- weapon_pumpshotgun_mk2
|
|
|
|
|
[40] = { name = 'Pump Shotgun Mk II', hash = '1432025498', ytd = 'w_sg_pumpshotgunmk2', texture = 'w_sg_pumpshotgunmk2' },
|
|
|
|
|
-- Additional weapon entries continue as needed
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
**DO NOT MODIFY BELOW**
|
|
|
|
|
|
|
|
|
|
The following code is essential for synchronizing weapon tints and attachments across the server.
|
|
|
|
|
Modifying any part of this section may cause serious issues with the weapon attachment and tint system.
|
|
|
|
|
Please avoid editing or removing any functions, loops, or export structures here unless you have
|
|
|
|
|
a full understanding of their functionality. These configurations ensure the accurate application
|
|
|
|
|
of customizations and are crucial for server stability.
|
|
|
|
|
]]
|
|
|
|
|
|
|
|
|
|
RegisterNetEvent('qb-weapons:getWeaponsAttachments', function(cb)
|
|
|
|
|
cb(Config.WeaponAttachments)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
exports('GetWeaponTints', function()
|
|
|
|
|
return Config.WeaponTints
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
---@type AttachmentItem[]
|
|
|
|
|
Config.WeaponAttachmentItems = {
|
|
|
|
|
-- Rifles
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_suppressor',
|
|
|
|
|
attachment = 'suppressor',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_smallscope',
|
|
|
|
|
attachment = 'smallscope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_grip',
|
|
|
|
|
attachment = 'grip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_defaultclip',
|
|
|
|
|
attachment = 'defaultclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_extendedclip',
|
|
|
|
|
attachment = 'extendedclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_drum',
|
|
|
|
|
attachment = 'drum',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_flashlight',
|
|
|
|
|
attachment = 'flashlight',
|
|
|
|
|
type = 'flash'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_largescope',
|
|
|
|
|
attachment = 'largescope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_holoscope',
|
|
|
|
|
attachment = 'holographic',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'rifle_scope',
|
|
|
|
|
attachment = 'scope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Custom Tints
|
|
|
|
|
{
|
|
|
|
|
item = 'luxuryfinish_weapontint',
|
|
|
|
|
attachment = 'luxuryfinish',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'digital_weapontint',
|
|
|
|
|
attachment = 'digicamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'brushstroke_weapontint',
|
|
|
|
|
attachment = 'brushcamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'woodland_weapontint',
|
|
|
|
|
attachment = 'woodcamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'skull_weapontint',
|
|
|
|
|
attachment = 'skullcamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sessanta_weapontint',
|
|
|
|
|
attachment = 'sessantacamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'perseus_weapontint',
|
|
|
|
|
attachment = 'perseuscamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'leopard_weapontint',
|
|
|
|
|
attachment = 'leopardcamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'zebra_weapontint',
|
|
|
|
|
attachment = 'zebracamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'geometric_weapontint',
|
|
|
|
|
attachment = 'geocamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'boom_weapontint',
|
|
|
|
|
attachment = 'boomcamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'patriot_weapontint',
|
|
|
|
|
attachment = 'patriotcamo',
|
|
|
|
|
type = 'tint'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- Sniper
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_suppressor',
|
|
|
|
|
attachment = 'suppressor',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_scope',
|
|
|
|
|
attachment = 'scope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_defaultclip',
|
|
|
|
|
attachment = 'defaultclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_extendedclip',
|
|
|
|
|
attachment = 'extendedclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_squaredmuzzle',
|
|
|
|
|
attachment = 'squaredmuzzle',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_barrel',
|
|
|
|
|
attachment = 'barrel',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_flashlight',
|
|
|
|
|
attachment = 'flashlight',
|
|
|
|
|
type = 'flash'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_holoscope',
|
|
|
|
|
attachment = 'holographic',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_smallscope',
|
|
|
|
|
attachment = 'smallscope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_largescope',
|
|
|
|
|
attachment = 'largescope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'sniper_grip',
|
|
|
|
|
attachment = 'grip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- Pistol
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_defaultclip',
|
|
|
|
|
attachment = 'clip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_extendedclip',
|
|
|
|
|
attachment = 'extendedclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_flashlight',
|
|
|
|
|
attachment = 'flashlight',
|
|
|
|
|
type = 'flash'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_suppressor',
|
|
|
|
|
attachment = 'suppressor',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_holoscope',
|
|
|
|
|
attachment = 'holoscope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_smallscope',
|
|
|
|
|
attachment = 'scope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'pistol_compensator',
|
|
|
|
|
attachment = 'suppressor',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- SMG
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_defaultclip',
|
|
|
|
|
attachment = 'defaultclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_extendedclip',
|
|
|
|
|
attachment = 'extendedclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_suppressor',
|
|
|
|
|
attachment = 'suppressor',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_drum',
|
|
|
|
|
attachment = 'drum',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_scope',
|
|
|
|
|
attachment = 'scope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'smg_barrel',
|
|
|
|
|
attachment = 'barrel',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- Shotgun
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_defaultclip',
|
|
|
|
|
attachment = 'defaultclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_extendedclip',
|
|
|
|
|
attachment = 'extendedclip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_flashlight',
|
|
|
|
|
attachment = 'flashlight',
|
|
|
|
|
type = 'flash'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_suppressor',
|
|
|
|
|
attachment = 'suppressor',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_grip',
|
|
|
|
|
attachment = 'grip',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_drum',
|
|
|
|
|
attachment = 'drum',
|
|
|
|
|
type = 'clip'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_squaredmuzzle',
|
|
|
|
|
attachment = 'squaredmuzzle',
|
|
|
|
|
type = 'suppressor'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_holoscope',
|
|
|
|
|
attachment = 'holographic',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'shotgun_smallscope',
|
|
|
|
|
attachment = 'smallscope',
|
|
|
|
|
type = 'scope'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
-- Tints for every weapon
|
|
|
|
|
{
|
|
|
|
|
attachment = 'black_weapontint',
|
|
|
|
|
label = 'Black Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'black_weapontint',
|
|
|
|
|
tint = 0,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'green_weapontint',
|
|
|
|
|
label = 'Green Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'green_weapontint',
|
|
|
|
|
tint = 1,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'gold_weapontint',
|
|
|
|
|
label = 'Gold Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'gold_weapontint',
|
|
|
|
|
tint = 2,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'pink_weapontint',
|
|
|
|
|
label = 'Pink Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'pink_weapontint',
|
|
|
|
|
tint = 3,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'army_weapontint',
|
|
|
|
|
label = 'Army Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'army_weapontint',
|
|
|
|
|
tint = 4,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'lspd_weapontint',
|
|
|
|
|
label = 'LSPD Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'lspd_weapontint',
|
|
|
|
|
tint = 5,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'orange_weapontint',
|
|
|
|
|
label = 'Orange Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'orange_weapontint',
|
|
|
|
|
tint = 6,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
attachment = 'plat_weapontint',
|
|
|
|
|
label = 'Platinum Tint',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
item = 'plat_weapontint',
|
|
|
|
|
tint = 7,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
item = 'weapontint_url',
|
|
|
|
|
attachment = 'weapontint_url',
|
|
|
|
|
type = 'tint',
|
|
|
|
|
isUrlTint = true,
|
|
|
|
|
tint = -1,
|
|
|
|
|
forEveryWeapon = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local weaponTints = table.deepclone(table.filter(Config.WeaponAttachmentItems, function(tint)
|
|
|
|
|
return tint.type == 'tint'
|
|
|
|
|
end))
|
|
|
|
|
for k in pairs(Config.WeaponAttachments) do
|
|
|
|
|
for _, x in pairs(Config.WeaponAttachmentItems) do
|
|
|
|
|
if x.forEveryWeapon then
|
|
|
|
|
Config.WeaponAttachments[k][x.item] = x
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---@return AttachmentItem[]
|
|
|
|
|
function GetConfigTints()
|
|
|
|
|
return weaponTints
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
exports('getConfigWeaponTints', GetConfigTints)
|
|
|
|
|
|
|
|
|
|
exports('GetWeaponAttachments', function()
|
|
|
|
|
return Config.WeaponAttachments
|
|
|
|
|
end)
|