Skip to content

Instantly share code, notes, and snippets.

@DemmyDemon
Last active June 11, 2024 22:13
Show Gist options
  • Save DemmyDemon/b26ec10bb45185f9a7e09a626f4e0949 to your computer and use it in GitHub Desktop.
Save DemmyDemon/b26ec10bb45185f9a7e09a626f4e0949 to your computer and use it in GitHub Desktop.
Just a list of weapons from GTAV, with their labels
-- Most label names yoinked from https://forum.cfx.re/t/complete-weapon-labels-list-1-49/1167039
WEAPONLABELS = {
weapon_dagger = "WT_DAGGER",
weapon_bat = "WT_BAT",
weapon_bottle = "WT_BOTTLE",
weapon_crowbar = "WT_CROWBAR",
weapon_unarmed = "WT_UNARMED",
weapon_flashlight = "WT_FLASHLIGHT",
weapon_golfclub = "WT_GOLFCLUB",
weapon_hammer = "WT_HAMMER",
weapon_hatchet = "WT_HATCHET",
weapon_knuckle = "WT_KNUCKLE",
weapon_knife = "WT_KNIFE",
weapon_machete = "WT_MACHETE",
weapon_switchblade = "WT_SWBLADE",
weapon_nightstick = "WT_NGTSTK",
weapon_wrench = "WT_WRENCH",
weapon_battleaxe = "WT_BAXE",
weapon_poolcue = "WT_POOLQ",
weapon_stone_hatchet = "WT_SHATCHET",
weapon_candycane = "WT_CANDYCANE",
weapon_pistol = "WT_PIST",
weapon_pistol_mk2 = "WT_PIST2",
weapon_combatpistol = "WT_PIST_CBT",
weapon_appistol = "WT_PIST_AP",
weapon_stungun = "WT_STUN",
weapon_pistol50 = "WT_PIST_50",
weapon_snspistol = "WT_SNSPISTOL",
weapon_snspistol_mk2 = "WT_SNSPISTOL2",
weapon_heavypistol = "WT_HEAVYPSTL",
weapon_vintagepistol = "WT_VPISTOL",
weapon_flaregun = "WT_FLAREGUN",
weapon_marksmanpistol = "WT_MKPISTOL",
weapon_revolver = "WT_REVOLVER",
weapon_revolver_mk2 = "WT_REVOLVER2",
weapon_doubleaction = "WT_REV_DA",
weapon_raypistol = "WT_RAYPISTOL",
weapon_ceramicpistol = "WT_CERPST",
weapon_navyrevolver = "WT_REV_NV",
weapon_pistolxm3 = "WT_PISTOLXM3",
weapon_stungun_mp = "WT_STUN",
weapon_gadgetpistol = "WT_GDGTPST",
-- weapon_tranquilizer = "WT_STUN", -- Doesn't work?
weapon_microsmg = "WT_SMG_MCR",
weapon_smg = "WT_SMG",
weapon_smg_mk2 = "WT_SMG2",
weapon_assaultsmg = "WT_SMG_ASL",
weapon_combatpdw = "WT_COMBATPDW",
weapon_machinepistol = "WT_MCHPIST",
weapon_minismg = "WT_MINISMG",
weapon_raycarbine = "WT_RAYCARBINE",
weapon_tecpistol = "WT_TECPISTOL",
weapon_pumpshotgun = "WT_SG_PMP",
weapon_pumpshotgun_mk2 = "WT_SG_PMP2",
weapon_sawnoffshotgun = "WT_SG_SOF",
weapon_assaultshotgun = "WT_SG_ASL",
weapon_bullpupshotgun = "WT_SG_BLP",
weapon_musket = "WT_MUSKET",
weapon_heavyshotgun = "WT_HVYSHOT",
weapon_dbshotgun = "WT_DBSHGN",
weapon_autoshotgun = "WT_AUTOSHOT",
weapon_combatshotgun = "WT_CMBSHGN",
weapon_assaultrifle = "WT_RIFLE_ASL",
weapon_assaultrifle_mk2 = "WT_RIFLE_ASL2",
weapon_carbinerifle = "WT_RIFLE_CBN",
weapon_carbinerifle_mk2 = "WT_RIFLE_CBN2",
weapon_advancedrifle = "WT_RIFLE_ADV",
weapon_specialcarbine = "WT_RIFLE_SCBN",
weapon_specialcarbine_mk2 = "WT_SPCARBINE2",
weapon_bullpuprifle = "WT_BULLPUPRFL",
weapon_bullpuprifle_mk2 = "WT_BULLRIFLE2",
weapon_compactrifle = "WT_CMPRIFLE",
weapon_battlerifle = "WT_BATTLERIFLE",
weapon_tacticalrifle = "WT_TACRIFLE",
weapon_heavyrifle = "WT_HEAVYRIFLE",
weapon_militaryrifle = "WT_MLTRYRFL",
weapon_mg = "WT_MG",
weapon_combatmg = "WT_MG_CBT",
weapon_combatmg_mk2 = "WT_MG_CBT2",
weapon_gusenberg = "WT_GUSENBERG",
weapon_sniperrifle = "WT_SNIP_RIF",
weapon_heavysniper = "WT_SNIP_HVY",
weapon_heavysniper_mk2 = "WT_SNIP_HVY2",
weapon_marksmanrifle = "WT_MKRIFLE",
weapon_marksmanrifle_mk2 = "WT_MKRIFLE2",
weapon_precisionrifle = "WT_PRCSRIFLE",
weapon_rpg = "WT_RPG",
weapon_grenadelauncher = "WT_GL",
weapon_grenadelauncher_smoke = "WT_GL_SMOKE",
weapon_minigun = "WT_MINIGUN",
weapon_firework = "WT_FWRKLNCHR",
weapon_railgun = "WT_RAILGUN",
weapon_hominglauncher = "WT_HOMLNCH",
weapon_compactlauncher = "WT_CMPLAUNC",
weapon_rayminigun = "WT_RAYMINIGUN",
weapon_snowlauncher = "WT_SNOWLNCHR",
weapon_railgunxm3 = "WT_RAILGUNXM3",
weapon_emplauncher = "WT_EMPL",
weapon_grenade = "WT_GNADE",
weapon_bzgas = "WT_BZGAS",
weapon_smokegrenade = "WT_GNADE_SMK",
weapon_flare = "WT_FLARE",
weapon_molotov = "WT_MOLOTOV",
weapon_stickybomb = "WT_GNADE_STK",
weapon_proxmine = "WT_PRXMINE",
weapon_snowball = "WT_SNWBALL",
weapon_pipebomb = "WT_PIPE",
weapon_ball = "WT_BALL",
weapon_petrolcan = "WT_PETROL",
weapon_fireextinguisher = "WT_FIRE",
-- gadget_parachute = "WT_PARA", -- Not really a *weapon*, is it?
weapon_hazardcan = "WT_HAZARDCAN",
weapon_fertilizercan = "WT_FERTILIZERCAN",
}
local WeaponGroups = {
[-1212426201] = "Sniper", -- "GROUP_SNIPER",
[-1569042529] = "Heavy", -- "GROUP_HEAVY",
[-1609580060] = "Unarmed", -- "GROUP_UNARMED",
[-37788308] = "Fire extinguisher", -- "GROUP_FIREEXTINGUISHER",
[-728555052] = "Melee", -- "GROUP_MELEE",
[-957766203] = "SMG", -- "GROUP_SMG",
[1159398588] = "MG", -- "GROUP_MG",
[1548507267] = "Thrown", -- "GROUP_THROWN",
[1595662460] = "Petrolcan", -- "GROUP_PETROLCAN",
[416676503] = "Pistol", -- "GROUP_PISTOL",
[431593103] = "Parachute", -- "GROUP_PARACHUTE",
[690389602] = "Stungun", -- "GROUP_STUNGUN",
[860033945] = "Shotgun", -- "GROUP_SHOTGUN",
[970310034] = "Rifle", -- "GROUP_RIFLE",
}
function GetWeaponList()
local weaponList = {}
local weaponGroupList = {}
local weaponCount = 0
local invalidCount = 0
local ped = PlayerPedId()
for weapon, label in pairs(WEAPONLABELS) do
local hash = joaat(weapon)
if IsWeaponValid(hash) then
local groupHash = GetWeapontypeGroup(hash)
local group = WeaponGroups[groupHash] or ('UNKNOWN ' .. groupHash)
weaponCount += 1
if not weaponList[group] then
table.insert(weaponGroupList, group)
weaponList[group] = {}
end
local text = GetLabelText(label)
if not text or text == "NULL" then
print( ("Invald text label %s for %s [%s]"):format(label, weapon, hash & 0xFFFFFFFF ) )
text = label
end
local ok, ammo = GetMaxAmmo(ped, hash)
if not ok then
ammo = 1
end
local clipsize = GetWeaponClipSize(hash)
table.insert(weaponList[group], {
text = text,
description = ("%s (Max ammo: %i, Magazine: %i)"):format(weapon, ammo, clipsize),
hash = hash,
})
else
invalidCount += 1
print(weapon,"is an invalid weapon!")
end
end
table.sort(weaponGroupList)
for _, group in ipairs(weaponGroupList) do
table.sort(weaponList[group], function(a, b) return a.text < b.text end)
end
print( ("Found %i valid, and %i invalid weapons"):format(weaponCount, invalidCount))
return weaponList, weaponGroupList
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment