Weapon components
Notes from the author
Weapon components fall into two groups: "model-specific" and "shared". "Shared" are divided into "shortarm", "longarm",
"shotgun" and "melee_blade".
Be careful, the "FRAME_VERTDATA" component breaks colors for other components. You must remove it for the other
components to work.
Example. Create weapon object, load weapon asset (with native 0x72D4CB5DB927009C) if your ped dont equip this type of weapon yet, and then :
local entity_id = ENTITY_ID_HERE -- WEAPON_REVOLVER_CATTLEMAN object id here or ped with equipped WEAPON_REVOLVER_CATTLEMAN
local weapon_object_model_hash = GetHashKey("WEAPON_REVOLVER_CATTLEMAN")
local weapon_component_hash1 = GetHashKey("COMPONENT_REVOLVER_CATTLEMAN_BARREL_LONG") -- model-specific weapon component
local weapon_component_hash2 = GetHashKey("COMPONENT_SHORTARM_BARREL_MATERIAL_7") -- shared weapon component
local weapon_component_hash3 = GetHashKey("COMPONENT_SHORTARM_BARREL_ENGRAVING_2") -- shared weapon component
local weapon_component_hash4 = GetHashKey("COMPONENT_SHORTARM_BARREL_ENGRAVING_MATERIAL_3") -- shared weapon component
local function apply_weapon_component(weapon_component_hash)
local weapon_component_model_hash = Citizen.InvokeNative(0x59DE03442B6C9598,weapon_component_hash) -- GetWeaponComponentTypeModel
if weapon_component_model_hash and weapon_component_model_hash ~= 0 then
RequestModel(weapon_component_model_hash)
local i = 0
while not HasModelLoaded(weapon_component_model_hash) and i <= 300 do
i = i + 1
Citizen.Wait(0)
end
if HasModelLoaded(weapon_component_model_hash) then
Citizen.InvokeNative(0x74C9090FDD1BB48E,entity_id,weapon_component_hash, weapon_object_model_hash, true) -- GiveWeaponComponentToEntity
SetModelAsNoLongerNeeded(weapon_component_model_hash)
end
end
end
apply_weapon_component(weapon_component_hash1)
apply_weapon_component(weapon_component_hash2)
apply_weapon_component(weapon_component_hash3)
apply_weapon_component(weapon_component_hash4)
To remove weapon component:
if Citizen.InvokeNative(0x76A18844E743BF91,entity_id, GetHashKey("COMPONENT_SHORTARM_BARREL_ENGRAVING_2") ) then -- HasWeaponGotWeaponComponent
Citizen.InvokeNative(0xF7D82B0D66777611,entity_id, GetHashKey("COMPONENT_SHORTARM_BARREL_ENGRAVING_2") ) -- RemoveWeaponComponentFromWeaponObject
end
local weapon__to__shared_group_of_components = {
["WEAPON_BOW"] = {},
["WEAPON_FISHINGROD"] = {},
["WEAPON_KIT_BINOCULARS"] = {},
["WEAPON_KIT_CAMERA"] = {},
["WEAPON_KIT_METAL_DETECTOR"] = {},
["WEAPON_LASSO"] = {},
["WEAPON_MELEE_CLEAVER"] = {"MELEE_BLADE",},
["WEAPON_MELEE_DAVY_LANTERN"] = {},
["WEAPON_MELEE_HATCHET"] = {"MELEE_BLADE",},
["WEAPON_MELEE_HATCHET_DOUBLE_BIT"] = {"MELEE_BLADE",},
["WEAPON_MELEE_HATCHET_HUNTER"] = {"MELEE_BLADE",},
["WEAPON_MELEE_KNIFE"] = {"MELEE_BLADE",},
["WEAPON_MELEE_KNIFE_JAWBONE"] = {"MELEE_BLADE",},
["WEAPON_MELEE_KNIFE_SEAN"] = {"MELEE_BLADE",},
["WEAPON_MELEE_LANTERN_ELECTRIC"] = {},
["WEAPON_MELEE_MACHETE"] = {"MELEE_BLADE",},
["WEAPON_MELEE_TORCH"] = {},
["WEAPON_PISTOL_M1899"] = {"SHORTARM",},
["WEAPON_PISTOL_MAUSER"] = {"SHORTARM",},
["WEAPON_PISTOL_SEMIAUTO"] = {"SHORTARM",},
["WEAPON_PISTOL_VOLCANIC"] = {"SHORTARM",},
["WEAPON_REPEATER_CARBINE"] = {"LONGARM",},
["WEAPON_REPEATER_EVANS"] = {"LONGARM",},
["WEAPON_REPEATER_HENRY"] = {"LONGARM",},
["WEAPON_REPEATER_WINCHESTER"] = {"LONGARM",},
["WEAPON_REVOLVER_CATTLEMAN"] = {"SHORTARM",},
["WEAPON_REVOLVER_CATTLEMAN_DUALWIELD"] = {"SHORTARM",},
["WEAPON_REVOLVER_CATTLEMAN_MEXICAN"] = {"SHORTARM",},
["WEAPON_REVOLVER_DOUBLEACTION"] = {"SHORTARM",},
["WEAPON_REVOLVER_DOUBLEACTION_GAMBLER"] = {"SHORTARM",},
["WEAPON_REVOLVER_LEMAT"] = {"SHORTARM",},
["WEAPON_REVOLVER_NAVY_CROSSOVER"] = {"SHORTARM",},
["WEAPON_REVOLVER_SCHOFIELD"] = {"SHORTARM",},
["WEAPON_RIFLE_BOLTACTION"] = {"LONGARM",},
["WEAPON_RIFLE_SPRINGFIELD"] = {"LONGARM",},
["WEAPON_RIFLE_VARMINT"] = {"LONGARM",},
["WEAPON_SHOTGUN_DOUBLEBARREL"] = {"LONGARM",},
["WEAPON_SHOTGUN_DOUBLEBARREL_EXOTIC"] = {"LONGARM",},
["WEAPON_SHOTGUN_FOLDING"] = {"LONGARM","SHOTGUN",},
["WEAPON_SHOTGUN_PUMP"] = {"LONGARM","SHOTGUN",},
["WEAPON_SHOTGUN_REPEATING"] = {"LONGARM","SHOTGUN",},
["WEAPON_SHOTGUN_SAWEDOFF"] = {"SHORTARM","SHOTGUN",},
["WEAPON_SHOTGUN_SEMIAUTO"] = {"LONGARM","SHOTGUN",},
["WEAPON_SNIPERRIFLE_CARCANO"] = {"LONGARM",},
["WEAPON_SNIPERRIFLE_ROLLINGBLOCK"] = {"LONGARM",},
["WEAPON_THROWN_BOLAS_HAWKMOTH"] = {},
["WEAPON_THROWN_BOLAS_INTERTWINED"] = {},
["WEAPON_THROWN_BOLAS_IRONSPIKED"] = {},
["WEAPON_THROWN_DYNAMITE"] = {},
["WEAPON_THROWN_MOLOTOV"] = {},
["WEAPON_THROWN_THROWING_KNIVES"] = {},
["WEAPON_THROWN_TOMAHAWK"] = {},
["WEAPON_THROWN_TOMAHAWK_ANCIENT"] = {},
["WEAPON_KIT_CAMERA_ADVANCED"] = {},
["WEAPON_MELEE_MACHETE_HORROR"] = {"MELEE_BLADE",},
["WEAPON_BOW_IMPROVED"] = {},
["WEAPON_RIFLE_ELEPHANT"] = {"LONGARM",},
["WEAPON_REVOLVER_NAVY"] = {"SHORTARM",},
["WEAPON_BOW_IMPROVED_MP"] = {},
["WEAPON_LASSO_REINFORCED"] = {},
["WEAPON_KIT_BINOCULARS_IMPROVED"] = {},
["WEAPON_MELEE_KNIFE_TRADER"] = {"MELEE_BLADE",},
["WEAPON_MELEE_MACHETE_COLLECTOR"] = {"MELEE_BLADE",},
["WEAPON_MOONSHINEJUG_MP"] = {},
["WEAPON_THROWN_BOLAS"] = {},
["WEAPON_THROWN_POISONBOTTLE"] = {},
["WEAPON_MELEE_KNIFE_HORROR"] = {"MELEE_BLADE",},
["WEAPON_MELEE_KNIFE_RUSTIC"] = {"MELEE_BLADE",},
["WEAPON_MELEE_LANTERN_HALLOWEEN"] = {},
}| # | key | key2 | item | c1 | c2 | Note |
|---|---|---|---|---|---|---|
| 101 | WEAPON_REVOLVER_NAVY | SIGHT | COMPONENT_REVOLVER_NAVY_SIGHT_WIDE | |||
| 102 | WEAPON_REVOLVER_NAVY | SIGHT | COMPONENT_REVOLVER_NAVY_SIGHT_CROSSOVER | |||
| 103 | WEAPON_REPEATER_CARBINE | GRIP | COMPONENT_REPEATER_CARBINE_GRIP | |||
| 104 | WEAPON_REPEATER_CARBINE | GRIP | COMPONENT_REPEATER_CARBINE_GRIP_IRONWOOD | |||
| 105 | WEAPON_REPEATER_CARBINE | GRIP | COMPONENT_REPEATER_CARBINE_GRIP_ENGRAVED | |||
| 106 | WEAPON_REPEATER_CARBINE | GRIP | COMPONENT_REPEATER_CARBINE_GRIP_BURLED | |||
| 107 | WEAPON_REPEATER_CARBINE | SIGHT | COMPONENT_REPEATER_CARBINE_SIGHT_NARROW | |||
| 108 | WEAPON_REPEATER_CARBINE | SIGHT | COMPONENT_REPEATER_CARBINE_SIGHT_WIDE | |||
| 109 | WEAPON_REPEATER_CARBINE | CLIP | COMPONENT_REPEATER_CARBINE_CLIP | |||
| 110 | WEAPON_REPEATER_CARBINE | TUBE | COMPONENT_REPEATER_CARBINE_TUBE | |||
| 111 | WEAPON_REPEATER_CARBINE | WRAP | COMPONENT_REPEATER_CARBINE_WRAP1 | |||
| 112 | WEAPON_REPEATER_CARBINE | WRAP | COMPONENT_REPEATER_CARBINE_WRAP2 | |||
| 113 | WEAPON_REPEATER_CARBINE | WRAP | COMPONENT_REPEATER_CARBINE_WRAP3 | |||
| 114 | WEAPON_REPEATER_CARBINE | WRAP | COMPONENT_REPEATER_CARBINE_WRAP4 | |||
| 115 | WEAPON_REPEATER_CARBINE | WRAP | COMPONENT_REPEATER_CARBINE_WRAP5 | |||
| 116 | WEAPON_REPEATER_CARBINE | WRAP | COMPONENT_REPEATER_CARBINE_WRAP6 | |||
| 117 | WEAPON_REPEATER_HENRY | GRIP | COMPONENT_REPEATER_HENRY_GRIP | |||
| 118 | WEAPON_REPEATER_HENRY | GRIP | COMPONENT_REPEATER_HENRY_GRIP_IRONWOOD | |||
| 119 | WEAPON_REPEATER_HENRY | GRIP | COMPONENT_REPEATER_HENRY_GRIP_ENGRAVED | |||
| 120 | WEAPON_REPEATER_HENRY | GRIP | COMPONENT_REPEATER_HENRY_GRIP_BURLED | |||
| 121 | WEAPON_REPEATER_HENRY | SIGHT | COMPONENT_REPEATER_HENRY_SIGHT_NARROW | |||
| 122 | WEAPON_REPEATER_HENRY | SIGHT | COMPONENT_REPEATER_HENRY_SIGHT_WIDE | |||
| 123 | WEAPON_REPEATER_HENRY | WRAP | COMPONENT_REPEATER_HENRY_WRAP1 | |||
| 124 | WEAPON_REPEATER_HENRY | WRAP | COMPONENT_REPEATER_HENRY_WRAP2 | |||
| 125 | WEAPON_REPEATER_HENRY | WRAP | COMPONENT_REPEATER_HENRY_WRAP3 | |||
| 126 | WEAPON_REPEATER_HENRY | WRAP | COMPONENT_REPEATER_HENRY_WRAP4 | |||
| 127 | WEAPON_REPEATER_HENRY | WRAP | COMPONENT_REPEATER_HENRY_WRAP5 | |||
| 128 | WEAPON_REPEATER_HENRY | WRAP | COMPONENT_REPEATER_HENRY_WRAP6 | |||
| 129 | WEAPON_REPEATER_EVANS | GRIP | COMPONENT_REPEATER_EVANS_GRIP | |||
| 130 | WEAPON_REPEATER_EVANS | GRIP | COMPONENT_REPEATER_EVANS_GRIP_IRONWOOD | |||
| 131 | WEAPON_REPEATER_EVANS | GRIP | COMPONENT_REPEATER_EVANS_GRIP_ENGRAVED | |||
| 132 | WEAPON_REPEATER_EVANS | GRIP | COMPONENT_REPEATER_EVANS_GRIP_BURLED | |||
| 133 | WEAPON_REPEATER_EVANS | GRIP | COMPONENT_REPEATER_EVANS_GRIP_WINTER | |||
| 134 | WEAPON_REPEATER_EVANS | SIGHT | COMPONENT_REPEATER_EVANS_SIGHT_NARROW | |||
| 135 | WEAPON_REPEATER_EVANS | SIGHT | COMPONENT_REPEATER_EVANS_SIGHT_WIDE | |||
| 136 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP | |||
| 137 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP2 | |||
| 138 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP3 | |||
| 139 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP4 | |||
| 140 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP5 | |||
| 141 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP6 | |||
| 142 | WEAPON_REPEATER_EVANS | WRAP | COMPONENT_REPEATER_EVANS_WRAP_WINTER | |||
| 143 | WEAPON_REPEATER_EVANS | FRAME_ENGRAVING | COMPONENT_LONGARM_ROLE_ENGRAVING_EVANS_WINTER | |||
| 144 | WEAPON_REPEATER_WINCHESTER | GRIP | COMPONENT_REPEATER_WINCHESTER_GRIP | |||
| 145 | WEAPON_REPEATER_WINCHESTER | GRIP | COMPONENT_REPEATER_WINCHESTER_GRIP_IRONWOOD | |||
| 146 | WEAPON_REPEATER_WINCHESTER | GRIP | COMPONENT_REPEATER_WINCHESTER_GRIP_ENGRAVED | |||
| 147 | WEAPON_REPEATER_WINCHESTER | GRIP | COMPONENT_REPEATER_WINCHESTER_GRIP_COLLECTOR | |||
| 148 | WEAPON_REPEATER_WINCHESTER | GRIP | COMPONENT_REPEATER_WINCHESTER_GRIP_BURLED | |||
| 149 | WEAPON_REPEATER_WINCHESTER | SIGHT | COMPONENT_REPEATER_WINCHESTER_SIGHT_NARROW | |||
| 150 | WEAPON_REPEATER_WINCHESTER | SIGHT | COMPONENT_REPEATER_WINCHESTER_SIGHT_WIDE | |||
| 151 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP1 | |||
| 152 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP2 | |||
| 153 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP3 | |||
| 154 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP4 | |||
| 155 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP5 | |||
| 156 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP6 | |||
| 157 | WEAPON_REPEATER_WINCHESTER | WRAP | COMPONENT_REPEATER_WINCHESTER_WRAP_COLLECTOR | |||
| 158 | WEAPON_REPEATER_WINCHESTER | FRAME_VERTDATA | COMPONENT_LONGARM_FRAME_ENGRAVING_WINCHESTER_COLLECTOR | |||
| 159 | WEAPON_RIFLE_VARMINT | GRIP | COMPONENT_RIFLE_VARMINT_GRIP | |||
| 160 | WEAPON_RIFLE_VARMINT | GRIP | COMPONENT_RIFLE_VARMINT_GRIP_ENGRAVED | |||
| 161 | WEAPON_RIFLE_VARMINT | GRIP | COMPONENT_RIFLE_VARMINT_GRIP_IRONWOOD | |||
| 162 | WEAPON_RIFLE_VARMINT | GRIP | COMPONENT_RIFLE_VARMINT_GRIP_NATURALIST | |||
| 163 | WEAPON_RIFLE_VARMINT | GRIP | COMPONENT_RIFLE_VARMINT_GRIP_BURLED | |||
| 164 | WEAPON_RIFLE_VARMINT | SIGHT | COMPONENT_REPEATER_PUMPACTION_SIGHT_NARROW | |||
| 165 | WEAPON_RIFLE_VARMINT | SIGHT | COMPONENT_REPEATER_PUMPACTION_SIGHT_WIDE | |||
| 166 | WEAPON_RIFLE_VARMINT | SIGHT | COMPONENT_RIFLE_VARMINT_SIGHT_NATURALIST | |||
| 167 | WEAPON_RIFLE_VARMINT | CLIP | COMPONENT_RIFLE_VARMINT_CLIP | |||
| 168 | WEAPON_RIFLE_VARMINT | CLIP | COMPONENT_RIFLE_VARMINT_CLIP_ENGRAVED | |||
| 169 | WEAPON_RIFLE_VARMINT | CLIP | COMPONENT_RIFLE_VARMINT_CLIP_IRONWOOD | |||
| 170 | WEAPON_RIFLE_VARMINT | CLIP | COMPONENT_RIFLE_VARMINT_CLIP_NATURALIST | |||
| 171 | WEAPON_RIFLE_VARMINT | CLIP | COMPONENT_RIFLE_VARMINT_CLIP_BURLED | |||
| 172 | WEAPON_RIFLE_VARMINT | WRAP | COMPONENT_RIFLE_VARMINT_WRAP1 | |||
| 173 | WEAPON_RIFLE_VARMINT | WRAP | COMPONENT_RIFLE_VARMINT_WRAP2 | |||
| 174 | WEAPON_RIFLE_VARMINT | WRAP | COMPONENT_RIFLE_VARMINT_WRAP3 | |||
| 175 | WEAPON_RIFLE_VARMINT | WRAP | COMPONENT_RIFLE_VARMINT_WRAP4 | |||
| 176 | WEAPON_RIFLE_VARMINT | WRAP | COMPONENT_RIFLE_VARMINT_WRAP5 | |||
| 177 | WEAPON_RIFLE_VARMINT | WRAP | COMPONENT_RIFLE_VARMINT_WRAP6 | |||
| 178 | WEAPON_RIFLE_VARMINT | FRAME_VERTDATA | COMPONENT_LONGARM_ROLE_ENGRAVING_VARMINT_NATURALIST | |||
| 179 | WEAPON_RIFLE_BOLTACTION | GRIP | COMPONENT_RIFLE_BOLTACTION_GRIP | |||
| 180 | WEAPON_RIFLE_BOLTACTION | GRIP | COMPONENT_RIFLE_BOLTACTION_GRIP_IRONWOOD | |||
| 181 | WEAPON_RIFLE_BOLTACTION | GRIP | COMPONENT_RIFLE_BOLTACTION_GRIP_ENGRAVED | |||
| 182 | WEAPON_RIFLE_BOLTACTION | GRIP | COMPONENT_RIFLE_BOLTACTION_GRIP_BOUNTY | |||
| 183 | WEAPON_RIFLE_BOLTACTION | GRIP | COMPONENT_RIFLE_BOLTACTION_GRIP_BURLED | |||
| 184 | WEAPON_RIFLE_BOLTACTION | SIGHT | COMPONENT_RIFLE_BOLTACTION_SIGHT_WIDE | |||
| 185 | WEAPON_RIFLE_BOLTACTION | SIGHT | COMPONENT_RIFLE_BOLTACTION_SIGHT_NARROW | |||
| 186 | WEAPON_RIFLE_BOLTACTION | WRAP | COMPONENT_RIFLE_BOLTACTION_WRAP | |||
| 187 | WEAPON_RIFLE_BOLTACTION | WRAP | COMPONENT_RIFLE_BOLTACTION_WRAP2 | |||
| 188 | WEAPON_RIFLE_BOLTACTION | WRAP | COMPONENT_RIFLE_BOLTACTION_WRAP3 | |||
| 189 | WEAPON_RIFLE_BOLTACTION | WRAP | COMPONENT_RIFLE_BOLTACTION_WRAP4 | |||
| 190 | WEAPON_RIFLE_BOLTACTION | WRAP | COMPONENT_RIFLE_BOLTACTION_WRAP5 | |||
| 191 | WEAPON_RIFLE_BOLTACTION | WRAP | COMPONENT_RIFLE_BOLTACTION_WRAP6 | |||
| 192 | WEAPON_RIFLE_BOLTACTION | FRAME_VERTDATA | COMPONENT_LONGARM_FRAME_ENGRAVING_BOLTACTION_BOUNTY | |||
| 193 | WEAPON_RIFLE_ELEPHANT | BARREL | COMPONENT_RIFLE_ELEPHANT_BARREL_SHORT | |||
| 194 | WEAPON_RIFLE_ELEPHANT | BARREL | COMPONENT_RIFLE_ELEPHANT_BARREL_LONG | |||
| 195 | WEAPON_RIFLE_ELEPHANT | GRIP | COMPONENT_RIFLE_ELEPHANT_GRIP | |||
| 196 | WEAPON_RIFLE_ELEPHANT | GRIP | COMPONENT_RIFLE_ELEPHANT_GRIP_IRONWOOD | |||
| 197 | WEAPON_RIFLE_ELEPHANT | GRIP | COMPONENT_RIFLE_ELEPHANT_GRIP_ENGRAVED | |||
| 198 | WEAPON_RIFLE_ELEPHANT | GRIP | COMPONENT_RIFLE_ELEPHANT_GRIP_BURLED | |||
| 199 | WEAPON_RIFLE_ELEPHANT | MAG | COMPONENT_RIFLE_ELEPHANT_MAG | |||
| 200 | WEAPON_RIFLE_ELEPHANT | MAG | COMPONENT_RIFLE_ELEPHANT_MAG_IRONWOOD |