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 | c3 | c4 | Note |
|---|---|---|---|---|---|---|---|---|
| 301 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_B_5 | |||||
| 302 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_B_6 | |||||
| 303 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_B_7 | |||||
| 304 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_B_8 | |||||
| 305 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_1 | |||||
| 306 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_2 | |||||
| 307 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_3 | |||||
| 308 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_4 | |||||
| 309 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_5 | |||||
| 310 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_6 | |||||
| 311 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_7 | |||||
| 312 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_8 | |||||
| 313 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_C_9 | |||||
| 314 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_1 | |||||
| 315 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_2 | |||||
| 316 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_3 | |||||
| 317 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_4 | |||||
| 318 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_5 | |||||
| 319 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_6 | |||||
| 320 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_7 | |||||
| 321 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_D_8 | |||||
| 322 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_POLKADOT_DEFAULT | |||||
| 323 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_POLKADOT_1 | |||||
| 324 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_POLKADOT_2 | |||||
| 325 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_POLKADOT_3 | |||||
| 326 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_POLKADOT_4 | |||||
| 327 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_POLKADOT_5 | |||||
| 328 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_NATIVE_DEFAULT | |||||
| 329 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_NATIVE_1 | |||||
| 330 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_NATIVE_2 | |||||
| 331 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_NATIVE_3 | |||||
| 332 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_NATIVE_4 | |||||
| 333 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_NATIVE_5 | |||||
| 334 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_TARTAN_DEFAULT | |||||
| 335 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_TARTAN_1 | |||||
| 336 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_TARTAN_2 | |||||
| 337 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_TARTAN_3 | |||||
| 338 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_TARTAN_4 | |||||
| 339 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_TARTAN_5 | |||||
| 340 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_1 | |||||
| 341 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_2 | |||||
| 342 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_3 | |||||
| 343 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_4 | |||||
| 344 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_5 | |||||
| 345 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_6 | |||||
| 346 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_7 | |||||
| 347 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_8 | |||||
| 348 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_9 | |||||
| 349 | LONGARM | WRAP_TINT | COMPONENT_LONGARM_WRAP_TINT_E_10 | |||||
| 350 | LONGARM | STRAP | COMPONENT_REPEATER_STRAP01 | |||||
| 351 | LONGARM | STRAP | COMPONENT_RIFLE_CS_STRAP01 | |||||
| 352 | LONGARM | STRAP | COMPONENT_REPEATER_CLOTH_STRAP01 | |||||
| 353 | LONGARM | STRAP | COMPONENT_LEFTSHOULDER_STRAP01 | |||||
| 354 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_1 | |||||
| 355 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_2 | |||||
| 356 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_3 | |||||
| 357 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_4 | |||||
| 358 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_5 | |||||
| 359 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_6 | |||||
| 360 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_7 | |||||
| 361 | LONGARM | STRAP_TINT | COMPONENT_LONGARM_STRAP_TINT_A_8 | |||||
| 362 | LONGARM | BARREL_RIFLING | COMPONENT_LONGARM_BARREL_RIFLING_1 | |||||
| 363 | LONGARM | SCOPE | COMPONENT_RIFLE_SCOPE02 | |||||
| 364 | LONGARM | SCOPE | COMPONENT_RIFLE_SCOPE03 | |||||
| 365 | LONGARM | SCOPE | COMPONENT_RIFLE_SCOPE04 | |||||
| 366 | SHOTGUN | CYLINDER_ENGRAVING | COMPONENT_SHOTGUN_CYLINDER_ENGRAVING_1 | COMPONENT_SHOTGUN_CYLINDER_ENGRAVING_2 | COMPONENT_SHOTGUN_CYLINDER_ENGRAVING_3 | COMPONENT_SHOTGUN_CYLINDER_ENGRAVING_4 | ||
| 367 | SHOTGUN | FRAME_ENGRAVING | COMPONENT_SHOTGUN_FRAME_ENGRAVING_1 | COMPONENT_SHOTGUN_FRAME_ENGRAVING_2 | COMPONENT_SHOTGUN_FRAME_ENGRAVING_3 | COMPONENT_SHOTGUN_FRAME_ENGRAVING_4 | ||
| 368 | SHOTGUN | BARREL_ENGRAVING | COMPONENT_SHOTGUN_BARREL_ENGRAVING_1 | COMPONENT_SHOTGUN_BARREL_ENGRAVING_2 | COMPONENT_SHOTGUN_BARREL_ENGRAVING_3 | COMPONENT_SHOTGUN_BARREL_ENGRAVING_4 | ||
| 369 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_7 | |||||
| 370 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_5 | |||||
| 371 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_6 | |||||
| 372 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_3 | |||||
| 373 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_1 | |||||
| 374 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_2 | |||||
| 375 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_8 | |||||
| 376 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_4 | |||||
| 377 | MELEE_BLADE | MELEE_BLADE_MATERIAL | COMPONENT_MELEE_BLADE_MATERIAL_9 | |||||
| 378 | MELEE_BLADE | MELEE_BLADE_ENGRAVING | COMPONENT_MELEE_BLADE_ENGRAVING_1 | |||||
| 379 | MELEE_BLADE | MELEE_BLADE_ENGRAVING | COMPONENT_MELEE_BLADE_ENGRAVING_2 | |||||
| 380 | MELEE_BLADE | MELEE_BLADE_ENGRAVING | COMPONENT_MELEE_BLADE_ENGRAVING_3 | |||||
| 381 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_1 | |||||
| 382 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_2 | |||||
| 383 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_3 | |||||
| 384 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_4 | |||||
| 385 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_5 | |||||
| 386 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_6 | |||||
| 387 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_7 | |||||
| 388 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_8 | |||||
| 389 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_9 | |||||
| 390 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_11 | |||||
| 391 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_12 | |||||
| 392 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_13 | |||||
| 393 | MELEE_BLADE | MELEE_BLADE_ENGRAVING_MATERIAL | COMPONENT_MELEE_BLADE_ENGRAVING_MATERIAL_14 | |||||
| 394 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_1 | |||||
| 395 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_2 | |||||
| 396 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_3 | |||||
| 397 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_4 | |||||
| 398 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_5 | |||||
| 399 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_6 | |||||
| 400 | MELEE_BLADE | GRIP_TINT | COMPONENT_MELEE_GRIP_TINT_A_7 |