diff --git a/resources/[inventory]/cs_shops/ui/image/airsoft_bullets.png b/resources/[inventory]/cs_shops/ui/image/airsoft_bullets.png
new file mode 100644
index 000000000..ec9bf17ff
Binary files /dev/null and b/resources/[inventory]/cs_shops/ui/image/airsoft_bullets.png differ
diff --git a/resources/[inventory]/cs_shops/ui/image/weapon_airsoftglock20.png b/resources/[inventory]/cs_shops/ui/image/weapon_airsoftglock20.png
new file mode 100644
index 000000000..4ba9aafa5
Binary files /dev/null and b/resources/[inventory]/cs_shops/ui/image/weapon_airsoftglock20.png differ
diff --git a/resources/[inventory]/inventory_images/images/airsoft_bullets.png b/resources/[inventory]/inventory_images/images/airsoft_bullets.png
new file mode 100644
index 000000000..ec9bf17ff
Binary files /dev/null and b/resources/[inventory]/inventory_images/images/airsoft_bullets.png differ
diff --git a/resources/[inventory]/inventory_images/images/weapon_airsoftglock20.png b/resources/[inventory]/inventory_images/images/weapon_airsoftglock20.png
new file mode 100644
index 000000000..4ba9aafa5
Binary files /dev/null and b/resources/[inventory]/inventory_images/images/weapon_airsoftglock20.png differ
diff --git a/resources/[inventory]/tgiann-inventory/configs/configAmmo.lua b/resources/[inventory]/tgiann-inventory/configs/configAmmo.lua
index 79cfae8b4..6258b0554 100644
--- a/resources/[inventory]/tgiann-inventory/configs/configAmmo.lua
+++ b/resources/[inventory]/tgiann-inventory/configs/configAmmo.lua
@@ -62,6 +62,14 @@ config.ammo = {
ammo = 120, -- Only works on ammoSystem 1
maxAmmoInWeapon = 250 -- Only works on ammoSystem 1
},
+ {
+ ammoType = "AMMO_AIRSOFT",
+ item = "airsoft_bullets",
+ ammo = 30, -- Only works on ammoSystem 1
+ maxAmmoInWeapon = 250 -- Only works on ammoSystem 1
+ },
+
+
-- POLICE
{
ammoType = "AMMO_POLICE_STUNGUN",
diff --git a/resources/[inventory]/tgiann-inventory/items/items.lua b/resources/[inventory]/tgiann-inventory/items/items.lua
index 125a19a0e..430b4647a 100644
--- a/resources/[inventory]/tgiann-inventory/items/items.lua
+++ b/resources/[inventory]/tgiann-inventory/items/items.lua
@@ -771,7 +771,7 @@ itemsData = {
unique = true,
description = 'Carbine Rifle MK2',
image = 'screenshot_455-removebg-preview.png',
- label = 'Softair Gewehr',
+ label = 'Trainings Gewehr',
ammotype = 'AMMO_RIFLE',
name = 'weapon_carbinerifle_mk2',
},
@@ -4336,7 +4336,7 @@ itemsData = {
unique = true,
description = 'Sie sieht gefährlich aus, macht Krach – und verursacht blaue Flecken.',
image = 'weapon_snspistol_mk2.png',
- label = 'Softair Pistole',
+ label = 'Trainings Pistole',
ammotype = 'AMMO_PISTOL',
name = 'weapon_snspistol_mk2',
},
@@ -10588,4 +10588,28 @@ itemsData = {
image = 'weapon_repair_kit.png',
name = 'weapon_repair_kit',
},
+ weapon_airsoftglock20 = {
+ shouldClose = true,
+ type = 'weapon',
+ description = '',
+ weight = 1000,
+ label = 'Softair Klog 20',
+ unique = true,
+ useable = true,
+ image = 'weapon_airsoftglock20.png',
+ name = 'weapon_airsoftglock20',
+ },
+ airsoft_bullets = {
+ shouldClose = true,
+ type = 'item',
+ description = '',
+ weight = 600,
+ label = 'Softair Kugeln',
+ unique = true,
+ useable = true,
+ image = 'airsoft_bullets.png',
+ name = 'airsoft_bullets',
+ },
+
+
}
diff --git a/resources/[inventory]/tgiann-inventory/items/weapons.lua b/resources/[inventory]/tgiann-inventory/items/weapons.lua
index b429587f7..9b1c3b860 100644
--- a/resources/[inventory]/tgiann-inventory/items/weapons.lua
+++ b/resources/[inventory]/tgiann-inventory/items/weapons.lua
@@ -40,7 +40,7 @@ local weaponsList = {
weapon_revolver = { name = 'weapon_revolver', label = 'Revolver', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_revolver.png', description = 'A pistol with revolving chambers enabling several shots to be fired without reloading' },
weapon_revolver_mk2 = { name = 'weapon_revolver_mk2', label = 'Violence', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_revolver_mk2.png', description = 'da Violence' },
weapon_doubleaction = { name = 'weapon_doubleaction', label = 'Double Action Revolver', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_doubleaction.png', description = 'Double Action Revolver' },
- weapon_snspistol_mk2 = { name = 'weapon_snspistol_mk2', label = 'SNS Pistol Mk II', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_snspistol_mk2.png', description = 'SNS Pistol MK2' },
+ weapon_snspistol_mk2 = { name = 'weapon_snspistol_mk2', label = 'Trainings Pistole', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_snspistol_mk2.png', description = 'SNS Pistol MK2' },
weapon_raypistol = { name = 'weapon_raypistol', label = 'Up-n-Atomizer', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_raypistol.png', description = 'Weapon Raypistol' },
weapon_ceramicpistol = { name = 'weapon_ceramicpistol', label = 'Ceramic Pistol', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_ceramicpistol.png', description = 'Weapon Ceramicpistol' },
weapon_navyrevolver = { name = 'weapon_navyrevolver', label = 'Navy Revolver', weight = 1000, ammotype = 'AMMO_PISTOL', image = 'weapon_navyrevolver.png', description = 'Weapon Navyrevolver' },
@@ -73,7 +73,7 @@ local weaponsList = {
weapon_assaultrifle = { name = 'weapon_assaultrifle', label = 'AK 75', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_assaultrifle.png', description = 'A rapid-fire, magazine-fed automatic rifle designed for infantry use' },
weapon_assaultrifle_mk2 = { name = 'weapon_assaultrifle_mk2', label = 'Assault Rifle Mk II', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_assaultrifle_mk2.png', description = 'Assault Rifle MK2' },
weapon_carbinerifle = { name = 'weapon_carbinerifle', label = 'AR 15', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_carbinerifle.png', description = 'A light weight automatic rifle' },
- weapon_carbinerifle_mk2 = { name = 'weapon_carbinerifle_mk2', label = 'Carbine Rifle Mk II', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_carbinerifle_mk2.png', description = 'Carbine Rifle MK2' },
+ weapon_carbinerifle_mk2 = { name = 'weapon_carbinerifle_mk2', label = 'Trainings Gewehr', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_carbinerifle_mk2.png', description = 'Carbine Rifle MK2' },
weapon_advancedrifle = { name = 'weapon_advancedrifle', label = 'Advanced Rifle', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_advancedrifle.png', description = 'An assault version of a rapid-fire, magazine-fed automatic rifle designed for infantry use' },
weapon_specialcarbine = { name = 'weapon_specialcarbine', label = 'KH 450', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_specialcarbine.png', description = 'An extremely versatile assault rifle for any combat situation' },
weapon_bullpuprifle = { name = 'weapon_bullpuprifle', label = 'QBX-92-3', weight = 1000, ammotype = 'AMMO_RIFLE', image = 'weapon_bullpuprifle.png', description = 'A compact automatic assault rifle' },
@@ -125,6 +125,15 @@ local weaponsList = {
weapon_fireextinguisher = { name = 'weapon_fireextinguisher', label = 'Fire Extinguisher', weight = 1000, ammotype = nil, image = 'weapon_fireextinguisher.png', description = 'A portable device that discharges a jet of water, foam, gas, or other material to extinguish a fire' },
weapon_hazardcan = { name = 'weapon_hazardcan', label = 'Hazardous Jerry Can', weight = 1000, ammotype = 'AMMO_PETROLCAN', image = 'weapon_hazardcan.png', description = 'Weapon Hazardcan' },
+
+ -- Softair
+ weapon_airsoftglock20 = { name = 'weapon_airsoftglock20', label = 'Softair Klog 20', weight = 1000, ammotype = 'AMMO_AIRSOFT', image = 'weapon_airsoftglock20.png', description = '' },
+
+
+
+
+
+
}
local ammoTypeToPolice = {
AMMO_SMG = "AMMO_POLICE_SMG",
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/cl_weaponNames.lua b/resources/[jobs]/[weapons]/AirsoftGlock20/cl_weaponNames.lua
new file mode 100644
index 000000000..17ecd4192
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/cl_weaponNames.lua
@@ -0,0 +1 @@
+AddTextEntry("WEAPON_AIRSOFTGLOCK20", "Airsoft Glock 20")
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/fxmanifest.lua b/resources/[jobs]/[weapons]/AirsoftGlock20/fxmanifest.lua
new file mode 100644
index 000000000..989db165b
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/fxmanifest.lua
@@ -0,0 +1,19 @@
+fx_version 'cerulean'
+games {'gta5'}
+description 'Add-on weapon generated using vWeaponsToolkit'
+
+files{
+ '**/weaponcomponents.meta',
+ '**/weaponarchetypes.meta',
+ '**/weaponanimations.meta',
+ '**/pedpersonality.meta',
+ '**/weapons.meta',
+}
+
+data_file 'WEAPONCOMPONENTSINFO_FILE' '**/weaponcomponents.meta'
+data_file 'WEAPON_METADATA_FILE' '**/weaponarchetypes.meta'
+data_file 'WEAPON_ANIMATIONS_FILE' '**/weaponanimations.meta'
+data_file 'PED_PERSONALITY_FILE' '**/pedpersonality.meta'
+data_file 'WEAPONINFO_FILE' '**/weapons.meta'
+
+client_script 'cl_weaponNames.lua'
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/meta/pedpersonality.meta b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/pedpersonality.meta
new file mode 100644
index 000000000..5a7607e63
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/pedpersonality.meta
@@ -0,0 +1,383 @@
+
+
+
+
+ -
+ UNHOLSTER_UNARMED
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ unarmed_holster_1h
+
+
+
+ -
+ UNHOLSTER_2H_MELEE
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ 2h_melee_holster_1h
+
+
+
+ -
+ UNHOLSTER_1H
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ 1h_holster_1h
+
+
+
+ -
+ UNHOLSTER_2H
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ 2h_holster_1h
+
+
+
+ -
+ UNHOLSTER_MINIGUN
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ mini_holster_1h
+
+
+
+ -
+ UNHOLSTER_UNARMED_STEALTH
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ unarmed_holster_1h
+
+
+
+ -
+ UNHOLSTER_2H_MELEE_STEALTH
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ unarmed_holster_1h
+
+
+
+ -
+ UNHOLSTER_1H_STEALTH
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ 1h_holster_1h
+
+
+
+ -
+ UNHOLSTER_2H_STEALTH
+
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+ 2h_holster_1h
+
+
+
+
+
+ -
+ DEFAULT_ACTION
+
+
-
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_ACTION@P_M_ZERO@ARMED@CORE
+ MOVE_ACTION@P_M_ZERO@ARMED@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_ACTION@GENERIC@TRANS@1H
+
+ MOVE_ACTION@P_M_ZERO@HOLSTER
+ UNHOLSTER_1H
+
+
+
+
+ -
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_STEALTH@P_M_ZERO@UNARMED@CORE
+ MOVE_STEALTH@P_M_ZERO@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_STEALTH@GENERIC@TRANS@1H
+
+ MOVE_STEALTH@P_M_ZERO@HOLSTER
+ UNHOLSTER_1H_STEALTH
+
+
+
+
+
+
+
+
+ -
+ MP_FEMALE_ACTION
+
+
-
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_ACTION@P_M_ZERO@ARMED@CORE
+ MOVE_ACTION@P_M_ZERO@ARMED@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_ACTION@MP_FEMALE@ARMED@1H@TRANS
+
+ MOVE_ACTION@P_M_ZERO@HOLSTER
+ UNHOLSTER_1H
+
+
+
+
+ -
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_STEALTH@P_M_ZERO@UNARMED@CORE
+ MOVE_STEALTH@P_M_ZERO@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_STEALTH@MP_FEMALE@1H@TRANS
+
+ MOVE_STEALTH@P_M_ZERO@HOLSTER
+ UNHOLSTER_1H_STEALTH
+
+
+
+
+
+
+
+
+ -
+ MICHAEL_ACTION
+
+
-
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_ACTION@P_M_ZERO@ARMED@CORE
+ MOVE_ACTION@P_M_ZERO@ARMED@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_ACTION@P_M_ZERO@ARMED@1H@TRANS@A
+
+ MOVE_ACTION@P_M_ZERO@HOLSTER
+ UNHOLSTER_1H
+
+
+
+
+ -
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_STEALTH@P_M_ZERO@UNARMED@CORE
+ MOVE_STEALTH@P_M_ZERO@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_STEALTH@P_M_ZERO@1H@TRANS@A
+
+ MOVE_STEALTH@P_M_ZERO@HOLSTER
+ UNHOLSTER_1H_STEALTH
+
+
+
+
+
+
+
+
+ -
+ FRANKLIN_ACTION
+
+
-
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_ACTION@P_M_ONE@ARMED@CORE
+ MOVE_ACTION@P_M_ONE@ARMED@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_ACTION@P_M_ONE@ARMED@1H@TRANS@A
+
+ MOVE_ACTION@P_M_ONE@HOLSTER
+ UNHOLSTER_1H
+
+
+
+
+ -
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_STEALTH@P_M_ONE@UNARMED@CORE
+ MOVE_STEALTH@P_M_ONE@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_STEALTH@P_M_ONE@1H@TRANS@A
+
+ MOVE_STEALTH@P_M_ONE@HOLSTER
+ UNHOLSTER_1H_STEALTH
+
+
+
+
+
+
+
+
+ -
+ TREVOR_ACTION
+
+
-
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_ACTION@P_M_TWO@ARMED@CORE
+ MOVE_ACTION@P_M_TWO@ARMED@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_ACTION@P_M_TWO@ARMED@1H@TRANS@A
+
+ MOVE_ACTION@P_M_TWO@HOLSTER
+ UNHOLSTER_1H
+
+
+
+
+ -
+
-
+
+
- WEAPON_AIRSOFTGLOCK20
+
+
+ -
+ MOVE_STEALTH@P_M_TWO@UNARMED@CORE
+ MOVE_STEALTH@P_M_TWO@1H@UPPER
+ UpperbodyAndIk_filter
+
+
+
+
+
+
+
- MOVE_STEALTH@P_M_TWO@1H@TRANS@A
+
+ MOVE_STEALTH@P_M_TWO@HOLSTER
+ UNHOLSTER_1H_STEALTH
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponanimations.meta b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponanimations.meta
new file mode 100644
index 000000000..02131af2b
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponanimations.meta
@@ -0,0 +1,347 @@
+
+
+
+
+ -
+
+
-
+
+
+ cover@move@ai@base@1h
+ Cover_Wpn_Pistol
+ weapons@pistol@
+ BothArms_filter
+
+
+
+
+ weapons@pistol@combat_pistol
+ weapons@pistol@combat_pistol_str
+ Wpn_Pistol_Injured
+ weapons@pistol@combat_pistol@w_stealth
+
+
+
+
+
+ combat_fire_variations_pistol
+
+ combat_aim_turns_pistol
+
+ melee@pistol@streamed_core
+
+
+
+
+ reaction@shellshock@unarmed
+ MOVE_JUMP@WEAPONS@PISTOL
+ MOVE_FALL@WEAPONS@PISTOL
+ weapons@pistol@
+ RightArm_NoSpine_filter
+ RightArm_NoSpine_filter
+
+
+
+
+
+
+ Wpn_Thrown_Grenade_Aiming_Rifle
+
+
+
+
+ -
+ Default
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ weapons@pistol@combat_pistol@stealth
+
+
+
+
+
+ combat_fire_variations_gang_pistol
+
+
+
+
+
+
+
+
+
+
+
+ weapons@pistol@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ Default
+
+
-
+ move_m@generic
+
+
+ cover@move@ai@base@1h
+ Cover_FirstPerson_Wpn_Pistol
+ weapons@first_person@aim_idle@generic@pistol@shared@core
+ BothArms_filter
+
+
+ move_ped_strafing_stealth
+
+ weapons@first_person@aim_idle@generic@pistol@shared@core
+ weapons@first_person@aim_rng@generic@pistol@combat_pistol@str
+ Wpn_Pistol_Injured
+ weapons@first_person@aim_stealth@generic@pistol@shared@core
+
+
+
+
+
+ combat_fire_variations_pistol
+
+ combat_aim_turns_pistol
+
+ melee@pistol@streamed_core
+
+
+
+
+ reaction@shellshock@unarmed
+ MOVE_JUMP@WEAPONS@PISTOL
+ MOVE_FALL@WEAPONS@PISTOL
+ weapons@pistol@
+ RightArm_NoSpine_filter
+ RightArm_NoSpine_filter
+
+
+
+
+
+
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+
+
+ weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_idle
+ weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_idle
+ weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_idle
+ weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@unholster_to_idle
+ weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_idle
+ weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_stealth
+ weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@unholster_to_stealth
+
+
- weapons@first_person@aim_idle@p_m_zero@pistol@shared@fidgets@a
+ - weapons@first_person@aim_idle@p_m_zero@pistol@shared@fidgets@b
+ - weapons@first_person@aim_idle@p_m_zero@pistol@shared@fidgets@c
+
+ weapons@first_person@aim_idle@remote_clone@pistol@shared@core
+
+
+
+ -
+ Default
+
+
-
+
+
+ cover@move@ai@base@1h
+ Cover_FirstPerson_Wpn_Pistol
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+ BothArms_filter
+
+
+ move_ped_strafing_stealth
+
+ weapons@first_person@aim_lt@generic@pistol@combat_pistol@w_fire
+ weapons@first_person@aim_rng@generic@pistol@combat_pistol@str
+ Wpn_Pistol_Injured
+ weapons@first_person@aim_lt@generic@pistol@combat_pistol@w_fire
+
+
+
+
+
+ combat_fire_variations_pistol
+
+ combat_aim_turns_pistol
+
+ melee@pistol@streamed_core
+
+
+
+
+ reaction@shellshock@unarmed
+ MOVE_JUMP@WEAPONS@PISTOL
+ MOVE_FALL@WEAPONS@PISTOL
+ weapons@pistol@
+ RightArm_NoSpine_filter
+ RightArm_NoSpine_filter
+
+
+
+
+
+
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+
+ weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_lt
+ weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_lt
+
+ weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_lt
+ weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@unholster_to_lt
+ weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_lt
+ weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_stealth
+
+
- weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@a
+ - weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@b
+ - weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@c
+ - weapons@first_person@aim_lt@p_m_zero@pistol@shared@fidgets@d
+
+
+
+
+ -
+ Default
+
+
-
+
+
+ cover@move@ai@base@1h
+ Cover_FirstPerson_Wpn_Pistol
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+ BothArms_filter
+
+
+ move_ped_strafing_stealth
+
+ weapons@first_person@aim_rng@generic@pistol@combat_pistol@w_fire
+ weapons@first_person@aim_rng@generic@pistol@combat_pistol@str
+ Wpn_Pistol_Injured
+ weapons@first_person@aim_rng@generic@pistol@combat_pistol@w_fire
+
+
+
+
+
+ combat_fire_variations_pistol
+
+ combat_aim_turns_pistol
+
+ melee@pistol@streamed_core
+
+
+
+
+ reaction@shellshock@unarmed
+ MOVE_JUMP@WEAPONS@PISTOL
+ MOVE_FALL@WEAPONS@PISTOL
+ weapons@pistol@
+ RightArm_NoSpine_filter
+ RightArm_NoSpine_filter
+
+
+
+
+
+
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+
+ weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_rng
+
+ weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_rng
+ weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_rng
+ weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@unholster_to_rng
+ weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_rng
+ weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_stealth
+
+
- weapons@first_person@aim_rng@p_m_zero@pistol@shared@fidgets@a
+ - weapons@first_person@aim_rng@p_m_zero@pistol@shared@fidgets@b
+ - weapons@first_person@aim_rng@p_m_zero@pistol@shared@fidgets@c
+
+
+
+
+ -
+ Default
+
+
-
+
+
+ cover@move@ai@base@1h
+ Cover_FirstPerson_Wpn_Pistol
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+ BothArms_filter
+
+
+ move_ped_strafing_stealth
+
+ weapons@first_person@aim_scope@generic@pistol@combat_pistol@w_fire
+ weapons@first_person@aim_rng@generic@pistol@combat_pistol@str
+ Wpn_Pistol_Injured
+ weapons@first_person@aim_scope@generic@pistol@combat_pistol@w_fire
+
+
+
+
+
+ combat_fire_variations_pistol
+
+ combat_aim_turns_pistol
+
+ melee@pistol@streamed_core
+
+
+
+
+ reaction@shellshock@unarmed
+ MOVE_JUMP@WEAPONS@PISTOL
+ MOVE_FALL@WEAPONS@PISTOL
+ weapons@pistol@
+ RightArm_NoSpine_filter
+ RightArm_NoSpine_filter
+
+
+
+
+
+
+ weapons@first_person@aim_rng@generic@pistol@shared@core
+
+ weapons@first_person@aim_idle@p_m_zero@pistol@shared@aim_trans@idle_to_scope
+ weapons@first_person@aim_rng@p_m_zero@pistol@shared@aim_trans@rng_to_scope
+ weapons@first_person@aim_lt@p_m_zero@pistol@shared@aim_trans@lt_to_scope
+
+ weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@unholster_to_scope
+ weapons@first_person@aim_stealth@p_m_zero@pistol@shared@aim_trans@stealth_to_scope
+ weapons@first_person@aim_scope@p_m_zero@pistol@shared@aim_trans@scope_to_stealth
+
+
+
+
+
+
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponarchetypes.meta b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponarchetypes.meta
new file mode 100644
index 000000000..4a13bf651
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponarchetypes.meta
@@ -0,0 +1,19 @@
+
+
+
+
+ -
+ airsoftglock20_mag1
+ airsoftglock20_mag1
+ NULL
+
+
+ -
+ airsoftglock20
+ airsoftglock20
+ NULL
+
+
+
+
+
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponcomponents.meta b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponcomponents.meta
new file mode 100644
index 000000000..c83935ecc
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weaponcomponents.meta
@@ -0,0 +1,27 @@
+
+
+
+
+ -
+ AIRSOFTGLOCK20_MAG
+ airsoftglock20_mag1
+ WCT_CLIP1
+ WCD_CP_CLIP1
+ AAPClip
+ WAPClip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weapons.meta b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weapons.meta
new file mode 100644
index 000000000..846e64255
--- /dev/null
+++ b/resources/[jobs]/[weapons]/AirsoftGlock20/meta/weapons.meta
@@ -0,0 +1,293 @@
+
+
+
+
+ -
+
+
-
+
+ SLOT_WEAPON_AIRSOFTGLOCK20
+
+
+
+
+
+ -
+
+
-
+ WEAPON_AIRSOFTGLOCK20
+ airsoftglock20
+
+ SLOT_WEAPON_AIRSOFTGLOCK20
+ ELECTRIC
+
+ DONTCARE
+ DONTCARE
+ DONTCARE
+ DONTCARE
+ DONTCARE
+ DONTCARE
+
+ INSTANT_HIT
+ WHEEL_PISTOL
+ GROUP_PISTOL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ BONETAG_HEAD
+
+
+
+ -
+ BONETAG_NECK
+
+
+
+ -
+ BONETAG_L_THIGH
+
+
+
+ -
+ BONETAG_R_THIGH
+
+
+
+ -
+ BONETAG_L_CALF
+
+
+
+ -
+ BONETAG_R_CALF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WEAPON_EFFECT_GROUP_PISTOL_SMALL
+
+
+
+
+ muz_smoking_barrel
+ muz_smoking_barrel_fp
+
+
+
+
+
+
+ BulletSmall
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEFAULT_THIRD_PERSON_PED_AIM_CAMERA
+ DEFAULT_THIRD_PERSON_PED_AIM_IN_COVER_CAMERA
+
+ DEFAULT_THIRD_PERSON_PED_RUN_AND_GUN_CAMERA
+ DEFAULT_THIRD_PERSON_PED_CINEMATIC_SHOOTING_CAMERA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PISTOL_RECOIL_SHAKE
+ FPS_PISTOL_RECOIL_SHAKE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WEAPON_PISTOL
+
+ PICKUP_WEAPON_COMBATPISTOL
+ PICKUP_AMMO_BULLET_MP
+ WEAPON_AIRSOFTGLOCK20
+ MMI_1Handed
+ CMBTPISTOL
+
+
+ Normal
+
+ -
+ WAPClip
+
+
-
+
+ AIRSOFTGLOCK20_MAG
+
+
+
+
+
+
+ ApplyBulletForce CarriedInHand Gun CanLockonOnFoot CanLockonInVehicle CanFreeAim AnimReload AnimCrouchFire UsableOnFoot UsableClimbing UsableInCover HasLowCoverReloads HasLowCoverSwaps QuitTransitionToIdleIntroOnWeaponChange DisableLeftHandIkWhenOnFoot TorsoIKForWeaponBlock UseFPSAimIK UseFPSSecondaryMotion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AR
+
+
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20.ydr b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20.ydr
new file mode 100644
index 000000000..1ffc11ab5
Binary files /dev/null and b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20.ydr differ
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20.ytd b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20.ytd
new file mode 100644
index 000000000..6b3c580b1
Binary files /dev/null and b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20.ytd differ
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_hi.ydr b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_hi.ydr
new file mode 100644
index 000000000..b4214f0a6
Binary files /dev/null and b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_hi.ydr differ
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_mag1.ydr b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_mag1.ydr
new file mode 100644
index 000000000..83d953986
Binary files /dev/null and b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_mag1.ydr differ
diff --git a/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_mag1.ytd b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_mag1.ytd
new file mode 100644
index 000000000..eb378552d
Binary files /dev/null and b/resources/[jobs]/[weapons]/AirsoftGlock20/stream/airsoftglock20_mag1.ytd differ