> For the complete documentation index, see [llms.txt](https://stg-store.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stg-store.gitbook.io/documentation/scripts/vanaheim-arms/configuration.md).

# Configuration

***

<mark style="color:$success;">config.lua</mark>

```lua
Config = {}

-- stgscripts.com | discord.gg/stg

-- General Settings
Config.Debug = false -- prints setup/spawn info to the console
Config.Locale = 'en' -- en, de, fr, es, pt, it, nl, pl, sv, ar, jp, zh, he, fi, no
Config.Target = false -- 'auto' | 'qb' | 'ox' | false


-- Economy
Config.WithdrawTax = 0.05 -- tax on safe withdrawals (0.05 = 5%)
Config.EmployeeCut = 0.05 -- cut each on-duty employee earns per withdrawal (owner keeps the rest)
Config.BlockDuplicateWeapon = true -- block buying a weapon the player already carries
Config.ShowIdleStaff = true -- show range/license NPCs semi-transparent before they are hired

Config.UniformBlipName = true -- true = every shop blip shows Config.BlipName; false = each blip uses its own shop name
Config.BlipName = '[Selling] Ammu-Nation' -- shared blip name used when Config.UniformBlipName = true

Config.Blips = {
    unowned = { sprite = 110, color = 1, scale = 0.8 }, -- shop is for sale / not owned
    owned   = { sprite = 110, color = 2, scale = 0.8 }, -- shop has an owner (color 2 = green)
}

Config.Shops = {
    ['legion'] = {
        label = 'Legion Ammu-Nation',
        salePrice = 250000,
        placeSpawn = vec3(20.1263, -1105.2902, 29.7921), -- where a newly placed weapon first appears
        inspectSpot = vec4(19.892, -1105.210, 29.527, -319.59), -- fixed spot weapons are shown at when inspected (remove to use each shelf)
        license = vec4(23.65, -1108.38, 29.8, 70.38), -- license examiner NPC spot (remove to disable licensing at this shop)
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(10.23, -1110.9, 29.8, 296.79),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = { -- doors sharing a `group` lock together
            { model = -8873588, coords = vec3(18.57, -1115.50, 29.95), group = 'main' },
            { model = 97297972, coords = vec3(16.13, -1114.61, 29.95), group = 'main' },
            { model = 825720073, coords = vec3(14.42, -1106.95, 29.94) },
        },
        range = { -- shooting range at this shop (remove to disable; economy is in Config.Range)
            attendant = { model = 's_m_y_ammucity_01', coords = vec4(8.83, -1099.38, 29.80, 161.07) },
            shootSpot = vec4(13.60, -1097.16, 29.83, 338.83), -- where the shooter stands
            targets = {
                vec4(15.52, -1079.03, 29.80, 160.85),
                vec4(17.03, -1079.61, 29.80, 159.44),
                vec4(21.11, -1081.15, 29.80, 163.93),
                vec4(22.56, -1081.95, 29.80, 161.37),
            },
            door = { model = 452874391, coords = vec3(6.82, -1098.21, 29.95) }, -- locks while someone is shooting
        },
    },
    ['littleseoul'] = {
        label = 'Little Seoul Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(-664.4175, -934.2406, 22.3266),
        inspectSpot = vec4(-664.4175, -934.2406, 22.3266, 0.0),
        license = vec4(-659.9387, -936.7220, 21.8293, 125.70),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(-665.2537, -936.9106, 21.8293, 271.26),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(-662.64, -944.33, 21.98), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(-665.24, -944.33, 21.98), group = 'main' },
        },
    },
    ['popularst'] = {
        label = 'Popular St Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(812.3295, -2158.3606, 28.6165), -- where a newly placed weapon first appears
        inspectSpot = vec4(812.3295, -2158.3606, 28.6165, 179.8965), -- fixed spot weapons are shown at when inspected
        license = vec4(808.1557, -2156.1772, 29.6190, 314.9177), -- license examiner NPC spot (drill teleports to the range shop)
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(819.9906, -2149.6160, 29.6190, 136.1587),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(810.58, -2148.27, 29.77), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(813.18, -2148.27, 29.77), group = 'main' },
            { model = joaat('v_ilev_gc_door02'), coords = vec3(817.40, -2154.88, 29.76) }, -- office
        },
        range = {
            -- shootSpot and door are your provided coords. attendant and targets are ESTIMATES:
            -- log the real ones in-game with /gsloc and replace them here.
            attendant = { model = 's_m_y_ammucity_01', coords = vec4(824.3550, -2160.1013, 29.6190, 0.8740) },
            shootSpot = vec4(821.4268, -2163.5938, 29.6567, 180.4251),
            targets = { -- ESTIMATE (spread in front of the shootSpot)
                vec4(818.50, -2179.50, 29.62, 0.0),
                vec4(820.50, -2180.00, 29.62, 0.0),
                vec4(822.50, -2180.00, 29.62, 0.0),
                vec4(824.50, -2179.50, 29.62, 0.0),
            },
            door = { model = joaat('v_ilev_gc_door01'), coords = vec3(827.53, -2160.49, 29.77) },
        },
    },
    ['sandyshores'] = {
        label = 'Sandy Shores Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(1691.4623, 3759.1023, 34.7024),
        inspectSpot = vec4(1691.4623, 3759.1023, 34.7024, 47.3919),
        license = vec4(1695.8557, 3760.5396, 34.7054, 200.7629),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(1692.7358, 3756.3372, 34.7054, 317.4069),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(1699.94, 3753.42, 34.86), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(1698.18, 3751.51, 34.86), group = 'main' },
        },
    },
    ['paleto'] = {
        label = 'Paleto Bay Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(-332.6008, 6083.0444, 31.9527),
        inspectSpot = vec4(-332.6008, 6083.0444, 31.9527, 44.9902),
        license = vec4(-327.8257, 6084.3862, 31.4548, 196.3969),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(-331.3460, 6080.4307, 31.4548, 317.6235),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(-324.27, 6077.11, 31.60), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(-326.11, 6075.27, 31.60), group = 'main' },
        },
    },
    ['powerst'] = {
        label = 'Power St Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(253.8333, -48.5480, 69.9381),
        inspectSpot = vec4(253.8333, -48.5480, 69.9381, 249.9911),
        license = vec4(249.8098, -51.7762, 69.9412, 30.5803),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(251.7340, -46.4202, 69.9411, 158.0957),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(243.84, -46.52, 70.09), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(244.73, -44.08, 70.09), group = 'main' },
        },
    },
    ['palomino'] = {
        label = 'Palomino Fwy Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(2570.3066, 293.2706, 108.0),
        inspectSpot = vec4(2570.3066, 293.2706, 108.0, 179.9902),
        license = vec4(2565.5557, 295.7977, 108.7350, 317.8093),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(2571.0623, 296.0890, 108.7349, 87.2322),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(2568.30, 303.36, 108.88), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(2570.90, 303.36, 108.88), group = 'main' },
        },
    },
    ['route68'] = {
        label = 'Route 68 Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(-1120.2220, 2697.7437, 19.0514),
        inspectSpot = vec4(-1120.2220, 2697.7437, 19.0514, 41.8271),
        license = vec4(-1115.2094, 2698.9587, 18.5542, 174.3434),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(-1119.0345, 2695.0723, 18.5542, 308.3056),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(-1112.07, 2691.50, 18.70), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(-1114.01, 2689.77, 18.70), group = 'main' },
        },
    },
    ['vespucci'] = {
        label = 'Vespucci Blvd Ammu-Nation',
        salePrice = 200000,
        placeSpawn = vec3(844.4901, -1034.6248, 28.6921),
        inspectSpot = vec4(844.4901, -1034.6248, 28.6921, 180.0000),
        license = vec4(840.2034, -1032.2013, 28.1949, 317.9342),
        ped = {
            model = 's_m_m_ammucountry',
            coords = vec4(845.5493, -1031.8521, 28.1949, 95.0525),
            scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        },
        doors = {
            { model = joaat('v_ilev_gc_door03'), coords = vec3(842.77, -1024.54, 28.34), group = 'main' },
            { model = joaat('v_ilev_gc_door04'), coords = vec3(845.37, -1024.54, 28.34), group = 'main' },
        },
    },
}

-- Speech Bubbles (float above the shop/range/license NPCs).
Config.SpeechBubble = {
    enabled = true,
    viewDistance = 12.0,     -- bubble stays visible within this distance
    triggerDistance = 14.0,  -- player must be this close to trigger a line
    greetDistance = 8.0,     -- walking inside this triggers an instant greeting
    duration = 5000,         -- how long a bubble stays up (ms)
    cooldown = 20000,        -- min gap between lines from the same NPC (ms)
    checkInterval = 5000,    -- how often the trigger check runs (ms)
}

-- Restock Mission (order stock, drive to the supplier, deliver it to the shop)
Config.Mission = {
    DailyLimit = 5, -- max weapons ordered per shop per day
    Pickup = vec4(249.73, -3110.94, 5.79, 3.02), -- supplier / cargo pickup spot
    Weapons = {
        -- Handguns
        ['weapon_pistol'] = 1500,
        ['weapon_combatpistol'] = 2500,
        ['weapon_pistol50'] = 4000,
        ['weapon_revolver'] = 4500,
        -- Submachine Guns
        ['weapon_microsmg'] = 6000,
        ['weapon_smg'] = 7500,
        ['weapon_assaultsmg'] = 9000,
        -- Shotguns
        ['weapon_sawnoffshotgun'] = 6000,
        ['weapon_pumpshotgun'] = 7000,
        ['weapon_assaultshotgun'] = 12000,
        -- Assault Rifles
        ['weapon_assaultrifle'] = 14000,
        ['weapon_advancedrifle'] = 15000,
        ['weapon_carbinerifle'] = 16000,
        -- Sniper Rifles
        ['weapon_marksmanrifle'] = 18000,
        ['weapon_sniperrifle'] = 22000,
        ['weapon_heavysniper'] = 35000,
        -- Melee
        ['weapon_bat'] = 150,
        ['weapon_crowbar'] = 250,
        ['weapon_knife'] = 300,
        -- Gear (non-weapon items)
        ['armour'] = 1200,
        -- Ammo: supplier price per box (one box = 50 rounds delivered, see weapons.lua bundle)
        ['ammo-9'] = 500,
        ['ammo-22'] = 300,
        ['ammo-38'] = 550,
        ['ammo-45'] = 650,
        ['ammo-44'] = 900,
        ['ammo-50'] = 1200,
        ['ammo-shotgun'] = 700,
        ['ammo-rifle'] = 1000,
        ['ammo-rifle2'] = 1100,
        ['ammo-sniper'] = 1400,
        ['ammo-heavysniper'] = 3000,
        ['ammo-musket'] = 400,
    },
}

-- Shooting Range (owner hires an attendant NPC to open it; all income goes to the safe)
-- Shooting range economy (shared by every shop that defines a `range` block below).
-- The range location (attendant, shootSpot, targets, door) lives per shop in Config.Shops.
Config.Range = {
    dailyWage = 100,   -- $ from the safe each payroll cycle while on duty
    entryFee = 500,    -- charged to the player on entry
    pricePerMag = 250, -- charged per magazine fired
    timeLimit = 120,   -- time attack / versus duration (seconds)
}

Config.License = {
    pedModel = 's_m_y_cop_01', -- examiner model, used at every shop that defines a license spot
    dailyWage = 100, -- $ from the safe each payroll cycle while on duty

    -- Players pick which license to earn. Keys must match your license/wallet resource
    -- (e.g. stg-walletv2: 'weapon', 'heavy_weapon').
    licenses = {
        {
            key = 'weapon',
            label = 'Weapon License',
            licenseType = 'weapon',        -- framework license granted on success (qb metadata.licences key)
            licenseItem = nil,             -- optional inventory item to also grant (e.g. 'weaponlicense')
            examFee = 2500,                -- charged when the exam begins
            passScore = 75,                -- written exam pass mark (out of 100)
            drillWeapon = 'weapon_pistol', -- weapon handed out for the drill (never added to inventory)
            drillTarget = 350,             -- points needed in the drill
            drillTime = 60,                -- drill duration (seconds)
        },
        {
            key = 'heavy_weapon',
            label = 'Heavy Weapon License',
            licenseType = 'heavy_weapon',
            licenseItem = nil,
            examFee = 5000,
            passScore = 80,
            drillWeapon = 'weapon_carbinerifle',
            drillTarget = 450,
            drillTime = 60,
        },
    },
}

-- License required to buy each weapon category (false = none). Must match a licenseType above.
Config.PurchaseLicense = {
    ['Handguns']        = 'weapon',
    ['Submachine Guns'] = 'weapon',
    ['Shotguns']        = 'heavy_weapon',
    ['Assault Rifles']  = 'heavy_weapon',
    ['Sniper Rifles']   = 'heavy_weapon',
    ['Melee']           = false,
    ['Armor']           = false,
    ['Ammo']            = false,
}

-- Employee ranks. Higher level can do everything a lower level can.
Config.EmployeeGrades = {
    employee = { label = 'Employee', level = 10 },
    manager = { label = 'Manager', level = 50 },
    owner = { label = 'Owner', level = 100 },
}

-- Minimum grade per action (resolved through the rank permissions below; kept for ordering).
Config.Permissions = {
    manageStock = 'employee',
    deposit = 'employee',
    hire = 'manager',
    viewSales = 'manager',
    withdraw = 'owner',
    rename = 'owner',
    editShelves = 'owner',
    lockDoors = 'employee',
}

-- Granular permissions a rank can hold (shown as toggles in the rank editor).
-- The management menu and every server action are gated through these.
Config.PermissionList = {
    { key = 'manage', label = 'Manage Business', desc = 'Rename the business and change its settings.' },
    { key = 'hire', label = 'Hire & Fire NPC Staff', desc = 'Open or close the range and license services.' },
    { key = 'manageStock', label = 'Manage Stock', desc = 'Place weapons on shelves, restock and use the warehouse.' },
    { key = 'manageMembers', label = 'Manage Members', desc = 'Invite, remove and change the rank of members.' },
    { key = 'withdraw', label = 'Withdraw Money', desc = 'Withdraw money from the business safe.' },
    { key = 'viewFinance', label = 'View Finances', desc = 'See sales, transactions and business statistics.' },
}

-- Maps the legacy action names used across the resource to a granular permission.
Config.PermissionMap = {
    manageStock = 'manageStock',
    deposit = 'manageStock',
    hire = 'hire',
    viewSales = 'viewFinance',
    withdraw = 'withdraw',
    rename = 'manage',
    editShelves = 'manage',
    lockDoors = 'manageStock',
    -- granular keys map to themselves
    manage = 'manage',
    manageMembers = 'manageMembers',
    viewFinance = 'viewFinance',
}

-- Default ranks seeded for every shop. The owner rank holds every permission and takes no salary.
Config.DefaultRanks = {
    { name = 'Owner', level = 100, salary = 0, isDefault = true, owner = true,
      permissions = { manage = true, hire = true, manageStock = true, manageMembers = true, withdraw = true, viewFinance = true } },
    { name = 'Manager', level = 50, salary = 1000, isDefault = true, owner = false,
      permissions = { manage = true, hire = true, manageStock = true, manageMembers = true, withdraw = false, viewFinance = true } },
    { name = 'Employee', level = 10, salary = 500, isDefault = true, owner = false,
      permissions = { manage = false, hire = false, manageStock = true, manageMembers = false, withdraw = false, viewFinance = false } },
}

-- Business management tuning.
Config.Business = {
    SellbackRate = 0.6,          -- sell-to-state payout as a fraction of salePrice
    PayrollIntervalMinutes = 60, -- how often member salaries are paid from the safe
}
```

<mark style="color:$success;">weapons.lua</mark>

```lua
Config.Weapons = {
    ['weapon_pistol'] = { label = 'Pistol', category = 'Handguns', prop = 'w_pi_pistol', stats = { damage = 35, fireRate = 55, accuracy = 62, range = 45, clip = 12 } },
    ['weapon_pistol_mk2'] = { label = 'Pistol Mk II', category = 'Handguns', prop = 'w_pi_pistolmk2', stats = { damage = 38, fireRate = 58, accuracy = 66, range = 50, clip = 12 } },
    ['weapon_combatpistol'] = { label = 'Combat Pistol', category = 'Handguns', prop = 'w_pi_combatpistol', stats = { damage = 40, fireRate = 56, accuracy = 65, range = 55, clip = 12 } },
    ['weapon_appistol'] = { label = 'AP Pistol', category = 'Handguns', prop = 'w_pi_appistol', stats = { damage = 38, fireRate = 72, accuracy = 55, range = 50, clip = 18 } },
    ['weapon_pistol50'] = { label = 'Pistol .50', category = 'Handguns', prop = 'w_pi_pistol50', stats = { damage = 55, fireRate = 40, accuracy = 68, range = 60, clip = 9 } },
    ['weapon_snspistol'] = { label = 'SNS Pistol', category = 'Handguns', prop = 'w_pi_sns_pistol', stats = { damage = 30, fireRate = 58, accuracy = 55, range = 40, clip = 12 } },
    ['weapon_heavypistol'] = { label = 'Heavy Pistol', category = 'Handguns', prop = 'w_pi_heavypistol', stats = { damage = 45, fireRate = 54, accuracy = 66, range = 60, clip = 18 } },
    ['weapon_vintagepistol'] = { label = 'Vintage Pistol', category = 'Handguns', prop = 'w_pi_vintage_pistol', stats = { damage = 35, fireRate = 55, accuracy = 60, range = 45, clip = 8 } },
    ['weapon_revolver'] = { label = 'Heavy Revolver', category = 'Handguns', prop = 'w_pi_revolver', stats = { damage = 60, fireRate = 32, accuracy = 70, range = 60, clip = 6 } },

    ['weapon_microsmg'] = { label = 'Micro SMG', category = 'Submachine Guns', prop = 'w_sb_microsmg', stats = { damage = 25, fireRate = 84, accuracy = 45, range = 50, clip = 16 } },
    ['weapon_smg'] = { label = 'SMG', category = 'Submachine Guns', prop = 'w_sb_smg', stats = { damage = 28, fireRate = 80, accuracy = 52, range = 55, clip = 30 } },
    ['weapon_smg_mk2'] = { label = 'SMG Mk II', category = 'Submachine Guns', prop = 'w_sb_smgmk2', stats = { damage = 30, fireRate = 80, accuracy = 55, range = 60, clip = 30 } },
    ['weapon_assaultsmg'] = { label = 'Assault SMG', category = 'Submachine Guns', prop = 'w_sb_assaultsmg', stats = { damage = 30, fireRate = 78, accuracy = 55, range = 60, clip = 30 } },
    ['weapon_combatpdw'] = { label = 'Combat PDW', category = 'Submachine Guns', prop = 'w_sb_pdw', stats = { damage = 32, fireRate = 80, accuracy = 58, range = 65, clip = 30 } },
    ['weapon_minismg'] = { label = 'Mini SMG', category = 'Submachine Guns', prop = 'w_sb_minismg', stats = { damage = 24, fireRate = 82, accuracy = 48, range = 45, clip = 20 } },

    ['weapon_assaultrifle'] = { label = 'Assault Rifle', category = 'Assault Rifles', prop = 'w_ar_assaultrifle', stats = { damage = 34, fireRate = 78, accuracy = 62, range = 70, clip = 30 } },
    ['weapon_carbinerifle'] = { label = 'Carbine Rifle', category = 'Assault Rifles', prop = 'w_ar_carbinerifle', stats = { damage = 36, fireRate = 74, accuracy = 68, range = 80, clip = 30 } },
    ['weapon_advancedrifle'] = { label = 'Advanced Rifle', category = 'Assault Rifles', prop = 'w_ar_advancedrifle', stats = { damage = 34, fireRate = 80, accuracy = 60, range = 75, clip = 30 } },
    ['weapon_specialcarbine'] = { label = 'Special Carbine', category = 'Assault Rifles', prop = 'w_ar_specialcarbine', stats = { damage = 35, fireRate = 76, accuracy = 70, range = 80, clip = 30 } },
    ['weapon_bullpuprifle'] = { label = 'Bullpup Rifle', category = 'Assault Rifles', prop = 'w_ar_bullpuprifle', stats = { damage = 33, fireRate = 74, accuracy = 66, range = 75, clip = 30 } },

    ['weapon_pumpshotgun'] = { label = 'Pump Shotgun', category = 'Shotguns', prop = 'w_sg_pumpshotgun', stats = { damage = 70, fireRate = 30, accuracy = 42, range = 25, clip = 8 } },
    ['weapon_sawnoffshotgun'] = { label = 'Sawed-Off Shotgun', category = 'Shotguns', prop = 'w_sg_sawnoff', stats = { damage = 75, fireRate = 34, accuracy = 30, range = 20, clip = 8 } },
    ['weapon_assaultshotgun'] = { label = 'Assault Shotgun', category = 'Shotguns', prop = 'w_sg_assaultshotgun', stats = { damage = 65, fireRate = 55, accuracy = 45, range = 28, clip = 8 } },
    ['weapon_bullpupshotgun'] = { label = 'Bullpup Shotgun', category = 'Shotguns', prop = 'w_sg_bullpupshotgun', stats = { damage = 68, fireRate = 42, accuracy = 48, range = 30, clip = 14 } },
    ['weapon_heavyshotgun'] = { label = 'Heavy Shotgun', category = 'Shotguns', prop = 'w_sg_heavyshotgun', stats = { damage = 70, fireRate = 45, accuracy = 45, range = 30, clip = 6 } },

    ['weapon_sniperrifle'] = { label = 'Sniper Rifle', category = 'Sniper Rifles', prop = 'w_sr_sniperrifle', stats = { damage = 90, fireRate = 18, accuracy = 95, range = 95, clip = 10 } },
    ['weapon_heavysniper'] = { label = 'Heavy Sniper', category = 'Sniper Rifles', prop = 'w_sr_heavysniper', stats = { damage = 95, fireRate = 15, accuracy = 96, range = 100, clip = 6 } },
    ['weapon_marksmanrifle'] = { label = 'Marksman Rifle', category = 'Sniper Rifles', prop = 'w_sr_marksmanrifle', stats = { damage = 80, fireRate = 40, accuracy = 90, range = 90, clip = 8 } },

    ['weapon_knife'] = { label = 'Knife', category = 'Melee', prop = 'w_me_knife', stats = { damage = 30, fireRate = 65, accuracy = 100, range = 10, clip = 0 } },
    ['weapon_bat'] = { label = 'Bat', category = 'Melee', prop = 'w_me_bat', stats = { damage = 40, fireRate = 50, accuracy = 100, range = 15, clip = 0 } },
    ['weapon_crowbar'] = { label = 'Crowbar', category = 'Melee', prop = 'w_me_crowbar', stats = { damage = 35, fireRate = 52, accuracy = 100, range = 12, clip = 0 } },
    ['weapon_hammer'] = { label = 'Hammer', category = 'Melee', prop = 'w_me_hammer', stats = { damage = 33, fireRate = 55, accuracy = 100, range = 10, clip = 0 } },

    ['armour'] = { label = 'Bulletproof Vest', category = 'Armor', prop = 'prop_armour_pickup', type = 'item' },

    ['ammo-9'] = { label = '9mm', category = 'Ammo', prop = 'v_ret_gc_ammo5', type = 'item', bundle = 50 },
    ['ammo-22'] = { label = '.22 Long Rifle', category = 'Ammo', prop = 'v_ret_gc_ammo5', type = 'item', bundle = 50 },
    ['ammo-38'] = { label = '.38 LC', category = 'Ammo', prop = 'v_ret_gc_ammo5', type = 'item', bundle = 50 },
    ['ammo-44'] = { label = '.44 Magnum', category = 'Ammo', prop = 'v_ret_gc_ammo5', type = 'item', bundle = 50 },
    ['ammo-45'] = { label = '.45 ACP', category = 'Ammo', prop = 'v_ret_gc_ammo5', type = 'item', bundle = 50 },
    ['ammo-50'] = { label = '.50 AE', category = 'Ammo', prop = 'v_ret_gc_ammo5', type = 'item', bundle = 50 },
    ['ammo-rifle'] = { label = '5.56x45', category = 'Ammo', prop = 'v_ret_gc_ammo4', type = 'item', bundle = 50 },
    ['ammo-rifle2'] = { label = '7.62x39', category = 'Ammo', prop = 'v_ret_gc_ammo4', type = 'item', bundle = 50 },
    ['ammo-sniper'] = { label = '7.62x51', category = 'Ammo', prop = 'v_ret_gc_ammo1', type = 'item', bundle = 50 },
    ['ammo-heavysniper'] = { label = '.50 BMG', category = 'Ammo', prop = 'v_ret_gc_ammo1', type = 'item', bundle = 50 },
    ['ammo-shotgun'] = { label = '12 Gauge', category = 'Ammo', prop = 'v_ret_gc_ammo3', type = 'item', bundle = 50 },
    ['ammo-musket'] = { label = '.50 Ball', category = 'Ammo', prop = 'prop_box_ammo01a', type = 'item', bundle = 50 },
}
```
