Add json support

This commit is contained in:
Kakarot
2025-05-10 11:42:14 -05:00
parent a437265c68
commit fe3847d591
26 changed files with 14721 additions and 1928 deletions
+20
View File
@@ -0,0 +1,20 @@
RegisterNUICallback('saveConfig', function(data, cb)
local file = data.file
local configData = data.data
TriggerServerEvent('qb-core:server:configEditor', file, configData)
print('Saving config for file:', file)
cb('ok')
end)
RegisterNUICallback('closeEditor', function(data, cb)
SetNuiFocus(false, false)
cb('ok')
end)
RegisterNetEvent('qb-core:client:configEditor', function(allData)
SendNUIMessage({
action = 'populateData',
data = allData
})
SetNuiFocus(true, true)
end)
-50
View File
@@ -1,50 +0,0 @@
QBCore = {}
QBCore.PlayerData = {}
QBCore.Config = QBConfig
QBCore.Shared = QBShared
QBCore.ClientCallbacks = {}
QBCore.ServerCallbacks = {}
-- Get the full QBCore object (default behavior):
-- local QBCore = GetCoreObject()
-- Get only specific parts of QBCore:
-- local QBCore = GetCoreObject({'Players', 'Config'})
local function GetCoreObject(filters)
if not filters then return QBCore end
local results = {}
for i = 1, #filters do
local key = filters[i]
if QBCore[key] then
results[key] = QBCore[key]
end
end
return results
end
exports('GetCoreObject', GetCoreObject)
local function GetSharedItems()
return QBShared.Items
end
exports('GetSharedItems', GetSharedItems)
local function GetSharedVehicles()
return QBShared.Vehicles
end
exports('GetSharedVehicles', GetSharedVehicles)
local function GetSharedWeapons()
return QBShared.Weapons
end
exports('GetSharedWeapons', GetSharedWeapons)
local function GetSharedJobs()
return QBShared.Jobs
end
exports('GetSharedJobs', GetSharedJobs)
local function GetSharedGangs()
return QBShared.Gangs
end
exports('GetSharedGangs', GetSharedGangs)
-157
View File
@@ -1,157 +0,0 @@
QBConfig = {}
QBConfig.MaxPlayers = GetConvarInt('sv_maxclients', 48) -- Gets max players from config file, default 48
QBConfig.DefaultSpawn = vector4(-1035.71, -2731.87, 12.86, 0.0)
QBConfig.UpdateInterval = 5 -- how often to update player data in minutes
QBConfig.StatusInterval = 5000 -- how often to check hunger/thirst status in milliseconds
QBConfig.Money = {}
QBConfig.Money.MoneyTypes = { cash = 500, bank = 5000, crypto = 0 } -- type = startamount - Add or remove money types for your server (for ex. blackmoney = 0), remember once added it will not be removed from the database!
QBConfig.Money.DontAllowMinus = { 'cash', 'crypto' } -- Money that is not allowed going in minus
QBConfig.Money.MinusLimit = -5000 -- The maximum amount you can be negative
QBConfig.Money.PayCheckTimeOut = 10 -- The time in minutes that it will give the paycheck
QBConfig.Money.PayCheckSociety = false -- If true paycheck will come from the society account that the player is employed at, requires qb-management
QBConfig.Player = {}
QBConfig.Player.HungerRate = 4.2 -- Rate at which hunger goes down.
QBConfig.Player.ThirstRate = 3.8 -- Rate at which thirst goes down.
QBConfig.Player.Bloodtypes = {
'A+', 'A-', 'B+', 'B-', 'AB+', 'AB-', 'O+', 'O-',
}
QBConfig.Player.PlayerDefaults = {
citizenid = function() return QBCore.Player.CreateCitizenId() end,
cid = 1,
money = function()
local moneyDefaults = {}
for moneytype, startamount in pairs(QBConfig.Money.MoneyTypes) do
moneyDefaults[moneytype] = startamount
end
return moneyDefaults
end,
optin = true,
charinfo = {
firstname = 'Firstname',
lastname = 'Lastname',
birthdate = '00-00-0000',
gender = 0,
nationality = 'USA',
phone = function() return QBCore.Functions.CreatePhoneNumber() end,
account = function() return QBCore.Functions.CreateAccountNumber() end
},
job = {
name = 'unemployed',
label = 'Civilian',
payment = 10,
type = 'none',
onduty = false,
isboss = false,
grade = {
name = 'Freelancer',
level = 0
}
},
gang = {
name = 'none',
label = 'No Gang Affiliation',
isboss = false,
grade = {
name = 'none',
level = 0
}
},
metadata = {
hunger = 100,
thirst = 100,
stress = 0,
isdead = false,
inlaststand = false,
armor = 0,
ishandcuffed = false,
tracker = false,
injail = 0,
jailitems = {},
status = {},
phone = {},
rep = {},
currentapartment = nil,
callsign = 'NO CALLSIGN',
bloodtype = function() return QBConfig.Player.Bloodtypes[math.random(1, #QBConfig.Player.Bloodtypes)] end,
fingerprint = function() return QBCore.Player.CreateFingerId() end,
walletid = function() return QBCore.Player.CreateWalletId() end,
criminalrecord = {
hasRecord = false,
date = nil
},
licences = {
driver = true,
business = false,
weapon = false
},
inside = {
house = nil,
apartment = {
apartmentType = nil,
apartmentId = nil,
}
},
phonedata = {
SerialNumber = function() return QBCore.Player.CreateSerialNumber() end,
InstalledApps = {}
}
},
position = QBConfig.DefaultSpawn,
items = {},
}
QBConfig.Server = {} -- General server config
QBConfig.Server.Closed = false -- Set server closed (no one can join except people with ace permission 'qbadmin.join')
QBConfig.Server.ClosedReason = 'Server Closed' -- Reason message to display when people can't join the server
QBConfig.Server.Uptime = 0 -- Time the server has been up.
QBConfig.Server.Whitelist = false -- Enable or disable whitelist on the server
QBConfig.Server.WhitelistPermission = 'admin' -- Permission that's able to enter the server when the whitelist is on
QBConfig.Server.PVP = true -- Enable or disable pvp on the server (Ability to shoot other players)
QBConfig.Server.Discord = '' -- Discord invite link
QBConfig.Server.CheckDuplicateLicense = true -- Check for duplicate rockstar license on join
QBConfig.Server.Permissions = { 'god', 'admin', 'mod' } -- Add as many groups as you want here after creating them in your server.cfg
QBConfig.Commands = {} -- Command Configuration
QBConfig.Commands.OOCColor = { 255, 151, 133 } -- RGB color code for the OOC command
QBConfig.Notify = {}
QBConfig.Notify.NotificationStyling = {
group = false, -- Allow notifications to stack with a badge instead of repeating
position = 'right', -- top-left | top-right | bottom-left | bottom-right | top | bottom | left | right | center
progress = true -- Display Progress Bar
}
-- These are how you define different notification variants
-- The "color" key is background of the notification
-- The "icon" key is the css-icon code, this project uses `Material Icons` & `Font Awesome`
QBConfig.Notify.VariantDefinitions = {
success = {
classes = 'success',
icon = 'check_circle'
},
primary = {
classes = 'primary',
icon = 'notifications'
},
warning = {
classes = 'warning',
icon = 'warning'
},
error = {
classes = 'error',
icon = 'error'
},
police = {
classes = 'police',
icon = 'local_police'
},
ambulance = {
classes = 'ambulance',
icon = 'fas fa-ambulance'
}
}
+11 -14
View File
@@ -3,24 +3,18 @@ game 'gta5'
lua54 'yes'
author 'Kakarot'
description 'Core resource for the framework, contains all the core functionality and features'
version '1.3.0'
version '2.0.0'
shared_scripts {
'config.lua',
'shared/locale.lua',
'locale/en.lua',
'locale/*.lua',
'shared/main.lua',
'shared/items.lua',
'shared/jobs.lua',
'shared/vehicles.lua',
'shared/gangs.lua',
'shared/weapons.lua',
'shared/locations.lua'
'shared/core.lua',
'shared/loader.lua',
'shared/main.lua'
}
client_scripts {
'client/main.lua',
'client/functions.lua',
'client/loops.lua',
'client/events.lua',
@@ -29,7 +23,6 @@ client_scripts {
server_scripts {
'@oxmysql/lib/MySQL.lua',
'server/main.lua',
'server/functions.lua',
'server/player.lua',
'server/events.lua',
@@ -42,9 +35,13 @@ ui_page 'html/index.html'
files {
'html/index.html',
'html/css/style.css',
'html/css/drawtext.css',
'html/js/*.js'
'html/css/*.css',
'html/js/*.js',
'shared/jobs.json',
'shared/gangs.json',
'shared/items.json',
'shared/vehicles.json',
'shared/weapons.json'
}
dependency 'oxmysql'
+674
View File
@@ -0,0 +1,674 @@
@import url("https://fonts.googleapis.com/css2?family=Exo+2:wght@300;400;500;600;700&display=swap");
:root {
/* Primary colors */
--md-primary: #f44336;
--md-on-primary: #ffffff;
--md-primary-container: #ffdad6;
--md-on-primary-container: #410002;
/* Secondary colors */
--md-secondary: #d32f2f;
--md-on-secondary: #ffffff;
--md-secondary-container: #ffdad5;
--md-on-secondary-container: #410001;
/* Tertiary colors */
--md-tertiary: #ff8a65;
--md-on-tertiary: #ffffff;
--md-tertiary-container: #ffdacc;
--md-on-tertiary-container: #410002;
/* Surface colors (dark theme) */
--md-surface: #1c1b1f;
--md-on-surface: #e6e1e5;
--md-surface-variant: #49454f;
--md-on-surface-variant: #c9c5d0;
--md-surface-container-lowest: #0f0d13;
--md-surface-container-low: #1d1b20;
--md-surface-container: #211f26;
--md-surface-container-high: #2b2930;
--md-surface-container-highest: #36343b;
/* Error colors */
--md-error: #b3261e;
--md-on-error: #ffffff;
--md-error-container: #93000a;
--md-on-error-container: #ffdad5;
/* Notification colors */
--md-success: #9bd880;
--md-on-success: #193800;
--md-success-container: #275000;
--md-on-success-container: #b6f397;
--md-warning: #ffba47;
--md-on-warning: #422b00;
--md-warning-container: #5f3f00;
--md-on-warning-container: #ffddb0;
--md-info: #b3c5ff;
--md-on-info: #002a77;
--md-info-container: #003ea7;
--md-on-info-container: #dae1ff;
/* Neutrals */
--md-outline: #79747e;
--md-outline-variant: #49454f;
--md-inverse-surface: #e6e1e5;
--md-inverse-on-surface: #1c1b1f;
--md-scrim: rgba(0, 0, 0, 0.6);
--md-shadow: rgba(0, 0, 0, 0.15);
/* Elevation */
--md-elevation-1: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
--md-elevation-2: 0px 2px 6px 2px rgba(0, 0, 0, 0.15);
--md-elevation-3: 0px 4px 8px 3px rgba(0, 0, 0, 0.15);
/* Shapes */
--md-radius-small: 8px;
--md-radius-medium: 12px;
--md-radius-large: 16px;
/* Typography */
--font-primary: "Exo 2", sans-serif;
--font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-bold: 700;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: var(--font-primary);
}
body {
background-color: transparent;
color: var(--md-on-surface);
overflow: hidden;
}
#editor-container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80vw;
height: 80vh;
background-color: var(--md-surface);
border-radius: var(--md-radius-medium);
box-shadow: var(--md-elevation-3);
display: flex;
flex-direction: column;
overflow: hidden;
}
/* Header */
header {
padding: 16px;
background-color: var(--md-surface-container-high);
display: flex;
justify-content: space-between;
align-items: center;
}
header h1 {
font-size: 22px;
color: var(--md-primary);
}
.controls {
display: flex;
gap: 12px;
}
button {
padding: 8px 16px;
border: none;
border-radius: var(--md-radius-small);
cursor: pointer;
display: flex;
align-items: center;
gap: 8px;
font-weight: 500;
transition: background-color 0.2s;
}
#save-btn {
background-color: var(--md-success);
color: var(--md-on-success);
}
#save-btn:hover {
box-shadow: var(--md-elevation-1);
filter: brightness(1.1);
}
#close-btn {
background-color: var(--md-secondary);
color: var(--md-on-secondary);
}
#close-btn:hover {
box-shadow: var(--md-elevation-1);
filter: brightness(1.1);
}
/* Floating Action Button */
.fab {
position: fixed;
right: 24px;
bottom: 24px;
width: 56px;
height: 56px;
border-radius: 50%;
background-color: var(--md-primary);
color: var(--md-on-primary);
box-shadow: var(--md-elevation-3);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: transform 0.2s;
}
.fab:hover {
transform: translateY(-4px);
box-shadow: var(--md-elevation-2);
}
.fab:active {
transform: translateY(0);
}
/* Content layout */
.content {
display: flex;
flex: 1;
overflow: hidden;
height: calc(100vh - 130px);
max-height: calc(100% - 60px);
}
.sidebar {
background-color: var(--md-surface-container-high);
width: 220px;
padding: 16px;
}
.sidebar h2 {
font-size: 16px;
font-weight: 500;
margin-bottom: 16px;
color: var(--md-on-surface);
}
.file-list {
list-style: none;
}
.file-list li {
padding: 12px;
border-radius: var(--md-radius-small);
cursor: pointer;
display: flex;
gap: 12px;
}
.file-list li .material-symbols-rounded {
font-size: 20px;
}
.file-list li:hover {
background-color: var(--md-surface-container-high);
transform: translateY(-2px);
box-shadow: var(--md-elevation-1);
}
.file-list li.active {
background-color: var(--md-primary);
color: var(--md-on-primary);
transform: translateY(-2px);
box-shadow: var(--md-elevation-1);
}
.main-content {
flex: 1;
padding: 16px;
overflow-y: auto;
display: flex;
flex-direction: column;
background-color: var(--md-surface-container-low);
}
/* Search Input */
.search-container {
margin-bottom: 16px;
}
.search-wrapper {
position: relative;
width: 100%;
}
.search-icon {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
color: var(--md-outline);
pointer-events: none;
}
#search-input {
width: 100%;
padding: 12px 12px 12px 40px;
border: 1px solid var(--md-outline-variant);
border-radius: var(--md-radius-small);
background-color: var(--md-surface-container);
color: var(--md-on-surface);
}
#search-input:focus {
border-color: var(--md-primary);
outline: none;
}
#data-container {
flex: 1;
overflow-y: auto;
max-height: calc(100vh - 200px);
scrollbar-width: thin; /* For Firefox */
scrollbar-color: var(--md-outline-variant) transparent;
}
#data-container::-webkit-scrollbar {
width: 6px; /* Scrollbar width for WebKit browsers */
}
#data-container::-webkit-scrollbar-thumb {
background-color: var(--md-outline-variant); /* Thumb color */
border-radius: 3px; /* Rounded corners for the thumb */
}
#data-container::-webkit-scrollbar-track {
background-color: transparent; /* Track color */
}
/* Cards for displaying data items */
.data-card {
background-color: var(--md-surface-container);
border-radius: var(--md-radius-medium);
padding: 16px;
margin-bottom: 12px;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
overflow: hidden;
word-break: break-word;
position: relative;
}
.data-card::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--md-primary);
opacity: 0;
transition: opacity 0.2s;
pointer-events: none;
}
.data-card:hover {
background-color: var(--md-surface-container-high);
transform: translateY(-2px);
box-shadow: var(--md-elevation-1);
}
.data-card:hover::after {
opacity: 0.05;
}
.data-card h3 {
color: var(--md-primary);
margin-bottom: 12px;
font-weight: 500;
}
.data-properties {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 12px;
}
.property {
display: flex;
flex-direction: column;
}
.property-label {
font-size: 12px;
color: var(--md-outline);
}
.property-value {
font-size: 14px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
}
/* Modal */
#edit-modal {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: grid;
place-items: center; /* Perfectly centers the modal */
background-color: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(2px);
z-index: 1000;
}
#edit-modal.hidden {
animation: modal-disappear 0.2s ease-out forwards;
display: none;
}
.modal-content {
background-color: var(--md-surface-container);
border-radius: var(--md-radius-large);
width: 600px;
max-width: 90%;
max-height: 90vh;
display: flex;
flex-direction: column;
box-shadow: var(--md-elevation-3);
animation: modal-appear 0.2s ease-out;
overflow: hidden;
}
.modal-header {
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid var(--md-outline-variant);
background-color: var(--md-surface-container-high);
}
.modal-header h2 {
font-size: 20px;
font-weight: 400;
color: var(--md-primary);
}
#close-modal-btn {
background: none;
color: var(--md-on-surface-variant);
font-size: 24px;
padding: 0;
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
}
#close-modal-btn:hover {
color: var(--md-error);
background-color: var(--md-surface-container-high);
}
.modal-body {
padding: 24px;
overflow-y: auto;
max-height: 60vh;
scrollbar-width: thin;
scrollbar-color: var(--md-outline-variant) transparent;
}
.modal-body::-webkit-scrollbar {
width: 6px;
}
.modal-body::-webkit-scrollbar-thumb {
background-color: var(--md-outline-variant);
border-radius: 3px;
}
.modal-footer {
padding: 16px 24px;
display: flex;
justify-content: flex-end;
gap: 12px;
border-top: 1px solid var(--md-outline-variant);
background-color: var(--md-surface-container-high);
}
#save-item-btn {
background-color: var(--md-success);
color: var(--md-on-success);
}
#save-item-btn:hover {
box-shadow: var(--md-elevation-1);
filter: brightness(1.1);
}
#cancel-edit-btn {
background-color: var(--md-secondary);
color: var(--md-on-secondary);
}
#cancel-edit-btn:hover {
box-shadow: var(--md-elevation-1);
}
/* Form elements */
.form-group {
margin-bottom: 16px;
}
.form-group label {
display: block;
margin-bottom: 8px;
color: var(--md-on-surface);
font-size: 14px;
}
.form-control {
width: 100%;
padding: 12px;
border: 1px solid var(--md-outline-variant);
border-radius: var(--md-radius-small);
background-color: var(--md-surface-container-low);
color: var(--md-on-surface);
transition: border-color 0.2s;
scrollbar-width: thin;
scrollbar-color: var(--md-outline-variant) transparent;
}
.form-control:focus {
border-color: var(--md-primary);
outline: none;
}
textarea.form-control {
min-height: 100px;
font-family: monospace;
}
.form-control::-webkit-scrollbar {
width: 6px;
}
.form-control::-webkit-scrollbar-thumb {
background-color: var(--md-outline-variant);
border-radius: 3px;
}
.complex-object {
border: 1px solid var(--md-outline-variant);
border-radius: var(--md-radius-small);
padding: 12px;
margin-top: 8px;
background-color: var(--md-surface-container);
}
.complex-object-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
}
.complex-object-title {
font-weight: 500;
color: var(--md-primary);
}
.add-item-btn {
background-color: var(--md-primary-container);
color: var(--md-on-primary-container);
padding: 4px 8px;
font-size: 12px;
border-radius: var(--md-radius-small);
}
.add-item-btn:hover {
filter: brightness(1.1);
}
/* For handling arrays */
.array-item {
border: 1px solid var(--md-outline-variant);
border-radius: var(--md-radius-small);
padding: 12px;
margin-bottom: 12px;
position: relative;
background-color: var(--md-surface-container-low);
}
.remove-item-btn {
position: absolute;
top: 8px;
right: 8px;
background-color: var(--md-error-container);
color: var(--md-on-error-container);
width: 24px;
height: 24px;
font-size: 12px;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.2s;
}
.remove-item-btn:hover {
filter: brightness(1.1);
}
/* Improved checkbox styling */
input[type="checkbox"] {
/* Remove default styling */
appearance: none;
-webkit-appearance: none;
/* Create custom checkbox */
width: 20px;
height: 20px;
border: 2px solid var(--md-outline-variant);
border-radius: 4px;
background-color: var(--md-surface-container-low);
position: relative;
cursor: pointer;
vertical-align: middle;
margin-right: 8px;
transition: all 0.2s;
}
/* Checked state */
input[type="checkbox"]:checked {
background-color: var(--md-primary);
border-color: var(--md-primary);
}
/* Checkmark */
input[type="checkbox"]:checked::after {
content: "✓";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: var(--md-on-primary);
font-size: 14px;
opacity: 0;
animation: fadeIn 0.2s forwards;
}
/* Hover state */
input[type="checkbox"]:hover {
border-color: var(--md-primary);
}
input[type="checkbox"]:active {
transform: scale(0.9);
}
/* Add this to the form-group for boolean/checkbox fields */
.form-group.checkbox-group {
display: flex;
align-items: center;
}
.form-group.checkbox-group label {
margin-bottom: 0;
margin-left: 8px;
order: 2;
}
.form-group.checkbox-group input {
order: 1;
}
@keyframes modal-appear {
from {
opacity: 0;
transform: scale(0.9);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes modal-disappear {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0.9);
}
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translate(-50%, -60%);
}
to {
opacity: 1;
transform: translate(-50%, -50%);
}
}
+102 -3
View File
@@ -1,20 +1,119 @@
<html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@300;400;500;600;700&display=swap" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/quasar@2.12.0/dist/quasar.prod.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons" type="text/css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0" />
<link href="css/style.css" rel="stylesheet" />
<link href="css/editor.css" rel="stylesheet" />
<link href="css/drawtext.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js" defer></script>
<script src="https://cdn.jsdelivr.net/npm/quasar@2.12.0/dist/quasar.umd.prod.js" defer></script>
<script type="module" src="js/app.js"></script>
<script src="js/drawtext.js"></script>
<link rel="stylesheet" href="css/drawtext.css" />
<script src="js/editor.js"></script>
</head>
<body>
<div id="q-app" style="min-height: 100vh"></div>
<div id="drawtext-container">
<div id="text" class="text"></div>
</div>
<div id="editor-container">
<header>
<h1>QB Config Editor</h1>
<div class="controls">
<button id="save-btn">
<span class="material-symbols-rounded">save</span>
Save Changes
</button>
<button id="close-btn">
<span class="material-symbols-rounded">close</span>
Close
</button>
</div>
</header>
<div class="content">
<div class="sidebar">
<h2>Files</h2>
<ul class="file-list">
<li data-file="config">
<span class="material-symbols-rounded">settings</span>
Server Config
</li>
<li data-file="playerdata">
<span class="material-symbols-rounded">account_circle</span>
Player Data
</li>
<li data-file="jobs">
<span class="material-symbols-rounded">work</span>
Jobs
</li>
<li data-file="gangs">
<span class="material-symbols-rounded">work</span>
Gangs
</li>
<li data-file="items">
<span class="material-symbols-rounded">inventory_2</span>
Items
</li>
<li data-file="vehicles">
<span class="material-symbols-rounded">directions_car</span>
Vehicles
</li>
<li data-file="weapons">
<span class="material-symbols-rounded">bolt</span>
Weapons
</li>
</ul>
</div>
<div class="main-content">
<div class="search-container">
<div class="search-wrapper">
<span class="material-symbols-rounded search-icon">search</span>
<input type="text" id="search-input" placeholder="Search..." aria-label="Search through config items" />
</div>
</div>
<div id="data-container"></div>
</div>
</div>
<div id="edit-modal" class="hidden">
<div class="modal-content">
<div class="modal-header">
<h2>Edit Item</h2>
<button id="close-modal-btn" aria-label="Close Modal">
<span class="material-symbols-rounded">close</span>
</button>
</div>
<div class="modal-body">
<div id="editor-form"></div>
</div>
<div class="modal-footer">
<button id="cancel-edit-btn">Cancel</button>
<button id="save-item-btn">
<span class="material-symbols-rounded">check</span>
Save
</button>
</div>
</div>
</div>
</div>
<!-- Floating Action Button -->
<button id="add-item-fab" class="fab" aria-label="Add New Item">
<span class="material-symbols-rounded">add</span>
</button>
</body>
</html>
+579
View File
@@ -0,0 +1,579 @@
// Main data store
let configData = {};
let currentFile = "config";
let currentEditItem = null;
let editPath = null;
// Elements
const dataContainer = document.getElementById("data-container");
const searchInput = document.getElementById("search-input");
const saveBtn = document.getElementById("save-btn");
const closeBtn = document.getElementById("close-btn");
const editModal = document.getElementById("edit-modal");
const closeModalBtn = document.getElementById("close-modal-btn");
const saveItemBtn = document.getElementById("save-item-btn");
const cancelEditBtn = document.getElementById("cancel-edit-btn");
const editorForm = document.getElementById("editor-form");
const fileListItems = document.querySelectorAll(".file-list li");
const fabButton = document.getElementById("add-item-fab");
let fileInput;
// Initialize
document.addEventListener("DOMContentLoaded", () => {
// Add event listeners
searchInput.addEventListener("input", filterData);
saveBtn.addEventListener("click", saveChanges);
closeBtn.addEventListener("click", closeEditor);
closeModalBtn.addEventListener("click", closeModal);
saveItemBtn.addEventListener("click", saveItemChanges);
cancelEditBtn.addEventListener("click", closeModal);
fabButton.addEventListener("click", addItemModal);
fileListItems.forEach((item) => {
item.addEventListener("click", () => {
// Update active state
fileListItems.forEach((i) => i.classList.remove("active"));
item.classList.add("active");
// Change current file
currentFile = item.dataset.file;
// Load file data - in a real implementation, this would trigger a fetch to the server
// For now, we'll just use the data we already have
currentFile = item.dataset.file;
renderData();
});
});
// Listen for NUI messages from FiveM
window.addEventListener("message", function (event) {
const data = event.data;
if (data.action === "populateData") {
// Expect data.data to be an object with each file's data
configData = data.data;
renderData();
}
});
});
const templates = {
jobs: {
defaultDuty: false,
offDutyPay: false,
type: "",
label: "",
grades: [
{
name: "",
isboss: false,
payment: 0,
},
],
},
gangs: {
label: "",
grades: [
{
name: "",
isboss: false,
level: 0,
},
],
},
items: {
unique: false,
shouldClose: false,
useable: false,
name: "",
label: "",
weight: 0,
type: "",
image: "",
description: "",
ammotype: "",
},
vehicles: {
brand: "",
price: 0,
name: "",
category: "",
model: "",
type: "",
shop: ["pdm"],
},
weapons: {
name: "",
label: "",
damageReason: "",
weapontype: "",
ammotype: "",
},
};
function addItemModal() {
const modal = document.getElementById("edit-modal");
const editorForm = document.getElementById("editor-form");
// Clear the form and set it up for adding a new item
editorForm.innerHTML = ""; // Clear any existing content
modal.classList.remove("hidden"); // Show the modal
// Get the template for the current category
const template = templates[currentFile] || {};
// Add fields for the new item based on the template
Object.entries(template).forEach(([key, value]) => {
const formGroup = document.createElement("div");
formGroup.className = "form-group";
const label = document.createElement("label");
label.textContent = key;
formGroup.appendChild(label);
if (typeof value === "boolean" || typeof value === "string" || typeof value === "number") {
const field = createInputField({
key,
value,
onChange: () => {}, // No need to handle it now, we'll read from DOM on save
});
formGroup.appendChild(field.querySelector("input"));
} else if (Array.isArray(value)) {
const arrayField = createArrayField({
key,
array: value,
onItemChange: () => {}, // Again, no live tracking needed
onItemRemove: (index) => {
value.splice(index, 1);
addItemModal(); // re-render modal
},
onItemAdd: () => {
// Clone first item or fallback
if (value.length > 0 && typeof value[0] === "object") {
const newItem = {};
Object.entries(value[0]).forEach(([k, v]) => {
newItem[k] = typeof v === "number" ? 0 : typeof v === "boolean" ? false : "";
});
value.push(newItem);
} else {
value.push("");
}
addItemModal(); // re-render modal
},
});
arrayField.id = `new-item-${key}`;
formGroup.appendChild(arrayField);
} else {
const input = document.createElement("input");
input.type = "text";
input.className = "form-control";
input.value = value;
formGroup.appendChild(input);
}
editorForm.appendChild(formGroup);
});
// Add Save and Cancel buttons
const saveButton = document.getElementById("save-item-btn");
saveButton.onclick = saveNewItem;
const cancelButton = document.getElementById("cancel-edit-btn");
cancelButton.onclick = () => {
modal.classList.add("hidden"); // Hide the modal
};
}
function saveNewItem() {
const template = templates[currentFile] || {};
const newItem = {};
// Populate the new item based on the template
Object.entries(template).forEach(([key, value]) => {
if (Array.isArray(value)) {
// Handle arrays
const arrayContainer = document.getElementById(`new-item-${key}`);
const arrayItems = Array.from(arrayContainer.querySelectorAll(".array-item"));
newItem[key] = arrayItems.map((itemGroup) => {
const item = {};
Array.from(itemGroup.querySelectorAll("input")).forEach((input) => {
const itemKey = input.dataset.itemKey;
item[itemKey] = input.type === "number" ? parseFloat(input.value) || 0 : input.value;
});
return item;
});
} else {
// Handle simple values
const input = document.getElementById(`new-item-${key}`);
if (input) {
newItem[key] = input.type === "checkbox" ? input.checked : input.value;
}
}
});
// Add the new item to the current category
if (!configData[currentFile]) {
configData[currentFile] = {};
}
const itemName = document.getElementById("new-item-name").value.trim();
if (!itemName) {
alert("Please provide a name for the new item.");
return;
}
configData[currentFile][itemName] = newItem;
// Update the UI
renderData();
// Close the modal
document.getElementById("edit-modal").classList.add("hidden");
}
// Render data in the container
function renderData() {
dataContainer.innerHTML = "";
if (!configData[currentFile]) {
dataContainer.innerHTML = "<p>No data available for this file.</p>";
return;
}
const data = configData[currentFile];
const searchText = searchInput.value.toLowerCase();
// For object-based data (like jobs)
Object.entries(data).forEach(([key, value]) => {
// If there's a search term, filter the data
if (searchText && !key.toLowerCase().includes(searchText) && !JSON.stringify(value).toLowerCase().includes(searchText)) {
return;
}
const card = document.createElement("div");
card.className = "data-card";
card.dataset.key = key;
// Create card header
const header = document.createElement("h3");
header.textContent = key;
card.appendChild(header);
// Create properties section
const properties = document.createElement("div");
properties.className = "data-properties";
// Add main properties (not going too deep)
Object.entries(value).forEach(([propKey, propValue]) => {
// Skip complex objects for the card view
if (typeof propValue === "object" && propValue !== null) {
return;
}
const property = document.createElement("div");
property.className = "property";
const label = document.createElement("span");
label.className = "property-label";
label.textContent = propKey;
const val = document.createElement("span");
val.className = "property-value";
val.textContent = propValue;
property.appendChild(label);
property.appendChild(val);
properties.appendChild(property);
});
card.appendChild(properties);
// Add click event to edit
card.addEventListener("click", () => {
editItem(key, value);
});
dataContainer.appendChild(card);
});
}
// Create form for editing
function createForm(obj) {
editorForm.innerHTML = "";
const sortedKeys = Object.keys(obj).sort((a, b) => {
const typeOrder = (value) => {
if (typeof value === "boolean") return 0;
if (typeof value === "string" || typeof value === "number") return 1;
if (Array.isArray(value)) return 2;
return 3;
};
return typeOrder(obj[a]) - typeOrder(obj[b]);
});
sortedKeys.forEach((key) => {
const value = obj[key];
const formGroup = document.createElement("div");
formGroup.className = "form-group";
const label = document.createElement("label");
label.htmlFor = `field-${key}`;
label.textContent = key;
formGroup.appendChild(label);
if (typeof value === "boolean" || typeof value === "string" || typeof value === "number") {
const field = createInputField({
key,
value,
onChange: (val) => updateValue(key, val),
});
formGroup.appendChild(field.querySelector("input"));
} else if (Array.isArray(value)) {
const arrayField = createArrayField({
key,
array: value,
onItemChange: (index, itemKey, val) => {
if (itemKey) {
updateArrayObjectValue(key, index, itemKey, val);
} else {
updateArrayValue(key, index, val);
}
},
onItemRemove: (index) => removeArrayItem(key, index),
onItemAdd: () => addArrayItem(key, value),
});
formGroup.appendChild(arrayField);
} else {
// Fallback for objects or unknown types
const objectContainer = document.createElement("div");
objectContainer.className = "complex-object";
const header = document.createElement("div");
header.className = "complex-object-header";
objectContainer.appendChild(header);
const textarea = document.createElement("textarea");
textarea.className = "form-control";
textarea.value = JSON.stringify(value, null, 2);
textarea.dataset.key = key;
textarea.addEventListener("input", (e) => {
try {
const parsed = JSON.parse(e.target.value);
updateValue(key, parsed);
textarea.style.borderColor = "#3d3d3d";
} catch (err) {
textarea.style.borderColor = "#ff4d4d";
}
});
objectContainer.appendChild(textarea);
formGroup.appendChild(objectContainer);
}
editorForm.appendChild(formGroup);
});
}
// UTILS
function createInputField({ key, value, onChange }) {
const formGroup = document.createElement("div");
formGroup.className = "form-group";
const label = document.createElement("label");
label.textContent = key;
formGroup.appendChild(label);
const input = document.createElement("input");
if (typeof value === "boolean") {
input.type = "checkbox";
input.checked = value;
} else if (typeof value === "number") {
input.type = "number";
input.value = value;
} else {
input.type = "text";
input.value = value;
}
input.className = "form-control";
input.addEventListener("input", (e) => {
let newValue;
if (input.type === "checkbox") {
newValue = input.checked;
} else if (input.type === "number") {
newValue = parseFloat(e.target.value) || 0;
} else {
newValue = e.target.value;
}
onChange(newValue);
});
formGroup.appendChild(input);
return formGroup;
}
function createArrayField({ key, array, onItemChange, onItemRemove, onItemAdd }) {
const container = document.createElement("div");
container.className = "complex-object";
const header = document.createElement("div");
header.className = "complex-object-header";
const addBtn = document.createElement("button");
addBtn.className = "add-item-btn";
addBtn.textContent = "Add Item";
addBtn.addEventListener("click", (e) => {
e.preventDefault();
onItemAdd();
});
header.appendChild(addBtn);
container.appendChild(header);
array.forEach((item, index) => {
const arrayItem = document.createElement("div");
arrayItem.className = "array-item";
// Remove button
const removeBtn = document.createElement("button");
removeBtn.className = "remove-item-btn";
removeBtn.textContent = "x";
removeBtn.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
onItemRemove(index);
});
arrayItem.appendChild(removeBtn);
if (typeof item === "object" && item !== null) {
Object.entries(item).forEach(([itemKey, itemValue]) => {
const field = createInputField({
key: itemKey,
value: itemValue,
onChange: (val) => onItemChange(index, itemKey, val),
});
arrayItem.appendChild(field);
});
} else {
const input = document.createElement("input");
input.className = "form-control";
input.value = item;
input.addEventListener("input", (e) => {
onItemChange(index, null, e.target.value);
});
arrayItem.appendChild(input);
}
container.appendChild(arrayItem);
});
return container;
}
// Filter data based on search input
function filterData() {
renderData();
}
// Edit an item
function editItem(key, value) {
currentEditItem = { key, value: JSON.parse(JSON.stringify(value)) };
editPath = null; // Reset path for root level editing
// Create form for editing
createForm(value);
// Show the modal
editModal.classList.remove("hidden");
}
function setDeepValue(obj, pathArray, value) {
const lastKey = pathArray.pop();
const target = pathArray.reduce((acc, key) => acc[key], obj);
target[lastKey] = value;
}
function updateValue(key, value) {
const path = editPath ? editPath.split(".").concat(key) : [key];
setDeepValue(currentEditItem.value, path, value);
}
function updateArrayValue(arrayKey, index, value) {
const path = editPath ? editPath.split(".").concat([arrayKey, index]) : [arrayKey, index];
setDeepValue(currentEditItem.value, path, value);
}
function updateArrayObjectValue(arrayKey, index, itemKey, value) {
const path = editPath ? editPath.split(".").concat([arrayKey, index, itemKey]) : [arrayKey, index, itemKey];
setDeepValue(currentEditItem.value, path, value);
}
function updateArray(arrayKey, action, index = null, newItem = null) {
const path = editPath ? editPath.split(".").concat([arrayKey]) : [arrayKey];
const target = path.reduce((acc, key) => acc[key], currentEditItem.value);
if (action === "add") {
target.push(newItem);
} else if (action === "remove" && index !== null) {
target.splice(index, 1);
}
createForm(currentEditItem.value);
}
function addArrayItem(arrayKey, array) {
let newItem;
if (array.length > 0 && typeof array[0] === "object" && array[0] !== null) {
newItem = {};
Object.keys(array[0]).forEach((key) => {
const sample = array[0][key];
newItem[key] = typeof sample === "number" ? 0 : typeof sample === "boolean" ? false : "";
});
} else {
newItem = typeof array[0] === "number" ? 0 : "";
}
updateArray(arrayKey, "add", null, newItem);
}
function removeArrayItem(arrayKey, index) {
updateArray(arrayKey, "remove", index);
}
// Save changes to the edited item
function saveItemChanges() {
configData[currentFile][currentEditItem.key] = currentEditItem.value;
closeModal();
renderData();
}
// Close the edit modal
function closeModal() {
editModal.classList.add("hidden");
currentEditItem = null;
editPath = null;
}
// Save all changes to the server
function saveChanges() {
// Send data back to the client
fetch(`https://${GetParentResourceName()}/saveConfig`, {
method: "POST",
headers: {
"Content-Type": "application/json; charset=UTF-8",
},
body: JSON.stringify({
file: currentFile,
data: configData[currentFile],
}),
}).catch((err) => console.error("Error:", err));
}
// Close the editor
function closeEditor() {
fetch(`https://${GetParentResourceName()}/closeEditor`, {
method: "POST",
}).catch((err) => console.error("Error:", err));
}
+56
View File
@@ -0,0 +1,56 @@
RegisterCommand('qbeditor', function(source)
local files = {
config = LoadResourceFile('qb-core', 'shared/json/config.json'),
gangs = LoadResourceFile('qb-core', 'shared/json/gangs.json'),
items = LoadResourceFile('qb-core', 'shared/json/items.json'),
jobs = LoadResourceFile('qb-core', 'shared/json/jobs.json'),
playerdata = LoadResourceFile('qb-core', 'shared/json/player_defaults.json'),
vehicles = LoadResourceFile('qb-core', 'shared/json/vehicles.json'),
weapons = LoadResourceFile('qb-core', 'shared/json/weapons.json'),
}
local allData = {}
for key, fileContent in pairs(files) do
if not fileContent then
print('^1[QBCore] Failed to load ' .. key .. ' JSON File')
else
allData[key] = json.decode(fileContent)
end
end
TriggerClientEvent('qb-core:client:configEditor', source, allData)
end, true)
RegisterNetEvent('qb-core:server:configEditor', function(fileName, fileData)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if not Player then return end
if not QBCore.Functions.HasPermission('god') then
local filePaths = {
['config'] = 'shared/json/config.json',
['gangs'] = 'shared/json/gangs.json',
['items'] = 'shared/json/items.json',
['jobs'] = 'shared/json/jobs.json',
['playerdata'] = 'shared/json/player_defaults.json',
['vehicles'] = 'shared/json/vehicles.json',
['weapons'] = 'shared/json/weapons.json'
}
local filePath = filePaths[fileName]
if not filePath then
print('^1[QBCore] Invalid file name: ' .. fileName)
return
end
local encodedData = json.encode(fileData, { indent = true })
local saved = SaveResourceFile('qb-core', filePath, encodedData, -1)
if saved then
print('^2[QBCore] Player ' .. GetPlayerName(src) .. ' (ID: ' .. src .. ') successfully saved ' .. fileName .. ' configuration')
TriggerClientEvent('QBCore:Notify', src, 'Configuration saved successfully', 'success')
else
print('^1[QBCore] Failed to save ' .. fileName .. ' configuration')
TriggerClientEvent('QBCore:Notify', src, 'Failed to save configuration', 'error')
end
else
print('^1[QBCore] Player ' .. GetPlayerName(src) .. ' (ID: ' .. src .. ') attempted to save ' .. fileName .. ' configuration without permission')
TriggerClientEvent('QBCore:Notify', src, 'You don\'t have permission to edit configs', 'error')
end
end)
+2 -2
View File
@@ -395,9 +395,9 @@ function QBCore.Functions.CreateVehicle(source, model, vehtype, coords, warp)
end
function PaycheckInterval()
if not next(QBCore.Players) then
if not next(QBCore.Players) then
SetTimeout(QBCore.Config.Money.PayCheckTimeOut * (60 * 1000), PaycheckInterval) -- Prevent paychecks from stopping forever once 0 players
return
return
end
for _, Player in pairs(QBCore.Players) do
if not Player then return end
-49
View File
@@ -1,49 +0,0 @@
QBCore = {}
QBCore.Config = QBConfig
QBCore.Shared = QBShared
QBCore.ClientCallbacks = {}
QBCore.ServerCallbacks = {}
-- Get the full QBCore object (default behavior):
-- local QBCore = GetCoreObject()
-- Get only specific parts of QBCore:
-- local QBCore = GetCoreObject({'Players', 'Config'})
local function GetCoreObject(filters)
if not filters then return QBCore end
local results = {}
for i = 1, #filters do
local key = filters[i]
if QBCore[key] then
results[key] = QBCore[key]
end
end
return results
end
exports('GetCoreObject', GetCoreObject)
local function GetSharedItems()
return QBShared.Items
end
exports('GetSharedItems', GetSharedItems)
local function GetSharedVehicles()
return QBShared.Vehicles
end
exports('GetSharedVehicles', GetSharedVehicles)
local function GetSharedWeapons()
return QBShared.Weapons
end
exports('GetSharedWeapons', GetSharedWeapons)
local function GetSharedJobs()
return QBShared.Jobs
end
exports('GetSharedJobs', GetSharedJobs)
local function GetSharedGangs()
return QBShared.Gangs
end
exports('GetSharedGangs', GetSharedGangs)
+80
View File
@@ -0,0 +1,80 @@
{
"MaxPlayers": 32,
"DefaultSpawn": {"x": -1035.71, "y": -2731.87, "z": 12.86, "h": 0.0},
"UpdateInterval": 5,
"StatusInterval": 5000,
"Money": {
"MoneTypes": {
"cash": 500,
"bank": 5000,
"crypto": 0
},
"DontAllowMinus": {
"cash": true,
"bank": false,
"crypto": true
},
"MinusLimit": -5000,
"PayCheckTimeOut": 10,
"PayCheckSociety": false
},
"Player": {
"HungerRate": 4.2,
"ThirstRate": 3.8,
"Bloodtypes": [
"A+",
"A-",
"B+",
"B-",
"AB+",
"AB-",
"O+",
"O-"
]
},
"Server": {
"Closed": false,
"ClosedReason": "Server Closed",
"Uptime": 0,
"Whitelist": false,
"WhitelistPermission": "admin",
"PVP": true,
"Discord": "",
"CheckDuplicateLicense": true,
"Permissions": ["god", "admin", "mod"]
},
"Commands": {
"OOCColor": [ 255, 151, 133 ]
},
"NotificationStyling": {
"group": false,
"position": "right",
"progress": true
},
"VariantDefinitions": {
"success": {
"classes": "success",
"icon": "check_circle"
},
"primary": {
"classes": "primary",
"icon": "notifications"
},
"warning": {
"classes": "warning",
"icon": "warning"
},
"error": {
"classes": "error",
"icon": "error"
},
"police": {
"classes": "police",
"icon": "local_police"
},
"ambulance": {
"classes": "ambulance",
"icon": "fas fa-ambulance"
}
}
}
+52
View File
@@ -0,0 +1,52 @@
QBCore = {
Config = {
Money = {},
Player = {},
Server = {},
Commands = {},
Notify = {}
},
Shared = {
Jobs = {},
Gangs = {},
Items = {},
Vehicles = {},
Weapons = {},
VehicleHashes = {},
},
Player = {},
Players = {},
PlayerData = {},
Functions = {},
ClientCallbacks = {},
ServerCallbacks = {},
Player_Buckets = {},
Entity_Buckets = {},
UsableItems = {},
Commands = {
List = {},
IgnoreList = {
['god'] = true,
['user'] = true
}
}
}
local function GetCoreObject(filters)
if not filters then return QBCore end
local results = {}
for i = 1, #filters do
local key = filters[i]
if QBCore[key] then
results[key] = QBCore[key]
end
end
return results
end
exports('GetCoreObject', GetCoreObject)
exports('GetSharedItems', function() return QBCore.Shared.Items end)
exports('GetSharedVehicles', function() return QBCore.Shared.Vehicles end)
exports('GetSharedWeapons', function() return QBCore.Shared.Weapons end)
exports('GetSharedJobs', function() return QBCore.Shared.Jobs end)
exports('GetSharedGangs', function() return QBCore.Shared.Gangs end)
+118
View File
@@ -0,0 +1,118 @@
{
"none": {
"label": "No Gang",
"grades": [
{
"name": "Unaffiliated"
}
]
},
"lostmc": {
"label": "The Lost MC",
"grades": [
{
"name": "Recruit"
},
{
"name": "Enforcer"
},
{
"name": "Shot Caller"
},
{
"name": "Boss",
"isboss": true
}
]
},
"ballas": {
"label": "Ballas",
"grades": [
{
"name": "Recruit"
},
{
"name": "Enforcer"
},
{
"name": "Shot Caller"
},
{
"name": "Boss",
"isboss": true
}
]
},
"vagos": {
"label": "Vagos",
"grades": [
{
"name": "Recruit"
},
{
"name": "Enforcer"
},
{
"name": "Shot Caller"
},
{
"name": "Boss",
"isboss": true
}
]
},
"cartel": {
"label": "Cartel",
"grades": [
{
"name": "Recruit"
},
{
"name": "Enforcer"
},
{
"name": "Shot Caller"
},
{
"name": "Boss",
"isboss": true
}
]
},
"families": {
"label": "Families",
"grades": [
{
"name": "Recruit"
},
{
"name": "Enforcer"
},
{
"name": "Shot Caller"
},
{
"name": "Boss",
"isboss": true
}
]
},
"triads": {
"label": "Triads",
"grades": [
{
"name": "Recruit"
},
{
"name": "Enforcer"
},
{
"name": "Shot Caller"
},
{
"name": "Boss",
"isboss": true
}
]
}
}
-58
View File
@@ -1,58 +0,0 @@
QBShared = QBShared or {}
QBShared.Gangs = {
none = { label = 'No Gang', grades = { ['0'] = { name = 'Unaffiliated' } } },
lostmc = {
label = 'The Lost MC',
grades = {
['0'] = { name = 'Recruit' },
['1'] = { name = 'Enforcer' },
['2'] = { name = 'Shot Caller' },
['3'] = { name = 'Boss', isboss = true },
},
},
ballas = {
label = 'Ballas',
grades = {
['0'] = { name = 'Recruit' },
['1'] = { name = 'Enforcer' },
['2'] = { name = 'Shot Caller' },
['3'] = { name = 'Boss', isboss = true },
},
},
vagos = {
label = 'Vagos',
grades = {
['0'] = { name = 'Recruit' },
['1'] = { name = 'Enforcer' },
['2'] = { name = 'Shot Caller' },
['3'] = { name = 'Boss', isboss = true },
},
},
cartel = {
label = 'Cartel',
grades = {
['0'] = { name = 'Recruit' },
['1'] = { name = 'Enforcer' },
['2'] = { name = 'Shot Caller' },
['3'] = { name = 'Boss', isboss = true },
},
},
families = {
label = 'Families',
grades = {
['0'] = { name = 'Recruit' },
['1'] = { name = 'Enforcer' },
['2'] = { name = 'Shot Caller' },
['3'] = { name = 'Boss', isboss = true },
},
},
triads = {
label = 'Triads',
grades = {
['0'] = { name = 'Recruit' },
['1'] = { name = 'Enforcer' },
['2'] = { name = 'Shot Caller' },
['3'] = { name = 'Boss', isboss = true },
},
}
}
+3533
View File
File diff suppressed because it is too large Load Diff
-390
View File
@@ -1,390 +0,0 @@
QBShared = QBShared or {}
QBShared.Items = {
-- WEAPONS
-- Melee
weapon_unarmed = { name = 'weapon_unarmed', label = 'Fists', weight = 1000, type = 'weapon', ammotype = nil, image = 'placeholder.png', unique = true, useable = false, description = 'Fisticuffs' },
weapon_dagger = { name = 'weapon_dagger', label = 'Dagger', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_dagger.png', unique = true, useable = false, description = 'A short knife with a pointed and edged blade, used as a weapon' },
weapon_bat = { name = 'weapon_bat', label = 'Bat', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_bat.png', unique = true, useable = false, description = 'Used for hitting a ball in sports (or other things)' },
weapon_bottle = { name = 'weapon_bottle', label = 'Broken Bottle', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_bottle.png', unique = true, useable = false, description = 'A broken bottle' },
weapon_crowbar = { name = 'weapon_crowbar', label = 'Crowbar', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_crowbar.png', unique = true, useable = false, description = 'An iron bar with a flattened end, used as a lever' },
weapon_flashlight = { name = 'weapon_flashlight', label = 'Flashlight', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_flashlight.png', unique = true, useable = false, description = 'A battery-operated portable light' },
weapon_golfclub = { name = 'weapon_golfclub', label = 'Golfclub', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_golfclub.png', unique = true, useable = false, description = 'A club used to hit the ball in golf' },
weapon_hammer = { name = 'weapon_hammer', label = 'Hammer', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_hammer.png', unique = true, useable = false, description = 'Used for jobs such as breaking things (legs) and driving in nails' },
weapon_hatchet = { name = 'weapon_hatchet', label = 'Hatchet', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_hatchet.png', unique = true, useable = false, description = 'A small axe with a short handle for use in one hand' },
weapon_knuckle = { name = 'weapon_knuckle', label = 'Knuckle', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_knuckle.png', unique = true, useable = false, description = 'A metal guard worn over the knuckles in fighting, especially to increase the effect of the blows' },
weapon_knife = { name = 'weapon_knife', label = 'Knife', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_knife.png', unique = true, useable = false, description = 'An instrument composed of a blade fixed into a handle, used for cutting or as a weapon' },
weapon_machete = { name = 'weapon_machete', label = 'Machete', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_machete.png', unique = true, useable = false, description = 'A broad, heavy knife used as a weapon' },
weapon_switchblade = { name = 'weapon_switchblade', label = 'Switchblade', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_switchblade.png', unique = true, useable = false, description = 'A knife with a blade that springs out from the handle when a button is pressed' },
weapon_nightstick = { name = 'weapon_nightstick', label = 'Nightstick', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_nightstick.png', unique = true, useable = false, description = 'A police officer\'s club or billy' },
weapon_wrench = { name = 'weapon_wrench', label = 'Wrench', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_wrench.png', unique = true, useable = false, description = 'A tool used for gripping and turning nuts, bolts, pipes, etc' },
weapon_battleaxe = { name = 'weapon_battleaxe', label = 'Battle Axe', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_battleaxe.png', unique = true, useable = false, description = 'A large broad-bladed axe used in ancient warfare' },
weapon_poolcue = { name = 'weapon_poolcue', label = 'Poolcue', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_poolcue.png', unique = true, useable = false, description = 'A stick used to strike a ball, usually the cue ball (or other things)' },
weapon_briefcase = { name = 'weapon_briefcase', label = 'Briefcase', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_briefcase.png', unique = true, useable = false, description = 'A briefcase for storing important documents' },
weapon_briefcase_02 = { name = 'weapon_briefcase_02', label = 'Suitcase', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_briefcase2.png', unique = true, useable = false, description = 'Wonderfull for nice vacation to Liberty City' },
weapon_garbagebag = { name = 'weapon_garbagebag', label = 'Garbage Bag', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_garbagebag.png', unique = true, useable = false, description = 'A garbage bag' },
weapon_handcuffs = { name = 'weapon_handcuffs', label = 'Handcuffs', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_handcuffs.png', unique = true, useable = false, description = 'A pair of lockable linked metal rings for securing a prisoner\'s wrists' },
weapon_bread = { name = 'weapon_bread', label = 'Baquette', weight = 1000, type = 'weapon', ammotype = nil, image = 'baquette.png', unique = true, useable = false, description = 'Bread...?' },
weapon_stone_hatchet = { name = 'weapon_stone_hatchet', label = 'Stone Hatchet', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_stone_hatchet.png', unique = true, useable = true, description = 'Stone Hatchet' },
weapon_candycane = { name = 'weapon_candycane', label = 'Candy Cane', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_candycane', unique = true, useable = true, description = 'Candy Cane' },
-- Handguns
weapon_pistol = { name = 'weapon_pistol', label = 'Walther P99', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_pistol.png', unique = true, useable = false, description = 'A small firearm designed to be held in one hand' },
weapon_pistol_mk2 = { name = 'weapon_pistol_mk2', label = 'Pistol Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_pistol_mk2.png', unique = true, useable = false, description = 'An upgraded small firearm designed to be held in one hand' },
weapon_combatpistol = { name = 'weapon_combatpistol', label = 'Combat Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_combatpistol.png', unique = true, useable = false, description = 'A combat version small firearm designed to be held in one hand' },
weapon_appistol = { name = 'weapon_appistol', label = 'AP Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_appistol.png', unique = true, useable = false, description = 'A small firearm designed to be held in one hand that is automatic' },
weapon_stungun = { name = 'weapon_stungun', label = 'Taser', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_stungun.png', unique = true, useable = false, description = 'A weapon firing barbs attached by wires to batteries, causing temporary paralysis' },
weapon_pistol50 = { name = 'weapon_pistol50', label = 'Pistol .50', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_pistol50.png', unique = true, useable = false, description = 'A .50 caliber firearm designed to be held with both hands' },
weapon_snspistol = { name = 'weapon_snspistol', label = 'SNS Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_snspistol.png', unique = true, useable = false, description = 'A very small firearm designed to be easily concealed' },
weapon_heavypistol = { name = 'weapon_heavypistol', label = 'Heavy Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_heavypistol.png', unique = true, useable = false, description = 'A hefty firearm designed to be held in one hand (or attempted)' },
weapon_vintagepistol = { name = 'weapon_vintagepistol', label = 'Vintage Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_vintagepistol.png', unique = true, useable = false, description = 'An antique firearm designed to be held in one hand' },
weapon_flaregun = { name = 'weapon_flaregun', label = 'Flare Gun', weight = 1000, type = 'weapon', ammotype = 'AMMO_FLARE', image = 'weapon_flaregun.png', unique = true, useable = false, description = 'A handgun for firing signal rockets' },
weapon_marksmanpistol = { name = 'weapon_marksmanpistol', label = 'Marksman Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_marksmanpistol.png', unique = true, useable = false, description = 'A very accurate small firearm designed to be held in one hand' },
weapon_revolver = { name = 'weapon_revolver', label = 'Revolver', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_revolver.png', unique = true, useable = false, 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, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_revolver_mk2.png', unique = true, useable = true, description = 'da Violence' },
weapon_doubleaction = { name = 'weapon_doubleaction', label = 'Double Action Revolver', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_doubleaction.png', unique = true, useable = true, description = 'Double Action Revolver' },
weapon_snspistol_mk2 = { name = 'weapon_snspistol_mk2', label = 'SNS Pistol Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_snspistol_mk2.png', unique = true, useable = true, description = 'SNS Pistol MK2' },
weapon_raypistol = { name = 'weapon_raypistol', label = 'Up-n-Atomizer', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_raypistol.png', unique = true, useable = true, description = 'Weapon Raypistol' },
weapon_ceramicpistol = { name = 'weapon_ceramicpistol', label = 'Ceramic Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_ceramicpistol.png', unique = true, useable = true, description = 'Weapon Ceramicpistol' },
weapon_navyrevolver = { name = 'weapon_navyrevolver', label = 'Navy Revolver', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_navyrevolver.png', unique = true, useable = true, description = 'Weapon Navyrevolver' },
weapon_gadgetpistol = { name = 'weapon_gadgetpistol', label = 'Perico Pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_gadgetpistol.png', unique = true, useable = true, description = 'Weapon Gadgetpistol' },
weapon_pistolxm3 = { name = 'weapon_pistolxm3', label = 'Pistol XM3', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_pistolxm3.png', unique = true, useable = true, description = 'Pistol XM3' },
-- Submachine Guns
weapon_microsmg = { name = 'weapon_microsmg', label = 'Micro SMG', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_microsmg.png', unique = true, useable = false, description = 'A handheld light weight machine gun' },
weapon_smg = { name = 'weapon_smg', label = 'SMG', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_smg.png', unique = true, useable = false, description = 'A handheld light weight machine gun' },
weapon_smg_mk2 = { name = 'weapon_smg_mk2', label = 'SMG Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_smg_mk2.png', unique = true, useable = true, description = 'SMG MK2' },
weapon_assaultsmg = { name = 'weapon_assaultsmg', label = 'Assault SMG', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_assaultsmg.png', unique = true, useable = false, description = 'An assault version of a handheld light weight machine gun' },
weapon_combatpdw = { name = 'weapon_combatpdw', label = 'Combat PDW', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_combatpdw.png', unique = true, useable = false, description = 'A combat version of a handheld light weight machine gun' },
weapon_machinepistol = { name = 'weapon_machinepistol', label = 'Tec-9', weight = 1000, type = 'weapon', ammotype = 'AMMO_PISTOL', image = 'weapon_machinepistol.png', unique = true, useable = false, description = 'A self-loading pistol capable of burst or fully automatic fire' },
weapon_minismg = { name = 'weapon_minismg', label = 'Mini SMG', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_minismg.png', unique = true, useable = false, description = 'A mini handheld light weight machine gun' },
weapon_raycarbine = { name = 'weapon_raycarbine', label = 'Unholy Hellbringer', weight = 1000, type = 'weapon', ammotype = 'AMMO_SMG', image = 'weapon_raycarbine.png', unique = true, useable = true, description = 'Weapon Raycarbine' },
-- Shotguns
weapon_pumpshotgun = { name = 'weapon_pumpshotgun', label = 'Pump Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_pumpshotgun.png', unique = true, useable = false, description = 'A pump-action smoothbore gun for firing small shot at short range' },
weapon_sawnoffshotgun = { name = 'weapon_sawnoffshotgun', label = 'Sawn-off Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_sawnoffshotgun.png', unique = true, useable = false, description = 'A sawn-off smoothbore gun for firing small shot at short range' },
weapon_assaultshotgun = { name = 'weapon_assaultshotgun', label = 'Assault Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_assaultshotgun.png', unique = true, useable = false, description = 'An assault version of asmoothbore gun for firing small shot at short range' },
weapon_bullpupshotgun = { name = 'weapon_bullpupshotgun', label = 'Bullpup Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_bullpupshotgun.png', unique = true, useable = false, description = 'A compact smoothbore gun for firing small shot at short range' },
weapon_musket = { name = 'weapon_musket', label = 'Musket', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_musket.png', unique = true, useable = false, description = 'An infantryman\'s light gun with a long barrel, typically smooth-bored, muzzleloading, and fired from the shoulder' },
weapon_heavyshotgun = { name = 'weapon_heavyshotgun', label = 'Heavy Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_heavyshotgun.png', unique = true, useable = false, description = 'A large smoothbore gun for firing small shot at short range' },
weapon_dbshotgun = { name = 'weapon_dbshotgun', label = 'Double-barrel Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_dbshotgun.png', unique = true, useable = false, description = 'A shotgun with two parallel barrels, allowing two single shots to be fired in quick succession' },
weapon_autoshotgun = { name = 'weapon_autoshotgun', label = 'Auto Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_autoshotgun.png', unique = true, useable = false, description = 'A shotgun capable of rapid continous fire' },
weapon_pumpshotgun_mk2 = { name = 'weapon_pumpshotgun_mk2', label = 'Pumpshotgun Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_pumpshotgun_mk2.png', unique = true, useable = true, description = 'Pumpshotgun MK2' },
weapon_combatshotgun = { name = 'weapon_combatshotgun', label = 'Combat Shotgun', weight = 1000, type = 'weapon', ammotype = 'AMMO_SHOTGUN', image = 'weapon_combatshotgun.png', unique = true, useable = true, description = 'Weapon Combatshotgun' },
-- Assault Rifles
weapon_assaultrifle = { name = 'weapon_assaultrifle', label = 'Assault Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_assaultrifle.png', unique = true, useable = false, 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, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_assaultrifle_mk2.png', unique = true, useable = true, description = 'Assault Rifle MK2' },
weapon_carbinerifle = { name = 'weapon_carbinerifle', label = 'Carbine Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_carbinerifle.png', unique = true, useable = false, description = 'A light weight automatic rifle' },
weapon_carbinerifle_mk2 = { name = 'weapon_carbinerifle_mk2', label = 'Carbine Rifle Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_carbinerifle_mk2.png', unique = true, useable = true, description = 'Carbine Rifle MK2' },
weapon_advancedrifle = { name = 'weapon_advancedrifle', label = 'Advanced Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_advancedrifle.png', unique = true, useable = false, description = 'An assault version of a rapid-fire, magazine-fed automatic rifle designed for infantry use' },
weapon_specialcarbine = { name = 'weapon_specialcarbine', label = 'Special Carbine', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_specialcarbine.png', unique = true, useable = false, description = 'An extremely versatile assault rifle for any combat situation' },
weapon_bullpuprifle = { name = 'weapon_bullpuprifle', label = 'Bullpup Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_bullpuprifle.png', unique = true, useable = false, description = 'A compact automatic assault rifle' },
weapon_compactrifle = { name = 'weapon_compactrifle', label = 'Compact Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_compactrifle.png', unique = true, useable = false, description = 'A compact version of an assault rifle' },
weapon_specialcarbine_mk2 = { name = 'weapon_specialcarbine_mk2', label = 'Special Carbine Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_specialcarbine_mk2.png', unique = true, useable = true, description = 'Weapon Wpecialcarbine MK2' },
weapon_bullpuprifle_mk2 = { name = 'weapon_bullpuprifle_mk2', label = 'Bullpup Rifle Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_bullpuprifle_mk2.png', unique = true, useable = true, description = 'Bull Puprifle MK2' },
weapon_militaryrifle = { name = 'weapon_militaryrifle', label = 'Military Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_RIFLE', image = 'weapon_militaryrifle.png', unique = true, useable = true, description = 'Weapon Militaryrifle' },
-- Light Machine Guns
weapon_mg = { name = 'weapon_mg', label = 'Machinegun', weight = 1000, type = 'weapon', ammotype = 'AMMO_MG', image = 'weapon_mg.png', unique = true, useable = false, description = 'An automatic gun that fires bullets in rapid succession for as long as the trigger is pressed' },
weapon_combatmg = { name = 'weapon_combatmg', label = 'Combat MG', weight = 1000, type = 'weapon', ammotype = 'AMMO_MG', image = 'weapon_combatmg.png', unique = true, useable = false, description = 'A combat version of an automatic gun that fires bullets in rapid succession for as long as the trigger is pressed' },
weapon_gusenberg = { name = 'weapon_gusenberg', label = 'Thompson SMG', weight = 1000, type = 'weapon', ammotype = 'AMMO_MG', image = 'weapon_gusenberg.png', unique = true, useable = false, description = 'An automatic rifle commonly referred to as a tommy gun' },
weapon_combatmg_mk2 = { name = 'weapon_combatmg_mk2', label = 'Combat MG Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_MG', image = 'weapon_combatmg_mk2.png', unique = true, useable = true, description = 'Weapon Combatmg MK2' },
-- Sniper Rifles
weapon_sniperrifle = { name = 'weapon_sniperrifle', label = 'Sniper Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_SNIPER', image = 'weapon_sniperrifle.png', unique = true, useable = false, description = 'A high-precision, long-range rifle' },
weapon_heavysniper = { name = 'weapon_heavysniper', label = 'Heavy Sniper', weight = 1000, type = 'weapon', ammotype = 'AMMO_SNIPER', image = 'weapon_heavysniper.png', unique = true, useable = false, description = 'An upgraded high-precision, long-range rifle' },
weapon_marksmanrifle = { name = 'weapon_marksmanrifle', label = 'Marksman Rifle', weight = 1000, type = 'weapon', ammotype = 'AMMO_SNIPER', image = 'weapon_marksmanrifle.png', unique = true, useable = false, description = 'A very accurate single-fire rifle' },
weapon_remotesniper = { name = 'weapon_remotesniper', label = 'Remote Sniper', weight = 1000, type = 'weapon', ammotype = 'AMMO_SNIPER_REMOTE', image = 'weapon_remotesniper.png', unique = true, useable = false, description = 'A portable high-precision, long-range rifle' },
weapon_heavysniper_mk2 = { name = 'weapon_heavysniper_mk2', label = 'Heavy Sniper Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_SNIPER', image = 'weapon_heavysniper_mk2.png', unique = true, useable = true, description = 'Weapon Heavysniper MK2' },
weapon_marksmanrifle_mk2 = { name = 'weapon_marksmanrifle_mk2', label = 'Marksman Rifle Mk II', weight = 1000, type = 'weapon', ammotype = 'AMMO_SNIPER', image = 'weapon_marksmanrifle_mk2.png', unique = true, useable = true, description = 'Weapon Marksmanrifle MK2' },
-- Heavy Weapons
weapon_rpg = { name = 'weapon_rpg', label = 'RPG', weight = 1000, type = 'weapon', ammotype = 'AMMO_RPG', image = 'weapon_rpg.png', unique = true, useable = false, description = 'A rocket-propelled grenade launcher' },
weapon_grenadelauncher = { name = 'weapon_grenadelauncher', label = 'Grenade Launcher', weight = 1000, type = 'weapon', ammotype = 'AMMO_GRENADELAUNCHER', image = 'weapon_grenadelauncher.png', unique = true, useable = false, description = 'A weapon that fires a specially-designed large-caliber projectile, often with an explosive, smoke or gas warhead' },
weapon_grenadelauncher_smoke = { name = 'weapon_grenadelauncher_smoke', label = 'Smoke Grenade Launcher', weight = 1000, type = 'weapon', ammotype = 'AMMO_GRENADELAUNCHER', image = 'weapon_smokegrenade.png', unique = true, useable = false, description = 'A bomb that produces a lot of smoke when it explodes' },
weapon_minigun = { name = 'weapon_minigun', label = 'Minigun', weight = 1000, type = 'weapon', ammotype = 'AMMO_MINIGUN', image = 'weapon_minigun.png', unique = true, useable = false, description = 'A portable machine gun consisting of a rotating cluster of six barrels and capable of variable rates of fire of up to 6,000 rounds per minute' },
weapon_firework = { name = 'weapon_firework', label = 'Firework Launcher', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_firework.png', unique = true, useable = false, description = 'A device containing gunpowder and other combustible chemicals that causes a spectacular explosion when ignited' },
weapon_railgun = { name = 'weapon_railgun', label = 'Railgun', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_railgun.png', unique = true, useable = false, description = 'A weapon that uses electromagnetic force to launch high velocity projectiles' },
weapon_railgunxm3 = { name = 'weapon_railgunxm3', label = 'Railgun XM3', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_railgunxm3.png', unique = true, useable = false, description = 'A weapon that uses electromagnetic force to launch high velocity projectiles' },
weapon_hominglauncher = { name = 'weapon_hominglauncher', label = 'Homing Launcher', weight = 1000, type = 'weapon', ammotype = 'AMMO_STINGER', image = 'weapon_hominglauncher.png', unique = true, useable = false, description = 'A weapon fitted with an electronic device that enables it to find and hit a target' },
weapon_compactlauncher = { name = 'weapon_compactlauncher', label = 'Compact Launcher', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_compactlauncher.png', unique = true, useable = false, description = 'A compact grenade launcher' },
weapon_rayminigun = { name = 'weapon_rayminigun', label = 'Widowmaker', weight = 1000, type = 'weapon', ammotype = 'AMMO_MINIGUN', image = 'weapon_rayminigun.png', unique = true, useable = true, description = 'Weapon Rayminigun' },
-- Throwables
weapon_grenade = { name = 'weapon_grenade', label = 'Grenade', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_grenade.png', unique = true, useable = false, description = 'A handheld throwable bomb' },
weapon_bzgas = { name = 'weapon_bzgas', label = 'BZ Gas', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_bzgas.png', unique = true, useable = false, description = 'A cannister of gas that causes extreme pain' },
weapon_molotov = { name = 'weapon_molotov', label = 'Molotov', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_molotov.png', unique = true, useable = false, description = 'A crude bomb made of a bottle filled with a flammable liquid and fitted with a wick for lighting' },
weapon_stickybomb = { name = 'weapon_stickybomb', label = 'C4', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_stickybomb.png', unique = true, useable = false, description = 'An explosive charge covered with an adhesive that when thrown against an object sticks until it explodes' },
weapon_proxmine = { name = 'weapon_proxmine', label = 'Proxmine Grenade', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_proximitymine.png', unique = true, useable = false, description = 'A bomb placed on the ground that detonates when going within its proximity' },
weapon_snowball = { name = 'weapon_snowball', label = 'Snowball', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_snowball.png', unique = true, useable = false, description = 'A ball of packed snow, especially one made for throwing at other people for fun' },
weapon_pipebomb = { name = 'weapon_pipebomb', label = 'Pipe Bomb', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_pipebomb.png', unique = true, useable = false, description = 'A homemade bomb, the components of which are contained in a pipe' },
weapon_ball = { name = 'weapon_ball', label = 'Ball', weight = 1000, type = 'weapon', ammotype = 'AMMO_BALL', image = 'weapon_ball.png', unique = true, useable = false, description = 'A solid or hollow spherical or egg-shaped object that is kicked, thrown, or hit in a game' },
weapon_smokegrenade = { name = 'weapon_smokegrenade', label = 'Smoke Grenade', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_c4.png', unique = true, useable = false, description = 'An explosive charge that can be remotely detonated' },
weapon_flare = { name = 'weapon_flare', label = 'Flare pistol', weight = 1000, type = 'weapon', ammotype = 'AMMO_FLARE', image = 'weapon_flare.png', unique = true, useable = false, description = 'A small pyrotechnic devices used for illumination and signalling' },
-- Miscellaneous
weapon_petrolcan = { name = 'weapon_petrolcan', label = 'Petrol Can', weight = 1000, type = 'weapon', ammotype = 'AMMO_PETROLCAN', image = 'weapon_petrolcan.png', unique = true, useable = false, description = 'A robust liquid container made from pressed steel' },
weapon_fireextinguisher = { name = 'weapon_fireextinguisher', label = 'Fire Extinguisher', weight = 1000, type = 'weapon', ammotype = nil, image = 'weapon_fireextinguisher.png', unique = true, useable = false, 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, type = 'weapon', ammotype = 'AMMO_PETROLCAN', image = 'weapon_hazardcan.png', unique = true, useable = true, description = 'Weapon Hazardcan' },
-- Weapon Attachments
clip_attachment = { name = 'clip_attachment', label = 'Clip', weight = 1000, type = 'item', image = 'clip_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A clip for a weapon' },
drum_attachment = { name = 'drum_attachment', label = 'Drum', weight = 1000, type = 'item', image = 'drum_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A drum for a weapon' },
flashlight_attachment = { name = 'flashlight_attachment', label = 'Flashlight', weight = 1000, type = 'item', image = 'flashlight_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A flashlight for a weapon' },
suppressor_attachment = { name = 'suppressor_attachment', label = 'Suppressor', weight = 1000, type = 'item', image = 'suppressor_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A suppressor for a weapon' },
smallscope_attachment = { name = 'smallscope_attachment', label = 'Small Scope', weight = 1000, type = 'item', image = 'smallscope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A small scope for a weapon' },
medscope_attachment = { name = 'medscope_attachment', label = 'Medium Scope', weight = 1000, type = 'item', image = 'medscope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A medium scope for a weapon' },
largescope_attachment = { name = 'largescope_attachment', label = 'Large Scope', weight = 1000, type = 'item', image = 'largescope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A large scope for a weapon' },
holoscope_attachment = { name = 'holoscope_attachment', label = 'Holo Scope', weight = 1000, type = 'item', image = 'holoscope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A holo scope for a weapon' },
advscope_attachment = { name = 'advscope_attachment', label = 'Advanced Scope', weight = 1000, type = 'item', image = 'advscope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'An advanced scope for a weapon' },
nvscope_attachment = { name = 'nvscope_attachment', label = 'Night Vision Scope', weight = 1000, type = 'item', image = 'nvscope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A night vision scope for a weapon' },
thermalscope_attachment = { name = 'thermalscope_attachment', label = 'Thermal Scope', weight = 1000, type = 'item', image = 'thermalscope_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A thermal scope for a weapon' },
flat_muzzle_brake = { name = 'flat_muzzle_brake', label = 'Flat Muzzle Brake', weight = 1000, type = 'item', image = 'flat_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
tactical_muzzle_brake = { name = 'tactical_muzzle_brake', label = 'Tactical Muzzle Brake', weight = 1000, type = 'item', image = 'tactical_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brakee for a weapon' },
fat_end_muzzle_brake = { name = 'fat_end_muzzle_brake', label = 'Fat End Muzzle Brake', weight = 1000, type = 'item', image = 'fat_end_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
precision_muzzle_brake = { name = 'precision_muzzle_brake', label = 'Precision Muzzle Brake', weight = 1000, type = 'item', image = 'precision_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
heavy_duty_muzzle_brake = { name = 'heavy_duty_muzzle_brake', label = 'HD Muzzle Brake', weight = 1000, type = 'item', image = 'heavy_duty_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
slanted_muzzle_brake = { name = 'slanted_muzzle_brake', label = 'Slanted Muzzle Brake', weight = 1000, type = 'item', image = 'slanted_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
split_end_muzzle_brake = { name = 'split_end_muzzle_brake', label = 'Split End Muzzle Brake', weight = 1000, type = 'item', image = 'split_end_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
squared_muzzle_brake = { name = 'squared_muzzle_brake', label = 'Squared Muzzle Brake', weight = 1000, type = 'item', image = 'squared_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
bellend_muzzle_brake = { name = 'bellend_muzzle_brake', label = 'Bellend Muzzle Brake', weight = 1000, type = 'item', image = 'bellend_muzzle_brake.png', unique = false, useable = true, shouldClose = true, description = 'A muzzle brake for a weapon' },
barrel_attachment = { name = 'barrel_attachment', label = 'Barrel', weight = 1000, type = 'item', image = 'barrel_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A barrel for a weapon' },
grip_attachment = { name = 'grip_attachment', label = 'Grip', weight = 1000, type = 'item', image = 'grip_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A grip for a weapon' },
comp_attachment = { name = 'comp_attachment', label = 'Compensator', weight = 1000, type = 'item', image = 'comp_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A compensator for a weapon' },
luxuryfinish_attachment = { name = 'luxuryfinish_attachment', label = 'Luxury Finish', weight = 1000, type = 'item', image = 'luxuryfinish_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A luxury finish for a weapon' },
digicamo_attachment = { name = 'digicamo_attachment', label = 'Digital Camo', weight = 1000, type = 'item', image = 'digicamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A digital camo for a weapon' },
brushcamo_attachment = { name = 'brushcamo_attachment', label = 'Brushstroke Camo', weight = 1000, type = 'item', image = 'brushcamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A brushstroke camo for a weapon' },
woodcamo_attachment = { name = 'woodcamo_attachment', label = 'Woodland Camo', weight = 1000, type = 'item', image = 'woodcamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A woodland camo for a weapon' },
skullcamo_attachment = { name = 'skullcamo_attachment', label = 'Skull Camo', weight = 1000, type = 'item', image = 'skullcamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A skull camo for a weapon' },
sessantacamo_attachment = { name = 'sessantacamo_attachment', label = 'Sessanta Nove Camo', weight = 1000, type = 'item', image = 'sessantacamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A sessanta nove camo for a weapon' },
perseuscamo_attachment = { name = 'perseuscamo_attachment', label = 'Perseus Camo', weight = 1000, type = 'item', image = 'perseuscamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A perseus camo for a weapon' },
leopardcamo_attachment = { name = 'leopardcamo_attachment', label = 'Leopard Camo', weight = 1000, type = 'item', image = 'leopardcamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A leopard camo for a weapon' },
zebracamo_attachment = { name = 'zebracamo_attachment', label = 'Zebra Camo', weight = 1000, type = 'item', image = 'zebracamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A zebra camo for a weapon' },
geocamo_attachment = { name = 'geocamo_attachment', label = 'Geometric Camo', weight = 1000, type = 'item', image = 'geocamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A geometric camo for a weapon' },
boomcamo_attachment = { name = 'boomcamo_attachment', label = 'Boom Camo', weight = 1000, type = 'item', image = 'boomcamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A boom camo for a weapon' },
patriotcamo_attachment = { name = 'patriotcamo_attachment', label = 'Patriot Camo', weight = 1000, type = 'item', image = 'patriotcamo_attachment.png', unique = false, useable = true, shouldClose = true, description = 'A patriot camo for a weapon' },
-- Weapon Tints
weapontint_0 = { name = 'weapontint_0', label = 'Default Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Default/Black Weapon Tint' },
weapontint_1 = { name = 'weapontint_1', label = 'Green Tint', weight = 1000, type = 'item', image = 'weapontint_green.png', unique = false, useable = true, shouldClose = true, description = 'Green Weapon Tint' },
weapontint_2 = { name = 'weapontint_2', label = 'Gold Tint', weight = 1000, type = 'item', image = 'weapontint_gold.png', unique = false, useable = true, shouldClose = true, description = 'Gold Weapon Tint' },
weapontint_3 = { name = 'weapontint_3', label = 'Pink Tint', weight = 1000, type = 'item', image = 'weapontint_pink.png', unique = false, useable = true, shouldClose = true, description = 'Pink Weapon Tint' },
weapontint_4 = { name = 'weapontint_4', label = 'Army Tint', weight = 1000, type = 'item', image = 'weapontint_army.png', unique = false, useable = true, shouldClose = true, description = 'Army Weapon Tint' },
weapontint_5 = { name = 'weapontint_5', label = 'LSPD Tint', weight = 1000, type = 'item', image = 'weapontint_lspd.png', unique = false, useable = true, shouldClose = true, description = 'LSPD Weapon Tint' },
weapontint_6 = { name = 'weapontint_6', label = 'Orange Tint', weight = 1000, type = 'item', image = 'weapontint_orange.png', unique = false, useable = true, shouldClose = true, description = 'Orange Weapon Tint' },
weapontint_7 = { name = 'weapontint_7', label = 'Platinum Tint', weight = 1000, type = 'item', image = 'weapontint_plat.png', unique = false, useable = true, shouldClose = true, description = 'Platinum Weapon Tint' },
weapontint_mk2_0 = { name = 'weapontint_mk2_0', label = 'Classic Black Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Black Weapon Tint for MK2 Weapons' },
weapontint_mk2_1 = { name = 'weapontint_mk2_1', label = 'Classic Gray Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Gray Weapon Tint for MK2 Weapons' },
weapontint_mk2_2 = { name = 'weapontint_mk2_2', label = 'Classic Two-Tone Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Two-Tone Weapon Tint for MK2 Weapons' },
weapontint_mk2_3 = { name = 'weapontint_mk2_3', label = 'Classic White Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic White Weapon Tint for MK2 Weapons' },
weapontint_mk2_4 = { name = 'weapontint_mk2_4', label = 'Classic Beige Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Beige Weapon Tint for MK2 Weapons' },
weapontint_mk2_5 = { name = 'weapontint_mk2_5', label = 'Classic Green Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Green Weapon Tint for MK2 Weapons' },
weapontint_mk2_6 = { name = 'weapontint_mk2_6', label = 'Classic Blue Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Blue Weapon Tint for MK2 Weapons' },
weapontint_mk2_7 = { name = 'weapontint_mk2_7', label = 'Classic Earth Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Earth Weapon Tint for MK2 Weapons' },
weapontint_mk2_8 = { name = 'weapontint_mk2_8', label = 'Classic Brown & Black Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Classic Brown & Black Weapon Tint for MK2 Weapons' },
weapontint_mk2_9 = { name = 'weapontint_mk2_9', label = 'Red Contrast Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Red Contrast Weapon Tint for MK2 Weapons' },
weapontint_mk2_10 = { name = 'weapontint_mk2_10', label = 'Blue Contrast Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Blue Contrast Weapon Tint for MK2 Weapons' },
weapontint_mk2_11 = { name = 'weapontint_mk2_11', label = 'Yellow Contrast Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Yellow Contrast Weapon Tint for MK2 Weapons' },
weapontint_mk2_12 = { name = 'weapontint_mk2_12', label = 'Orange Contrast Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Orange Contrast Weapon Tint for MK2 Weapons' },
weapontint_mk2_13 = { name = 'weapontint_mk2_13', label = 'Bold Pink Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Pink Weapon Tint for MK2 Weapons' },
weapontint_mk2_14 = { name = 'weapontint_mk2_14', label = 'Bold Purple & Yellow Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Purple & Yellow Weapon Tint for MK2 Weapons' },
weapontint_mk2_15 = { name = 'weapontint_mk2_15', label = 'Bold Orange Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Orange Weapon Tint for MK2 Weapons' },
weapontint_mk2_16 = { name = 'weapontint_mk2_16', label = 'Bold Green & Purple Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Green & Purple Weapon Tint for MK2 Weapons' },
weapontint_mk2_17 = { name = 'weapontint_mk2_17', label = 'Bold Red Features Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Red Features Weapon Tint for MK2 Weapons' },
weapontint_mk2_18 = { name = 'weapontint_mk2_18', label = 'Bold Green Features Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Green Features Weapon Tint for MK2 Weapons' },
weapontint_mk2_19 = { name = 'weapontint_mk2_19', label = 'Bold Cyan Features Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Cyan Features Weapon Tint for MK2 Weapons' },
weapontint_mk2_20 = { name = 'weapontint_mk2_20', label = 'Bold Yellow Features Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Yellow Features Weapon Tint for MK2 Weapons' },
weapontint_mk2_21 = { name = 'weapontint_mk2_21', label = 'Bold Red & White Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Red & White Weapon Tint for MK2 Weapons' },
weapontint_mk2_22 = { name = 'weapontint_mk2_22', label = 'Bold Blue & White Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Bold Blue & White Weapon Tint for MK2 Weapons' },
weapontint_mk2_23 = { name = 'weapontint_mk2_23', label = 'Metallic Gold Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Gold Weapon Tint for MK2 Weapons' },
weapontint_mk2_24 = { name = 'weapontint_mk2_24', label = 'Metallic Platinum Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Platinum Weapon Tint for MK2 Weapons' },
weapontint_mk2_25 = { name = 'weapontint_mk2_25', label = 'Metallic Gray & Lilac Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Gray & Lilac Weapon Tint for MK2 Weapons' },
weapontint_mk2_26 = { name = 'weapontint_mk2_26', label = 'Metallic Purple & Lime Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Purple & Lime Weapon Tint for MK2 Weapons' },
weapontint_mk2_27 = { name = 'weapontint_mk2_27', label = 'Metallic Red Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Red Weapon Tint for MK2 Weapons' },
weapontint_mk2_28 = { name = 'weapontint_mk2_28', label = 'Metallic Green Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Green Weapon Tint for MK2 Weapons' },
weapontint_mk2_29 = { name = 'weapontint_mk2_29', label = 'Metallic Blue Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Blue Weapon Tint for MK2 Weapons' },
weapontint_mk2_30 = { name = 'weapontint_mk2_30', label = 'Metallic White & Aqua Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic White & Aqua Weapon Tint for MK2 Weapons' },
weapontint_mk2_31 = { name = 'weapontint_mk2_31', label = 'Metallic Orange & Yellow Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Orange & Yellow Weapon Tint for MK2 Weapons' },
weapontint_mk2_32 = { name = 'weapontint_mk2_32', label = 'Metallic Red and Yellow Tint', weight = 1000, type = 'item', image = 'weapontint_black.png', unique = false, useable = true, shouldClose = true, description = 'Metallic Red and Yellow Weapon Tint for MK2 Weapons' },
-- ITEMS
-- Ammo ITEMS
pistol_ammo = { name = 'pistol_ammo', label = 'Pistol ammo', weight = 200, type = 'item', image = 'pistol_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for Pistols' },
rifle_ammo = { name = 'rifle_ammo', label = 'Rifle ammo', weight = 1000, type = 'item', image = 'rifle_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for Rifles' },
smg_ammo = { name = 'smg_ammo', label = 'SMG ammo', weight = 500, type = 'item', image = 'smg_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for Sub Machine Guns' },
shotgun_ammo = { name = 'shotgun_ammo', label = 'Shotgun ammo', weight = 500, type = 'item', image = 'shotgun_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for Shotguns' },
mg_ammo = { name = 'mg_ammo', label = 'MG ammo', weight = 1000, type = 'item', image = 'mg_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for Machine Guns' },
snp_ammo = { name = 'snp_ammo', label = 'Sniper ammo', weight = 1000, type = 'item', image = 'rifle_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for Sniper Rifles' },
emp_ammo = { name = 'emp_ammo', label = 'EMP Ammo', weight = 200, type = 'item', image = 'emp_ammo.png', unique = false, useable = true, shouldClose = true, description = 'Ammo for EMP Launcher' },
-- Card ITEMS
id_card = { name = 'id_card', label = 'ID Card', weight = 0, type = 'item', image = 'id_card.png', unique = true, useable = true, shouldClose = false, description = 'A card containing all your information to identify yourself' },
driver_license = { name = 'driver_license', label = 'Drivers License', weight = 0, type = 'item', image = 'driver_license.png', unique = true, useable = true, shouldClose = false, description = 'Permit to show you can drive a vehicle' },
lawyerpass = { name = 'lawyerpass', label = 'Lawyer Pass', weight = 0, type = 'item', image = 'lawyerpass.png', unique = true, useable = true, shouldClose = false, description = 'Pass exclusive to lawyers to show they can represent a suspect' },
weaponlicense = { name = 'weaponlicense', label = 'Weapon License', weight = 0, type = 'item', image = 'weapon_license.png', unique = true, useable = true, shouldClose = true, description = 'Weapon License' },
bank_card = { name = 'bank_card', label = 'Bank Card', weight = 0, type = 'item', image = 'bank_card.png', unique = true, useable = true, shouldClose = true, description = 'Used to access ATM' },
security_card_01 = { name = 'security_card_01', label = 'Security Card A', weight = 0, type = 'item', image = 'security_card_01.png', unique = false, useable = true, shouldClose = true, description = 'A security card... I wonder what it goes to' },
security_card_02 = { name = 'security_card_02', label = 'Security Card B', weight = 0, type = 'item', image = 'security_card_02.png', unique = false, useable = true, shouldClose = true, description = 'A security card... I wonder what it goes to' },
-- Eat ITEMS
tosti = { name = 'tosti', label = 'Grilled Cheese Sandwich', weight = 200, type = 'item', image = 'tosti.png', unique = false, useable = true, shouldClose = true, description = 'Nice to eat' },
twerks_candy = { name = 'twerks_candy', label = 'Twerks', weight = 100, type = 'item', image = 'twerks_candy.png', unique = false, useable = true, shouldClose = true, description = 'Some delicious candy :O' },
snikkel_candy = { name = 'snikkel_candy', label = 'Snikkel', weight = 100, type = 'item', image = 'snikkel_candy.png', unique = false, useable = true, shouldClose = true, description = 'Some delicious candy :O' },
sandwich = { name = 'sandwich', label = 'Sandwich', weight = 200, type = 'item', image = 'sandwich.png', unique = false, useable = true, shouldClose = true, description = 'Nice bread for your stomach' },
-- Drink ITEMS
water_bottle = { name = 'water_bottle', label = 'Bottle of Water', weight = 500, type = 'item', image = 'water_bottle.png', unique = false, useable = true, shouldClose = true, description = 'For all the thirsty out there' },
coffee = { name = 'coffee', label = 'Coffee', weight = 200, type = 'item', image = 'coffee.png', unique = false, useable = true, shouldClose = true, description = 'Pump 4 Caffeine' },
kurkakola = { name = 'kurkakola', label = 'Cola', weight = 500, type = 'item', image = 'cola.png', unique = false, useable = true, shouldClose = true, description = 'For all the thirsty out there' },
-- Alcohol
beer = { name = 'beer', label = 'Beer', weight = 500, type = 'item', image = 'beer.png', unique = false, useable = true, shouldClose = true, description = 'Nothing like a good cold beer!' },
whiskey = { name = 'whiskey', label = 'Whiskey', weight = 500, type = 'item', image = 'whiskey.png', unique = false, useable = true, shouldClose = true, description = 'For all the thirsty out there' },
vodka = { name = 'vodka', label = 'Vodka', weight = 500, type = 'item', image = 'vodka.png', unique = false, useable = true, shouldClose = true, description = 'For all the thirsty out there' },
grape = { name = 'grape', label = 'Grape', weight = 100, type = 'item', image = 'grape.png', unique = false, useable = true, shouldClose = false, description = 'Mmmmh yummie, grapes' },
wine = { name = 'wine', label = 'Wine', weight = 300, type = 'item', image = 'wine.png', unique = false, useable = true, shouldClose = false, description = 'Some good wine to drink on a fine evening' },
grapejuice = { name = 'grapejuice', label = 'Grape Juice', weight = 200, type = 'item', image = 'grapejuice.png', unique = false, useable = true, shouldClose = false, description = 'Grape juice is said to be healthy' },
-- Drugs
joint = { name = 'joint', label = 'Joint', weight = 0, type = 'item', image = 'joint.png', unique = false, useable = true, shouldClose = true, description = 'Sidney would be very proud at you' },
cokebaggy = { name = 'cokebaggy', label = 'Bag of Coke', weight = 0, type = 'item', image = 'cocaine_baggy.png', unique = false, useable = true, shouldClose = true, description = 'To get happy real quick' },
crack_baggy = { name = 'crack_baggy', label = 'Bag of Crack', weight = 0, type = 'item', image = 'crack_baggy.png', unique = false, useable = true, shouldClose = true, description = 'To get happy faster' },
xtcbaggy = { name = 'xtcbaggy', label = 'Bag of XTC', weight = 0, type = 'item', image = 'xtc_baggy.png', unique = false, useable = true, shouldClose = true, description = 'Pop those pills baby' },
coke_brick = { name = 'coke_brick', label = 'Coke Brick', weight = 1000, type = 'item', image = 'coke_brick.png', unique = true, useable = false, shouldClose = true, description = 'Heavy package of cocaine, mostly used for deals and takes a lot of space' },
weed_brick = { name = 'weed_brick', label = 'Weed Brick', weight = 1000, type = 'item', image = 'weed_brick.png', unique = false, useable = false, shouldClose = true, description = '1KG Weed Brick to sell to large customers.' },
coke_small_brick = { name = 'coke_small_brick', label = 'Coke Package', weight = 350, type = 'item', image = 'coke_small_brick.png', unique = true, useable = false, shouldClose = true, description = 'Small package of cocaine, mostly used for deals and takes a lot of space' },
oxy = { name = 'oxy', label = 'Prescription Oxy', weight = 0, type = 'item', image = 'oxy.png', unique = false, useable = true, shouldClose = true, description = 'The Label Has Been Ripped Off' },
meth = { name = 'meth', label = 'Meth', weight = 100, type = 'item', image = 'meth_baggy.png', unique = false, useable = true, shouldClose = true, description = 'A baggie of Meth' },
rolling_paper = { name = 'rolling_paper', label = 'Rolling Paper', weight = 0, type = 'item', image = 'rolling_paper.png', unique = false, useable = false, shouldClose = true, description = 'Paper made specifically for encasing and smoking tobacco or cannabis.' },
-- Seed And Weed
weed_whitewidow = { name = 'weed_whitewidow', label = 'White Widow 2g', weight = 200, type = 'item', image = 'weed_baggy.png', unique = false, useable = true, shouldClose = false, description = 'A weed bag with 2g White Widow' },
weed_skunk = { name = 'weed_skunk', label = 'Skunk 2g', weight = 200, type = 'item', image = 'weed_baggy.png', unique = false, useable = true, shouldClose = false, description = 'A weed bag with 2g Skunk' },
weed_purplehaze = { name = 'weed_purplehaze', label = 'Purple Haze 2g', weight = 200, type = 'item', image = 'weed_baggy.png', unique = false, useable = true, shouldClose = false, description = 'A weed bag with 2g Purple Haze' },
weed_ogkush = { name = 'weed_ogkush', label = 'OGKush 2g', weight = 200, type = 'item', image = 'weed_baggy.png', unique = false, useable = true, shouldClose = false, description = 'A weed bag with 2g OG Kush' },
weed_amnesia = { name = 'weed_amnesia', label = 'Amnesia 2g', weight = 200, type = 'item', image = 'weed_baggy.png', unique = false, useable = true, shouldClose = false, description = 'A weed bag with 2g Amnesia' },
weed_ak47 = { name = 'weed_ak47', label = 'AK47 2g', weight = 200, type = 'item', image = 'weed_baggy.png', unique = false, useable = true, shouldClose = false, description = 'A weed bag with 2g AK47' },
weed_whitewidow_seed = { name = 'weed_whitewidow_seed', label = 'White Widow Seed', weight = 0, type = 'item', image = 'weed_seed.png', unique = false, useable = true, shouldClose = false, description = 'A weed seed of White Widow' },
weed_skunk_seed = { name = 'weed_skunk_seed', label = 'Skunk Seed', weight = 0, type = 'item', image = 'weed_seed.png', unique = false, useable = true, shouldClose = true, description = 'A weed seed of Skunk' },
weed_purplehaze_seed = { name = 'weed_purplehaze_seed', label = 'Purple Haze Seed', weight = 0, type = 'item', image = 'weed_seed.png', unique = false, useable = true, shouldClose = true, description = 'A weed seed of Purple Haze' },
weed_ogkush_seed = { name = 'weed_ogkush_seed', label = 'OGKush Seed', weight = 0, type = 'item', image = 'weed_seed.png', unique = false, useable = true, shouldClose = true, description = 'A weed seed of OG Kush' },
weed_amnesia_seed = { name = 'weed_amnesia_seed', label = 'Amnesia Seed', weight = 0, type = 'item', image = 'weed_seed.png', unique = false, useable = true, shouldClose = true, description = 'A weed seed of Amnesia' },
weed_ak47_seed = { name = 'weed_ak47_seed', label = 'AK47 Seed', weight = 0, type = 'item', image = 'weed_seed.png', unique = false, useable = true, shouldClose = true, description = 'A weed seed of AK47' },
empty_weed_bag = { name = 'empty_weed_bag', label = 'Empty Weed Bag', weight = 0, type = 'item', image = 'weed_baggy_empty.png', unique = false, useable = true, shouldClose = true, description = 'A small empty bag' },
weed_nutrition = { name = 'weed_nutrition', label = 'Plant Fertilizer', weight = 2000, type = 'item', image = 'weed_nutrition.png', unique = false, useable = true, shouldClose = true, description = 'Plant nutrition' },
-- Material
plastic = { name = 'plastic', label = 'Plastic', weight = 100, type = 'item', image = 'plastic.png', unique = false, useable = false, shouldClose = false, description = 'RECYCLE! - Greta Thunberg 2019' },
metalscrap = { name = 'metalscrap', label = 'Metal Scrap', weight = 100, type = 'item', image = 'metalscrap.png', unique = false, useable = false, shouldClose = false, description = 'You can probably make something nice out of this' },
copper = { name = 'copper', label = 'Copper', weight = 100, type = 'item', image = 'copper.png', unique = false, useable = false, shouldClose = false, description = 'Nice piece of metal that you can probably use for something' },
aluminum = { name = 'aluminum', label = 'Aluminium', weight = 100, type = 'item', image = 'aluminum.png', unique = false, useable = false, shouldClose = false, description = 'Nice piece of metal that you can probably use for something' },
aluminumoxide = { name = 'aluminumoxide', label = 'Aluminium Powder', weight = 100, type = 'item', image = 'aluminumoxide.png', unique = false, useable = false, shouldClose = false, description = 'Some powder to mix with' },
iron = { name = 'iron', label = 'Iron', weight = 100, type = 'item', image = 'iron.png', unique = false, useable = false, shouldClose = false, description = 'Handy piece of metal that you can probably use for something' },
ironoxide = { name = 'ironoxide', label = 'Iron Powder', weight = 100, type = 'item', image = 'ironoxide.png', unique = false, useable = false, shouldClose = false, description = 'Some powder to mix with.' },
steel = { name = 'steel', label = 'Steel', weight = 100, type = 'item', image = 'steel.png', unique = false, useable = false, shouldClose = false, description = 'Nice piece of metal that you can probably use for something' },
rubber = { name = 'rubber', label = 'Rubber', weight = 100, type = 'item', image = 'rubber.png', unique = false, useable = false, shouldClose = false, description = 'Rubber, I believe you can make your own rubber ducky with it :D' },
glass = { name = 'glass', label = 'Glass', weight = 100, type = 'item', image = 'glass.png', unique = false, useable = false, shouldClose = false, description = 'It is very fragile, watch out' },
-- Tools
lockpick = { name = 'lockpick', label = 'Lockpick', weight = 300, type = 'item', image = 'lockpick.png', unique = false, useable = true, shouldClose = true, description = 'Very useful if you lose your keys a lot.. or if you want to use it for something else...' },
advancedlockpick = { name = 'advancedlockpick', label = 'Advanced Lockpick', weight = 500, type = 'item', image = 'advancedlockpick.png', unique = false, useable = true, shouldClose = true, description = 'If you lose your keys a lot this is very useful... Also useful to open your beers' },
electronickit = { name = 'electronickit', label = 'Electronic Kit', weight = 100, type = 'item', image = 'electronickit.png', unique = false, useable = true, shouldClose = true, description = 'If you\'ve always wanted to build a robot you can maybe start here. Maybe you\'ll be the new Elon Musk?' },
gatecrack = { name = 'gatecrack', label = 'Gatecrack', weight = 0, type = 'item', image = 'usb_device.png', unique = false, useable = false, shouldClose = true, description = 'Handy software to tear down some fences' },
thermite = { name = 'thermite', label = 'Thermite', weight = 1000, type = 'item', image = 'thermite.png', unique = false, useable = true, shouldClose = true, description = 'Sometimes you\'d wish for everything to burn' },
trojan_usb = { name = 'trojan_usb', label = 'Trojan USB', weight = 0, type = 'item', image = 'usb_device.png', unique = false, useable = false, shouldClose = true, description = 'Handy software to shut down some systems' },
screwdriverset = { name = 'screwdriverset', label = 'Toolkit', weight = 1000, type = 'item', image = 'screwdriverset.png', unique = false, useable = false, shouldClose = false, description = 'Very useful to screw... screws...' },
drill = { name = 'drill', label = 'Drill', weight = 20000, type = 'item', image = 'drill.png', unique = false, useable = false, shouldClose = false, description = 'The real deal...' },
-- Vehicle Tools
nitrous = { name = 'nitrous', label = 'Nitrous', weight = 1000, type = 'item', image = 'nitrous.png', unique = false, useable = true, shouldClose = true, description = 'Speed up, gas pedal! :D' },
repairkit = { name = 'repairkit', label = 'Repairkit', weight = 2500, type = 'item', image = 'repairkit.png', unique = false, useable = true, shouldClose = true, description = 'A nice toolbox with stuff to repair your vehicle' },
advancedrepairkit = { name = 'advancedrepairkit', label = 'Advanced Repairkit', weight = 4000, type = 'item', image = 'advancedkit.png', unique = false, useable = true, shouldClose = true, description = 'A nice toolbox with stuff to repair your vehicle' },
cleaningkit = { name = 'cleaningkit', label = 'Cleaning Kit', weight = 250, type = 'item', image = 'cleaningkit.png', unique = false, useable = true, shouldClose = true, description = 'A microfiber cloth with some soap will let your car sparkle again!' },
tunerlaptop = { name = 'tunerlaptop', label = 'Tunerchip', weight = 2000, type = 'item', image = 'tunerchip.png', unique = true, useable = true, shouldClose = true, description = 'With this tunerchip you can get your car on steroids... If you know what you\'re doing' },
harness = { name = 'harness', label = 'Race Harness', weight = 1000, type = 'item', image = 'harness.png', unique = true, useable = true, shouldClose = true, description = 'Racing Harness so no matter what you stay in the car' },
jerry_can = { name = 'jerry_can', label = 'Jerrycan 20L', weight = 20000, type = 'item', image = 'jerry_can.png', unique = false, useable = true, shouldClose = true, description = 'A can full of Fuel' },
tirerepairkit = { name = 'tirerepairkit', label = 'Tire Repair Kit', weight = 1000, type = 'item', image = 'tirerepairkit.png', unique = false, useable = true, shouldClose = true, description = 'A kit to repair your tires' },
-- Mechanic Parts
veh_toolbox = { name = 'veh_toolbox', label = 'Toolbox', weight = 1000, type = 'item', image = 'veh_toolbox.png', unique = false, useable = true, shouldClose = true, description = 'Check vehicle status' },
veh_armor = { name = 'veh_armor', label = 'Armor', weight = 1000, type = 'item', image = 'veh_armor.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle armor' },
veh_brakes = { name = 'veh_brakes', label = 'Brakes', weight = 1000, type = 'item', image = 'veh_brakes.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle brakes' },
veh_engine = { name = 'veh_engine', label = 'Engine', weight = 1000, type = 'item', image = 'veh_engine.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle engine' },
veh_suspension = { name = 'veh_suspension', label = 'Suspension', weight = 1000, type = 'item', image = 'veh_suspension.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle suspension' },
veh_transmission = { name = 'veh_transmission', label = 'Transmission', weight = 1000, type = 'item', image = 'veh_transmission.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle transmission' },
veh_turbo = { name = 'veh_turbo', label = 'Turbo', weight = 1000, type = 'item', image = 'veh_turbo.png', unique = false, useable = true, shouldClose = true, description = 'Install vehicle turbo' },
veh_interior = { name = 'veh_interior', label = 'Interior', weight = 1000, type = 'item', image = 'veh_interior.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle interior' },
veh_exterior = { name = 'veh_exterior', label = 'Exterior', weight = 1000, type = 'item', image = 'veh_exterior.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle exterior' },
veh_wheels = { name = 'veh_wheels', label = 'Wheels', weight = 1000, type = 'item', image = 'veh_wheels.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle wheels' },
veh_neons = { name = 'veh_neons', label = 'Neons', weight = 1000, type = 'item', image = 'veh_neons.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle neons' },
veh_xenons = { name = 'veh_xenons', label = 'Xenons', weight = 1000, type = 'item', image = 'veh_xenons.png', unique = false, useable = true, shouldClose = true, description = 'Upgrade vehicle xenons' },
veh_tint = { name = 'veh_tint', label = 'Tints', weight = 1000, type = 'item', image = 'veh_tint.png', unique = false, useable = true, shouldClose = true, description = 'Install vehicle tint' },
veh_plates = { name = 'veh_plates', label = 'Plates', weight = 1000, type = 'item', image = 'veh_plates.png', unique = false, useable = true, shouldClose = true, description = 'Install vehicle plates' },
-- Medication
firstaid = { name = 'firstaid', label = 'First Aid', weight = 2500, type = 'item', image = 'firstaid.png', unique = false, useable = true, shouldClose = true, description = 'You can use this First Aid kit to get people back on their feet' },
bandage = { name = 'bandage', label = 'Bandage', weight = 0, type = 'item', image = 'bandage.png', unique = false, useable = true, shouldClose = true, description = 'A bandage works every time' },
ifaks = { name = 'ifaks', label = 'ifaks', weight = 200, type = 'item', image = 'ifaks.png', unique = false, useable = true, shouldClose = true, description = 'ifaks for healing and a complete stress remover.' },
painkillers = { name = 'painkillers', label = 'Painkillers', weight = 0, type = 'item', image = 'painkillers.png', unique = false, useable = true, shouldClose = true, description = 'For pain you can\'t stand anymore, take this pill that\'d make you feel great again' },
walkstick = { name = 'walkstick', label = 'Walking Stick', weight = 1000, type = 'item', image = 'walkstick.png', unique = false, useable = true, shouldClose = true, description = 'Walking stick for ya\'ll grannies out there.. HAHA' },
-- Communication
phone = { name = 'phone', label = 'Phone', weight = 700, type = 'item', image = 'phone.png', unique = true, useable = false, shouldClose = false, description = 'Neat phone ya got there' },
radio = { name = 'radio', label = 'Radio', weight = 2000, type = 'item', image = 'radio.png', unique = true, useable = true, shouldClose = true, description = 'You can communicate with this through a signal' },
iphone = { name = 'iphone', label = 'iPhone', weight = 1000, type = 'item', image = 'iphone.png', unique = false, useable = false, shouldClose = true, description = 'Very expensive phone' },
samsungphone = { name = 'samsungphone', label = 'Samsung S10', weight = 1000, type = 'item', image = 'samsungphone.png', unique = false, useable = false, shouldClose = true, description = 'Very expensive phone' },
laptop = { name = 'laptop', label = 'Laptop', weight = 4000, type = 'item', image = 'laptop.png', unique = false, useable = false, shouldClose = true, description = 'Expensive laptop' },
tablet = { name = 'tablet', label = 'Tablet', weight = 2000, type = 'item', image = 'tablet.png', unique = false, useable = false, shouldClose = true, description = 'Expensive tablet' },
fitbit = { name = 'fitbit', label = 'Fitbit', weight = 500, type = 'item', image = 'fitbit.png', unique = true, useable = true, shouldClose = true, description = 'I like fitbit' },
radioscanner = { name = 'radioscanner', label = 'Radio Scanner', weight = 1000, type = 'item', image = 'radioscanner.png', unique = false, useable = false, shouldClose = true, description = 'With this you can get some police alerts. Not 100% effective however' },
pinger = { name = 'pinger', label = 'Pinger', weight = 1000, type = 'item', image = 'pinger.png', unique = false, useable = false, shouldClose = true, description = 'With a pinger and your phone you can send out your location' },
cryptostick = { name = 'cryptostick', label = 'Crypto Stick', weight = 200, type = 'item', image = 'cryptostick.png', unique = true, useable = true, shouldClose = true, description = 'Why would someone ever buy money that doesn\'t exist.. How many would it contain..?' },
-- Theft and Jewelry
rolex = { name = 'rolex', label = 'Golden Watch', weight = 1500, type = 'item', image = 'rolex.png', unique = false, useable = false, shouldClose = true, description = 'A golden watch seems like the jackpot to me!' },
diamond_ring = { name = 'diamond_ring', label = 'Diamond Ring', weight = 1500, type = 'item', image = 'diamond_ring.png', unique = false, useable = false, shouldClose = true, description = 'A diamond ring seems like the jackpot to me!' },
diamond = { name = 'diamond', label = 'Diamond', weight = 1000, type = 'item', image = 'diamond.png', unique = false, useable = false, shouldClose = true, description = 'A diamond seems like the jackpot to me!' },
goldchain = { name = 'goldchain', label = 'Golden Chain', weight = 1500, type = 'item', image = 'goldchain.png', unique = false, useable = false, shouldClose = true, description = 'A golden chain seems like the jackpot to me!' },
tenkgoldchain = { name = 'tenkgoldchain', label = '10k Gold Chain', weight = 2000, type = 'item', image = '10kgoldchain.png', unique = false, useable = false, shouldClose = true, description = '10 carat golden chain' },
goldbar = { name = 'goldbar', label = 'Gold Bar', weight = 7000, type = 'item', image = 'goldbar.png', unique = false, useable = false, shouldClose = true, description = 'Looks pretty expensive to me' },
-- Cops Tools
armor = { name = 'armor', label = 'Armor', weight = 5000, type = 'item', image = 'armor.png', unique = false, useable = true, shouldClose = true, description = 'Some protection won\'t hurt... right?' },
heavyarmor = { name = 'heavyarmor', label = 'Heavy Armor', weight = 5000, type = 'item', image = 'armor.png', unique = false, useable = true, shouldClose = true, description = 'Some protection won\'t hurt... right?' },
handcuffs = { name = 'handcuffs', label = 'Handcuffs', weight = 100, type = 'item', image = 'handcuffs.png', unique = false, useable = true, shouldClose = true, description = 'Comes in handy when people misbehave. Maybe it can be used for something else?' },
police_stormram = { name = 'police_stormram', label = 'Stormram', weight = 18000, type = 'item', image = 'police_stormram.png', unique = false, useable = true, shouldClose = true, description = 'A nice tool to break into doors' },
empty_evidence_bag = { name = 'empty_evidence_bag', label = 'Empty Evidence Bag', weight = 0, type = 'item', image = 'evidence.png', unique = false, useable = false, shouldClose = false, description = 'Used a lot to keep DNA from blood, bullet shells and more' },
filled_evidence_bag = { name = 'filled_evidence_bag', label = 'Evidence Bag', weight = 200, type = 'item', image = 'evidence.png', unique = true, useable = false, shouldClose = false, description = 'A filled evidence bag to see who committed the crime >:(' },
-- Firework Tools
firework1 = { name = 'firework1', label = '2Brothers', weight = 1000, type = 'item', image = 'firework1.png', unique = false, useable = true, shouldClose = true, description = 'Fireworks' },
firework2 = { name = 'firework2', label = 'Poppelers', weight = 1000, type = 'item', image = 'firework2.png', unique = false, useable = true, shouldClose = true, description = 'Fireworks' },
firework3 = { name = 'firework3', label = 'WipeOut', weight = 1000, type = 'item', image = 'firework3.png', unique = false, useable = true, shouldClose = true, description = 'Fireworks' },
firework4 = { name = 'firework4', label = 'Weeping Willow', weight = 1000, type = 'item', image = 'firework4.png', unique = false, useable = true, shouldClose = true, description = 'Fireworks' },
-- Sea Tools
dendrogyra_coral = { name = 'dendrogyra_coral', label = 'Dendrogyra', weight = 1000, type = 'item', image = 'dendrogyra_coral.png', unique = false, useable = false, shouldClose = true, description = 'Its also known as pillar coral' },
antipatharia_coral = { name = 'antipatharia_coral', label = 'Antipatharia', weight = 1000, type = 'item', image = 'antipatharia_coral.png', unique = false, useable = false, shouldClose = true, description = 'Its also known as black corals or thorn corals' },
diving_gear = { name = 'diving_gear', label = 'Diving Gear', weight = 30000, type = 'item', image = 'diving_gear.png', unique = true, useable = true, shouldClose = true, description = 'An oxygen tank and a rebreather' },
diving_fill = { name = 'diving_fill', label = 'Diving Tube', weight = 3000, type = 'item', image = 'diving_tube.png', unique = true, useable = true, shouldClose = true, description = 'An oxygen tube and a rebreather' },
-- Other Tools
casinochips = { name = 'casinochips', label = 'Casino Chips', weight = 0, type = 'item', image = 'casinochips.png', unique = false, useable = false, shouldClose = false, description = 'Chips For Casino Gambling' },
stickynote = { name = 'stickynote', label = 'Sticky note', weight = 0, type = 'item', image = 'stickynote.png', unique = true, useable = false, shouldClose = false, description = 'Sometimes handy to remember something :)' },
moneybag = { name = 'moneybag', label = 'Money Bag', weight = 0, type = 'item', image = 'moneybag.png', unique = true, useable = true, shouldClose = true, description = 'A bag with cash' },
parachute = { name = 'parachute', label = 'Parachute', weight = 30000, type = 'item', image = 'parachute.png', unique = true, useable = true, shouldClose = true, description = 'The sky is the limit! Woohoo!' },
binoculars = { name = 'binoculars', label = 'Binoculars', weight = 600, type = 'item', image = 'binoculars.png', unique = false, useable = true, shouldClose = true, description = 'Sneaky Breaky...' },
lighter = { name = 'lighter', label = 'Lighter', weight = 0, type = 'item', image = 'lighter.png', unique = false, useable = false, shouldClose = true, description = 'On new years eve a nice fire to stand next to' },
certificate = { name = 'certificate', label = 'Certificate', weight = 0, type = 'item', image = 'certificate.png', unique = false, useable = false, shouldClose = true, description = 'Certificate that proves you own certain stuff' },
markedbills = { name = 'markedbills', label = 'Marked Money', weight = 1000, type = 'item', image = 'markedbills.png', unique = true, useable = false, shouldClose = true, description = 'Money?' },
labkey = { name = 'labkey', label = 'Key', weight = 500, type = 'item', image = 'labkey.png', unique = true, useable = true, shouldClose = true, description = 'Key for a lock...?' },
printerdocument = { name = 'printerdocument', label = 'Document', weight = 500, type = 'item', image = 'printerdocument.png', unique = true, useable = true, shouldClose = true, description = 'A nice document' },
newscam = { name = 'newscam', label = 'News Camera', weight = 100, type = 'item', image = 'newscam.png', unique = true, useable = true, shouldClose = true, description = 'A camera for the news' },
newsmic = { name = 'newsmic', label = 'News Microphone', weight = 100, type = 'item', image = 'newsmic.png', unique = true, useable = true, shouldClose = true, description = 'A microphone for the news' },
newsbmic = { name = 'newsbmic', label = 'Boom Microphone', weight = 100, type = 'item', image = 'newsbmic.png', unique = true, useable = true, shouldClose = true, description = 'A Useable BoomMic' },
-- Crafting table's
item_bench = {name = "item_bench", label = "Workbench", weight = 15000, type = "item", image = "workbench.png", unique = true, useable = true, shouldClose = false, combinable = nil, description = "A workbench to craft items."},
attachment_bench = {name = "attachment_bench", label = "Attachment Workbench", weight = 15000, type = "item", image = "attworkbench.png", unique = true, useable = true, shouldClose = false, combinable = nil, description = "A workbench for crafting attachments."},
}
+399
View File
@@ -0,0 +1,399 @@
{
"unemployed": {
"label": "Civilian",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Freelancer",
"payment": 10
}
]
},
"bus": {
"label": "Bus",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Driver",
"payment": 50
}
]
},
"judge": {
"label": "Honorary",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Judge",
"payment": 100
}
]
},
"lawyer": {
"label": "Law Firm",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Associate",
"payment": 50
}
]
},
"reporter": {
"label": "Reporter",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Journalist",
"payment": 50
}
]
},
"trucker": {
"label": "Trucker",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Driver",
"payment": 50
}
]
},
"tow": {
"label": "Towing",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Driver",
"payment": 50
}
]
},
"garbage": {
"label": "Garbage",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Collector",
"payment": 50
}
]
},
"vineyard": {
"label": "Vineyard",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Picker",
"payment": 50
}
]
},
"hotdog": {
"label": "Hotdog",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Sales",
"payment": 50
}
]
},
"police": {
"label": "Law Enforcement",
"type": "leo",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Officer",
"payment": 75
},
{
"name": "Sergeant",
"payment": 100
},
{
"name": "Lieutenant",
"payment": 125
},
{
"name": "Chief",
"isboss": true,
"payment": 150
}
]
},
"ambulance": {
"label": "EMS",
"type": "ems",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Paramedic",
"payment": 75
},
{
"name": "Doctor",
"payment": 100
},
{
"name": "Surgeon",
"payment": 125
},
{
"name": "Chief",
"isboss": true,
"payment": 150
}
]
},
"realestate": {
"label": "Real Estate",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "House Sales",
"payment": 75
},
{
"name": "Business Sales",
"payment": 100
},
{
"name": "Broker",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"taxi": {
"label": "Taxi",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Driver",
"payment": 75
},
{
"name": "Event Driver",
"payment": 100
},
{
"name": "Sales",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"cardealer": {
"label": "Vehicle Dealer",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Showroom Sales",
"payment": 75
},
{
"name": "Business Sales",
"payment": 100
},
{
"name": "Finance",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"mechanic": {
"label": "LS Customs",
"type": "mechanic",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Novice",
"payment": 75
},
{
"name": "Experienced",
"payment": 100
},
{
"name": "Advanced",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"mechanic2": {
"label": "LS Customs",
"type": "mechanic",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Novice",
"payment": 75
},
{
"name": "Experienced",
"payment": 100
},
{
"name": "Advanced",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"mechanic3": {
"label": "LS Customs",
"type": "mechanic",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Novice",
"payment": 75
},
{
"name": "Experienced",
"payment": 100
},
{
"name": "Advanced",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"beeker": {
"label": "Beeker's Garage",
"type": "mechanic",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Novice",
"payment": 75
},
{
"name": "Experienced",
"payment": 100
},
{
"name": "Advanced",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
},
"bennys": {
"label": "Benny's Original Motor Works",
"type": "mechanic",
"defaultDuty": true,
"offDutyPay": false,
"grades": [
{
"name": "Recruit",
"payment": 50
},
{
"name": "Novice",
"payment": 75
},
{
"name": "Experienced",
"payment": 100
},
{
"name": "Advanced",
"payment": 125
},
{
"name": "Manager",
"isboss": true,
"payment": 150
}
]
}
}
-142
View File
@@ -1,142 +0,0 @@
QBShared = QBShared or {}
QBShared.ForceJobDefaultDutyAtLogin = true -- true: Force duty state to jobdefaultDuty | false: set duty state from database last saved
QBShared.Jobs = {
unemployed = { label = 'Civilian', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Freelancer', payment = 10 } } },
bus = { label = 'Bus', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Driver', payment = 50 } } },
judge = { label = 'Honorary', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Judge', payment = 100 } } },
lawyer = { label = 'Law Firm', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Associate', payment = 50 } } },
reporter = { label = 'Reporter', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Journalist', payment = 50 } } },
trucker = { label = 'Trucker', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Driver', payment = 50 } } },
tow = { label = 'Towing', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Driver', payment = 50 } } },
garbage = { label = 'Garbage', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Collector', payment = 50 } } },
vineyard = { label = 'Vineyard', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Picker', payment = 50 } } },
hotdog = { label = 'Hotdog', defaultDuty = true, offDutyPay = false, grades = { ['0'] = { name = 'Sales', payment = 50 } } },
police = {
label = 'Law Enforcement',
type = 'leo',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Officer', payment = 75 },
['2'] = { name = 'Sergeant', payment = 100 },
['3'] = { name = 'Lieutenant', payment = 125 },
['4'] = { name = 'Chief', isboss = true, payment = 150 },
},
},
ambulance = {
label = 'EMS',
type = 'ems',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Paramedic', payment = 75 },
['2'] = { name = 'Doctor', payment = 100 },
['3'] = { name = 'Surgeon', payment = 125 },
['4'] = { name = 'Chief', isboss = true, payment = 150 },
},
},
realestate = {
label = 'Real Estate',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'House Sales', payment = 75 },
['2'] = { name = 'Business Sales', payment = 100 },
['3'] = { name = 'Broker', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
taxi = {
label = 'Taxi',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Driver', payment = 75 },
['2'] = { name = 'Event Driver', payment = 100 },
['3'] = { name = 'Sales', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
cardealer = {
label = 'Vehicle Dealer',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Showroom Sales', payment = 75 },
['2'] = { name = 'Business Sales', payment = 100 },
['3'] = { name = 'Finance', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
mechanic = {
label = 'LS Customs',
type = 'mechanic',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Novice', payment = 75 },
['2'] = { name = 'Experienced', payment = 100 },
['3'] = { name = 'Advanced', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
mechanic2 = {
label = 'LS Customs',
type = 'mechanic',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Novice', payment = 75 },
['2'] = { name = 'Experienced', payment = 100 },
['3'] = { name = 'Advanced', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
mechanic3 = {
label = 'LS Customs',
type = 'mechanic',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Novice', payment = 75 },
['2'] = { name = 'Experienced', payment = 100 },
['3'] = { name = 'Advanced', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
beeker = {
label = 'Beeker\'s Garage',
type = 'mechanic',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Novice', payment = 75 },
['2'] = { name = 'Experienced', payment = 100 },
['3'] = { name = 'Advanced', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
bennys = {
label = 'Benny\'s Original Motor Works',
type = 'mechanic',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Novice', payment = 75 },
['2'] = { name = 'Experienced', payment = 100 },
['3'] = { name = 'Advanced', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
}
+70
View File
@@ -0,0 +1,70 @@
local resourceName = GetCurrentResourceName()
-- Load Config
if IsDuplicityVersion() then
local configData = LoadResourceFile(resourceName, 'shared/config.json')
if not configData then return print('^1[QBCore] Failed to Load Config JSON File') end
QBCore.Config = json.decode(configData) or {}
print('^2[QBCore] Loaded Config.json')
end
-- Load Vehicles
local Vehicles = LoadResourceFile(resourceName, 'shared/vehicles.json')
if not Vehicles then return print('^1[QBCore] Failed to Load Vehicles JSON File') end
Vehicles = json.decode(Vehicles)
for i = 1, #Vehicles do
local hash = joaat(Vehicles[i].model)
QBCore.Shared.Vehicles[Vehicles[i].model] = {
spawncode = Vehicles[i].model,
name = Vehicles[i].name,
brand = Vehicles[i].brand,
model = Vehicles[i].model,
price = Vehicles[i].price,
category = Vehicles[i].category,
hash = hash,
type = Vehicles[i].type,
shop = Vehicles[i].shop
}
QBCore.Shared.VehicleHashes[hash] = QBCore.Shared.Vehicles[Vehicles[i].model]
end
print('^2[QBCore] Loaded Vehicles.json')
-- Load Jobs
local Jobs = LoadResourceFile(resourceName, 'shared/jobs.json')
if not Jobs then return print('^1[QBCore] Failed to Load Jobs JSON File') end
QBCore.Shared.Jobs = json.decode(Jobs) or {}
print('^2[QBCore] Loaded Jobs.json')
-- Load Gangs
local Gangs = LoadResourceFile(resourceName, 'shared/gangs.json')
if not Gangs then return print('^1[QBCore] Failed to Load Gangs JSON File') end
QBCore.Shared.Gangs = json.decode(Gangs) or {}
print('^2[QBCore] Loaded Gangs.json')
-- Load Items
local Items = LoadResourceFile(resourceName, 'shared/items.json')
if not Items then return print('^1[QBCore] Failed to Load Items JSON File') end
QBCore.Shared.Items = json.decode(Items) or {}
print('^2[QBCore] Loaded Items.json')
-- Load Weapons
local Weapons = LoadResourceFile(resourceName, 'shared/weapons.json')
if not Weapons then return print('^1[QBCore] Failed to Load Weapons JSON File') end
Weapons = json.decode(Weapons)
for i = 1, #Weapons do
local weaponHash = joaat(Weapons[i].name)
QBCore.Shared.Weapons[weaponHash] = {
name = Weapons[i].name,
label = Weapons[i].label,
weapontype = Weapons[i].weapontype,
ammotype = Weapons[i].ammotype,
damagereason = Weapons[i].damagereason
}
end
print('^2[QBCore] Loaded Weapons.json^0')
-108
View File
@@ -1,108 +0,0 @@
QBShared.Locations = {
-- Base game MLO interiors
aircraft_carrier_int = vector4(3081.0042, -4693.6875, 15.2623, 76.8169),
apt_1_int = vector4(-1452.4602, -540.2056, 74.0443, 31.9129),
apt_2_int = vector4(-912.7861, -365.2444, 114.2748, 110.0791),
apt_3_int = vector4(-603.3033, 58.9509, 98.2002, 81.6158),
apt_4_int = vector4(-784.6159, 323.849, 211.9972, 260.1097),
apt_5_int = vector4(-31.1088, -595.1442, 80.0309, 238.7146),
apt_6_int = vector4(-603.0135, 59.0137, -182.3809, 79.5818),
apt_hi_1_int = vector4(-18.3525, -590.9888, 90.1148, 331.3955),
apt_hi_2_int = vector4(-1450.2595, -525.3569, 56.929, 29.844),
bahama_mamas_int = vector4(-1387.0503, -588.4022, 30.3195, 124.4977),
biker_clubhouse_1_int = vector4(1121.1473, -3152.606, -37.0627, 354.0713),
biker_clubhouse_2_int = vector4(997.1274, -3157.5261, -38.9071, 239.8958),
casino_garage_int = vector4(1380.0403, 178.7124, -48.9942, 351.2701),
casino_hotel_floor_5_int = vector4(2508.6404, -262.1918, -39.1218, 183.9682),
casino_interior_int = vector4(1089.1294, 207.2294, -48.9997, 320.0139),
casino_loading_bay_int = vector4(2519.0271, -279.1287, -64.7228, 273.2338),
casino_nightclub_int = vector4(1578.2496, 253.7532, -46.0051, 174.0727),
casino_offices_int = vector4(2485.0115, -250.7915, -55.1238, 270.4959),
casino_security_int = vector4(2548.1143, -267.3465, -58.723, 192.4636),
casino_vault_int = vector4(2506.9446, -238.5225, -70.7371, 268.6321),
casino_vault_lobby_int = vector4(2465.6365, -278.9171, -70.6942, 264.7971),
cocaine_lockup_int = vector4(1088.6353, -3187.8801, -38.9935, 178.8853),
counterfeit_cash_int = vector4(1138.2513, -3198.7056, -39.6657, 66.1039),
document_forgery_int = vector4(1173.4496, -3196.7759, -39.008, 77.9179),
doomsday_facility_int = vector4(453.0641, 4820.2095, -58.9997, 87.7778),
exec_apt_1_int = vector4(-786.7757, 315.4629, 217.6385, 269.4638),
exec_apt_2_int = vector4(-773.9349, 342.1293, 196.6862, 87.2747),
exec_apt_3_int = vector4(-787.0633, 315.7905, 187.9135, 276.2593),
fib_floor_47_int = vector4(136.714, -765.5745, 234.152, 76.3983),
fib_floor_49_int = vector4(136.2863, -765.8568, 242.1519, 79.0446),
fib_top_floor_int = vector4(156.6616, -759.0523, 258.1518, 83.4114),
franklins_house_int = vector4(-14.1716, -1440.7046, 31.1015, 2.7505),
house_hi_1_int = vector4(-174.1817, 497.7469, 137.6537, 195.447),
house_hi_2_int = vector4(342.0325, 437.7024, 149.3897, 125.2541),
house_hi_3_int = vector4(373.5483, 423.4114, 145.9079, 162.7296),
house_hi_4_int = vector4(-682.3972, 592.3556, 145.3927, 233.6731),
house_hi_5_int = vector4(-758.5825, 619.0045, 144.1539, 118.2023),
house_hi_6_int = vector4(-860.154, 690.9542, 152.8608, 192.5502),
house_hi_7_int = vector4(117.227, 559.6552, 184.3049, 190.2912),
house_low_1_int = vector4(266.0239, -1007.0026, -100.9048, 357.9751),
house_mid_1_int = vector4(346.855, -1012.7548, -99.1963, 355.3892),
iaa_facility_1_int = vector4(2154.9517, 2921.0366, -61.9025, 96.9736),
iaa_facility_2_int = vector4(2154.6731, 2921.0784, -81.0755, 268.6461),
lesters_factory_int = vector4(717.8725, -974.6326, 24.9142, 359.5224),
lesters_house_int = vector4(1273.9886, -1719.4897, 54.7715, 11.6602),
meth_lab_int = vector4(997.4726, -3200.6846, -36.3937, 307.2153),
morgue_int = vector4(274.9287, -1361.0305, 24.5378, 48.8693),
motel_room_int = vector4(151.379, -1007.7512, -99.0, 326.917),
movie_theatre_int = vector4(-1437.0271, -243.3148, 16.8335, 200.8791),
nightclub_1_int = vector4(-1569.494, -3016.9558, -74.4061, 359.8158),
office_1_int = vector4(-140.6184, -619.2825, 168.8203, 183.2728),
office_2_int = vector4(-77.2845, -828.4749, 243.3858, 330.7214),
office_3_int = vector4(-1579.7123, -562.8762, 108.5229, 217.1494),
office_4_int = vector4(-1394.6268, -479.7602, 72.0421, 273.3521),
psychiatrist_office_int = vector4(-1902.1859, -572.3267, 19.0972, 106.6428),
shell_1_int = vector4(404.9589, -957.7651, -99.0042, 1.7754),
submarine_int = vector4(512.8119, 4881.4795, -62.5867, 359.146),
uniondepository_int = vector4(5.8001, -708.6383, 16.131, 348.7656),
weed_farm_int = vector4(1066.0164, -3183.4456, -39.1635, 96.9736),
-- Unknown/Random/Vanilla
burgershot = vector4(-1199.0568, -882.4495, 13.3500, 209.1105),
casino = vector4(923.2289, 47.3113, 81.1063, 237.6052),
-- Gabz
arcade = vector4(-1649.6089, -1083.9313, 13.1575, 46.4121),
beanmachinelegion = vector4(116.16, -1022.99, 29.3, 0.0),
bowling = vector4(761.5008, -777.7256, 26.3078, 90.5581),
pizzaria = vector4(790.4561, -758.4601, 26.7424, 270.2329),
catcafe = vector4(-580.8388, -1072.7872, 22.3296, 359.0078),
carmeet = vector4(958.8237, -1699.6659, 29.5574, 71.2731),
popsdiner = vector4(1595.9753, 6448.6421, 25.3170, 28.3026),
harmony = vector4(1183.0693, 2648.5313, 37.8363, 194.0603),
haters = vector4(-1117.1525, -1439.4297, 5.1075, 103.4411),
hayes = vector4(-1435.7040, -445.7360, 35.5964, 220.1762),
pdm = vector4(-48.2113, -1105.4769, 27.2634, 339.5899),
bennys = vector4(-47.5289, -1042.6086, 28.3532, 247.9748),
lamesaauto = vector4(720.4776, -1092.1934, 22.2866, 310.1469),
lostmc = vector4(982.6339, -104.7095, 74.8488, 30.8738),
pillbox = vector4(298.1153, -584.2825, 43.2609, 252.7553),
mirrorparkhouse1 = vector4(945.9535, -652.9119, 58.0228, 90.5541),
pacificbank = vector4(229.9529, 214.3890, 105.5561, 294.6791),
paletoliquor = vector4(-154.2287, 6328.8682, 31.5665, 133.1992),
paletogasstation = vector4(120.2420, 6625.4722, 31.9580, 36.5687),
pinkcage = vector4(323.9055, -203.2524, 54.0866, 186.8505),
ponsonbys1 = vector4(-165.2497, -304.3988, 38.07126, 0.0),
ponsonbys2 = vector4(-1448.1, -236.8420, 48.15098, 0.0),
ponsonbys3 = vector4(-709.8120, -150.6267, 35.75312, 0.0),
rangerstation = vector4(387.3204, 790.1508, 187.6927, 4.7656),
recordastudio = vector4(473.3006, -109.4360, 62.7418, 350.8488),
suburban1 = vector4(124.9756, -217.6290, 55.81879, 0.0),
suburban2 = vector4(617.4776, 2757.4810, 43.34935, 0.0),
suburban3 = vector4(-1195.8690, -773.5746, 18.58485, 0.0),
suburban4 = vector4(-3170.9670, 1049.9310, 22.12445, 0.0),
triadrecords = vector4(-829.0061, -698.2049, 28.0583, 291.2052),
tuner = vector4(157.5888, -3017.9968, 7.0400, 94.0695),
vu = vector4(129.4555, -1299.6754, 29.2327, 27.6378),
-- Patoche
luxerydealership = vector4(-1273.22, -371.11, 36.64, 301.8),
-- Unclejust
digitalden = vector4(-656.28, -849.92, 24.51, 167.42),
ifruitstore1 = vector4(-646.78, -288.17, 35.49, 297.73),
ifruitstore2 = vector4(-778.7451, -598.2717, 30.2772, 181.0197)
}
+19 -21
View File
@@ -1,9 +1,7 @@
QBShared = QBShared or {}
local StringCharset = {}
local NumberCharset = {}
QBShared.StarterItems = {
QBCore.Shared.StarterItems = {
['phone'] = { amount = 1, item = 'phone' },
['id_card'] = { amount = 1, item = 'id_card' },
['driver_license'] = { amount = 1, item = 'driver_license' },
@@ -13,17 +11,17 @@ for i = 48, 57 do NumberCharset[#NumberCharset + 1] = string.char(i) end
for i = 65, 90 do StringCharset[#StringCharset + 1] = string.char(i) end
for i = 97, 122 do StringCharset[#StringCharset + 1] = string.char(i) end
function QBShared.RandomStr(length)
function QBCore.Shared.RandomStr(length)
if length <= 0 then return '' end
return QBShared.RandomStr(length - 1) .. StringCharset[math.random(1, #StringCharset)]
return QBCore.Shared.RandomStr(length - 1) .. StringCharset[math.random(1, #StringCharset)]
end
function QBShared.RandomInt(length)
function QBCore.Shared.RandomInt(length)
if length <= 0 then return '' end
return QBShared.RandomInt(length - 1) .. NumberCharset[math.random(1, #NumberCharset)]
return QBCore.Shared.RandomInt(length - 1) .. NumberCharset[math.random(1, #NumberCharset)]
end
function QBShared.SplitStr(str, delimiter)
function QBCore.Shared.SplitStr(str, delimiter)
local result = {}
local from = 1
local delim_from, delim_to = string.find(str, delimiter, from)
@@ -36,47 +34,47 @@ function QBShared.SplitStr(str, delimiter)
return result
end
function QBShared.Trim(value)
function QBCore.Shared.Trim(value)
if not value then return nil end
return (string.gsub(value, '^%s*(.-)%s*$', '%1'))
end
function QBShared.FirstToUpper(value)
function QBCore.Shared.FirstToUpper(value)
if not value then return nil end
return (value:gsub("^%l", string.upper))
return (value:gsub('^%l', string.upper))
end
function QBShared.Round(value, numDecimalPlaces)
function QBCore.Shared.Round(value, numDecimalPlaces)
if not numDecimalPlaces then return math.floor(value + 0.5) end
local power = 10 ^ numDecimalPlaces
return math.floor((value * power) + 0.5) / (power)
end
function QBShared.ChangeVehicleExtra(vehicle, extra, enable)
function QBCore.Shared.ChangeVehicleExtra(vehicle, extra, enable)
if DoesExtraExist(vehicle, extra) then
if enable then
SetVehicleExtra(vehicle, extra, false)
if not IsVehicleExtraTurnedOn(vehicle, extra) then
QBShared.ChangeVehicleExtra(vehicle, extra, enable)
QBCore.Shared.ChangeVehicleExtra(vehicle, extra, enable)
end
else
SetVehicleExtra(vehicle, extra, true)
if IsVehicleExtraTurnedOn(vehicle, extra) then
QBShared.ChangeVehicleExtra(vehicle, extra, enable)
QBCore.Shared.ChangeVehicleExtra(vehicle, extra, enable)
end
end
end
end
function QBShared.IsFunction(value)
function QBCore.Shared.IsFunction(value)
if type(value) == 'table' then
return value.__cfx_functionReference ~= nil and type(value.__cfx_functionReference) == "string"
return value.__cfx_functionReference ~= nil and type(value.__cfx_functionReference) == 'string'
end
return type(value) == 'function'
end
function QBShared.SetDefaultVehicleExtras(vehicle, config)
function QBCore.Shared.SetDefaultVehicleExtras(vehicle, config)
-- Clear Extras
for i = 1, 20 do
if DoesExtraExist(vehicle, i) then
@@ -89,11 +87,11 @@ function QBShared.SetDefaultVehicleExtras(vehicle, config)
enabled = true
end
QBShared.ChangeVehicleExtra(vehicle, tonumber(id), enabled)
QBCore.Shared.ChangeVehicleExtra(vehicle, tonumber(id), enabled)
end
end
QBShared.MaleNoGloves = {
QBCore.Shared.MaleNoGloves = {
[0] = true,
[1] = true,
[2] = true,
@@ -131,7 +129,7 @@ QBShared.MaleNoGloves = {
[132] = true
}
QBShared.FemaleNoGloves = {
QBCore.Shared.FemaleNoGloves = {
[0] = true,
[1] = true,
[2] = true,
+90
View File
@@ -0,0 +1,90 @@
{
"citizenid": null,
"cid": 1,
"money": {
"cash": 500,
"bank": 5000,
"crypto": 0
},
"optin": true,
"charinfo": {
"firstname": "Firstname",
"lastname": "Lastname",
"birthdate": "00-00-0000",
"gender": 0,
"nationality": "USA",
"phone": null,
"account": null
},
"job": {
"name": "unemployed",
"label": "Civilian",
"payment": 10,
"type": "none",
"onduty": false,
"isboss": false,
"grade": {
"name": "Freelancer",
"level": 1,
"payment": 10,
"isboss": false
}
},
"gang": {
"name": "none",
"label": "No Gang Affiliation",
"isboss": false,
"grade": {
"name": "none",
"level": 1,
"isboss": false
}
},
"metadata": {
"hunger": 100,
"thirst": 100,
"stress": 0,
"isdead": false,
"inlaststand": false,
"armor": 0,
"ishandcuffed": false,
"tracker": false,
"injail": 0,
"jailitems": [],
"status": {},
"phone": {},
"rep": {},
"currentapartment": null,
"callsign": "NO CALLSIGN",
"bloodtype": null,
"fingerprint": null,
"walletid": null,
"criminalrecord": {
"hasRecord": false,
"date": null
},
"licences": {
"driver": true,
"business": false,
"weapon": false
},
"inside": {
"house": null,
"apartment": {
"apartmentType": null,
"apartmentId": null
}
},
"phonedata": {
"SerialNumber": null,
"InstalledApps": []
}
},
"position": {
"x": 1000,
"y": 1000,
"z": 1000,
"h": 1000
},
"items": []
}
+8032
View File
File diff suppressed because it is too large Load Diff
-783
View File
@@ -1,783 +0,0 @@
QBShared = QBShared or {}
QBShared.Vehicles = QBShared.Vehicles or {}
local Vehicles = {
--- Compacts (0)
{
model = 'asbo', -- This has to match the spawn code of the vehicle
name = 'Asbo', -- This is the display of the vehicle
brand = 'Maxwell', -- This is the vehicle's brand
price = 4000, -- The price that the vehicle sells for
category = 'compacts', -- Catgegory of the vehilce, stick with GetVehicleClass() options https://docs.fivem.net/natives/?_0x29439776AAA00A62
type = 'automobile', -- Vehicle type, refer here https://docs.fivem.net/natives/?_0x6AE51D4B & here https://docs.fivem.net/natives/?_0xA273060E
shop = 'pdm', -- Can be a single shop or multiple shops. For multiple shops for example {'shopname1','shopname2','shopname3'}
},
{ model = 'blista', name = 'Blista', brand = 'Dinka', price = 13000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'brioso', name = 'Brioso R/A', brand = 'Grotti', price = 20000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'club', name = 'Club', brand = 'BF', price = 8000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'dilettante', name = 'Dilettante', brand = 'Karin', price = 9000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'dilettante2', name = 'Dilettante Patrol', brand = 'Karin', price = 12000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'kanjo', name = 'Blista Kanjo', brand = 'Dinka', price = 12000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'issi2', name = 'Issi', brand = 'Weeny', price = 7000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'issi3', name = 'Issi Classic', brand = 'Weeny', price = 5000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'issi4', name = 'Issi Arena', brand = 'Weeny', price = 80000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'issi5', name = 'Issi Future Shock', brand = 'Weeny', price = 80000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'issi6', name = 'Issi Nightmare', brand = 'Weeny', price = 80000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'panto', name = 'Panto', brand = 'Benefactor', price = 3200, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'prairie', name = 'Prairie', brand = 'Bollokan', price = 30000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'rhapsody', name = 'Rhapsody', brand = 'Declasse', price = 10000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'brioso2', name = 'Brioso 300', brand = 'Grotti', price = 12000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'weevil', name = 'Weevil', brand = 'BF', price = 9000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'issi7', name = 'Issi Sport', brand = 'Weeny', price = 100000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'blista2', name = 'Blista Compact', brand = 'Dinka', price = 18950, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'blista3', name = 'Blista Go Go Monkey', brand = 'Dinka', price = 15000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'brioso3', name = 'Brioso 300 Widebody', brand = 'Grotti', price = 125000, category = 'compacts', type = 'automobile', shop = 'pdm' },
{ model = 'boor', name = 'Boor', brand = 'Karin', price = 23000, category = 'compacts', type = 'automobile', shop = 'pdm' },
--- Sedans (1)
{ model = 'asea', name = 'Asea', brand = 'Declasse', price = 2500, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'asterope', name = 'Asterope', brand = 'Karin', price = 11000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'cog55', name = 'Cognoscenti 55', brand = 'Enus', price = 22000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'cognoscenti', name = 'Cognoscenti', brand = 'Enus', price = 22500, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'emperor', name = 'Emperor', brand = 'Albany', price = 4250, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'fugitive', name = 'Fugitive', brand = 'Cheval', price = 20000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'glendale', name = 'Glendale', brand = 'Benefactor', price = 3400, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'glendale2', name = 'Glendale Custom', brand = 'Benefactor', price = 12000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'ingot', name = 'Ingot', brand = 'Vulcar', price = 4999, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'intruder', name = 'Intruder', brand = 'Karin', price = 11250, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'premier', name = 'Premier', brand = 'Declasse', price = 12000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'primo', name = 'Primo', brand = 'Albany', price = 5000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'primo2', name = 'Primo Custom', brand = 'Albany', price = 14500, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'regina', name = 'Regina', brand = 'Dundreary', price = 7000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'stafford', name = 'Stafford', brand = 'Enus', price = 30000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'stanier', name = 'Stanier', brand = 'Vapid', price = 19000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'stratum', name = 'Stratum', brand = 'Zirconium', price = 15000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'stretch', name = 'Stretch', brand = 'Dundreary', price = 19000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'superd', name = 'Super Diamond', brand = 'Enus', price = 17000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'surge', name = 'Surge', brand = 'Cheval', price = 20000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'tailgater', name = 'Tailgater', brand = 'Obey', price = 22000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'warrener', name = 'Warrener', brand = 'Vulcar', price = 4000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'washington', name = 'Washington', brand = 'Albany', price = 7000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'tailgater2', name = 'Tailgater S', brand = 'Obey', price = 51000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'cinquemila', name = 'Lampadati', brand = 'Cinquemila', price = 125000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'iwagen', name = 'Obey', brand = 'I-Wagen', price = 225000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'astron', name = 'Astron', brand = 'Pfister', price = 150000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'baller7', name = 'Baller ST', brand = 'Gallivanter', price = 145000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'comet7', name = 'Comet', brand = 'S2 Cabrio', price = 25000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'deity', name = 'Deity', brand = 'Enus', price = 505000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'jubilee', name = 'Jubilee', brand = 'Enus', price = 485000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'oracle', name = 'Oracle', brand = 'Übermacht', price = 22000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'schafter2', name = 'Schafter', brand = 'Benefactor', price = 16000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'warrener2', name = 'Warrener HKR', brand = 'Vulcar', price = 30000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'rhinehart', name = 'Rhinehart', brand = 'Übermacht', price = 105000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'eudora', name = 'Eudora', brand = 'Willard', price = 17000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'asterope2', name = 'Asterope GZ', brand = 'Karin', price = 459000, category = 'sedans', type = 'automobile', shop = 'pdm' },
{ model = 'impaler5', name = 'Impaler SZ', brand = 'Declasse', price = 768000, category = 'sedans', type = 'automobile', shop = 'pdm' },
--- SUV (2)
{ model = 'baller', name = 'Baller', brand = 'Gallivanter', price = 22000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'baller2', name = 'Baller II', brand = 'Gallivanter', price = 15000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'baller3', name = 'Baller LE', brand = 'Gallivanter', price = 15000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'baller4', name = 'Baller LE LWB', brand = 'Gallivanter', price = 29000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'baller5', name = 'Baller LE (Armored)', brand = 'Gallivanter', price = 78000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'baller6', name = 'Baller LE LWB (Armored)', brand = 'Gallivanter', price = 82000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'bjxl', name = 'BeeJay XL', brand = 'Karin', price = 19000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'cavalcade', name = 'Cavalcade', brand = 'Albany', price = 14000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'cavalcade2', name = 'Cavalcade II', brand = 'Albany', price = 16500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'contender', name = 'Contender', brand = 'Vapid', price = 35000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'dubsta', name = 'Dubsta', brand = 'Benefactor', price = 19000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'dubsta2', name = 'Dubsta Luxury', brand = 'Benefactor', price = 19500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'fq2', name = 'FQ2', brand = 'Fathom', price = 18500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'granger', name = 'Granger', brand = 'Declasse', price = 22000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'gresley', name = 'Gresley', brand = 'Bravado', price = 25000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'habanero', name = 'Habanero', brand = 'Emperor', price = 20000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'huntley', name = 'Huntley S', brand = 'Enus', price = 24500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'landstalker', name = 'Landstalker', brand = 'Dundreary', price = 12000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'landstalker2', name = 'Landstalker XL', brand = 'Dundreary', price = 26000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'novak', name = 'Novak', brand = 'Lampadati', price = 70000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'patriot', name = 'Patriot', brand = 'Mammoth', price = 21000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'patriot2', name = 'Patriot Stretch', brand = 'Mammoth', price = 21000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'radi', name = 'Radius', brand = 'Vapid', price = 18000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'rebla', name = 'Rebla GTS', brand = 'Übermacht', price = 21000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'rocoto', name = 'Rocoto', brand = 'Obey', price = 13000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'seminole', name = 'Seminole', brand = 'Canis', price = 20000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'seminole2', name = 'Seminole Frontier', brand = 'Canis', price = 13000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'serrano', name = 'Serrano', brand = 'Benefactor', price = 48000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'toros', name = 'Toros', brand = 'Pegassi', price = 65000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'xls', name = 'XLS', brand = 'Benefactor', price = 17000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'granger2', name = 'Granger 3600LX', brand = 'Declasse', price = 221000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'patriot3', name = 'Patriot Military', brand = 'Mil-Spec', price = 270000, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'aleutian', name = 'Aleutian', brand = 'Vapid', price = 183500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'baller8', name = 'Baller ST-D', brand = 'Gallivanter', price = 171500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'cavalcade3', name = 'Cavalcade XL', brand = 'Albany', price = 166500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'dorado', name = 'Dorado', brand = 'Bravado', price = 137500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'vivanite', name = 'Vivanite', brand = 'Karin', price = 160500, category = 'suvs', type = 'automobile', shop = 'pdm' },
{ model = 'castigator', name = 'Castigator', brand = 'Canis', price = 160500, category = 'suvs', type = 'automobile', shop = 'pdm' },
--- Coupes (3)
{ model = 'cogcabrio', name = 'Cognoscenti Cabrio', brand = 'Enus', price = 30000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'exemplar', name = 'Exemplar', brand = 'Dewbauchee', price = 40000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'f620', name = 'F620', brand = 'Ocelot', price = 32500, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'felon', name = 'Felon', brand = 'Lampadati', price = 31000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'felon2', name = 'Felon GT', brand = 'Lampadati', price = 37000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'jackal', name = 'Jackal', brand = 'Ocelot', price = 19000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'oracle2', name = 'Oracle XS', brand = 'Übermacht', price = 28000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'sentinel', name = 'Sentinel', brand = 'Übermacht', price = 30000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'sentinel2', name = 'Sentinel XS', brand = 'Übermacht', price = 33000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'windsor', name = 'Windsor', brand = 'Enus', price = 27000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'windsor2', name = 'Windsor Drop', brand = 'Enus', price = 34000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'zion', name = 'Zion', brand = 'Übermacht', price = 22000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'zion2', name = 'Zion Cabrio', brand = 'Übermacht', price = 28000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'previon', name = 'Previon', brand = 'Karin', price = 149000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'champion', name = 'Champion', brand = 'Dewbauchee', price = 205000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'futo', name = 'Futo', brand = 'Karin', price = 17500, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'sentinel3', name = 'Sentinel Classic', brand = 'Übermacht', price = 70000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'kanjosj', name = 'Kanjo SJ', brand = 'Dinka', price = 143000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'postlude', name = 'Postlude', brand = 'Dinka', price = 90000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'tahoma', name = 'Tahoma Coupe', brand = 'Declasse', price = 12000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'broadway', name = 'Broadway', brand = 'Classique', price = 20000, category = 'coupes', type = 'automobile', shop = 'pdm' },
{ model = 'fr36', name = 'FR36', brand = 'Fathom', price = 161000, category = 'coupes', type = 'automobile', shop = 'pdm' },
--- Muscle (4)
{ model = 'blade', name = 'Blade', brand = 'Vapid', price = 23500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'buccaneer', name = 'Buccaneer', brand = 'Albany', price = 22500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'buccaneer2', name = 'Buccaneer Rider', brand = 'Albany', price = 24500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'chino', name = 'Chino', brand = 'Vapid', price = 5000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'chino2', name = 'Chino Luxe', brand = 'Vapid', price = 8000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'clique', name = 'Clique', brand = 'Vapid', price = 20000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'coquette3', name = 'Coquette BlackFin', brand = 'Invetero', price = 180000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'deviant', name = 'Deviant', brand = 'Schyster', price = 70000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator', name = 'Dominator', brand = 'Vapid', price = 62500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator2', name = 'Pißwasser Dominator', brand = 'Vapid', price = 50000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator3', name = 'Dominator GTX', brand = 'Vapid', price = 70000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator4', name = 'Dominator Arena', brand = 'Vapid', price = 200000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator7', name = 'Dominator ASP', brand = 'Vapid', price = 110000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator8', name = 'Dominator GTT', brand = 'Vapid', price = 80000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dukes', name = 'Dukes', brand = 'Imponte', price = 23500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dukes2', name = 'Duke O\'Death', brand = 'Imponte', price = 60000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dukes3', name = 'Beater Dukes', brand = 'Imponte', price = 45000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'faction', name = 'Faction', brand = 'Willard', price = 17000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'faction2', name = 'Faction Rider', brand = 'Willard', price = 19000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'faction3', name = 'Faction Custom Donk', brand = 'Willard', price = 35000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'ellie', name = 'Ellie', brand = 'Vapid', price = 42250, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'gauntlet', name = 'Gauntlet', brand = 'Bravado', price = 28500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'gauntlet2', name = 'Redwood Gauntlet', brand = 'Bravado', price = 70000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'gauntlet3', name = 'Classic Gauntlet', brand = 'Bravado', price = 75000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'gauntlet4', name = 'Gauntlet Hellfire', brand = 'Bravado', price = 80000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'gauntlet5', name = 'Gauntlet Classic Custom', brand = 'Bravado', price = 120000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'hermes', name = 'Hermes', brand = 'Albany', price = 535000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'hotknife', name = 'Hotknife', brand = 'Vapid', price = 90000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'hustler', name = 'Hustler', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'impaler', name = 'Impaler', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'impaler2', name = 'Impaler Arena', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'impaler3', name = 'Impaler Future Shock', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'impaler4', name = 'Impaler Nightmare', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'imperator', name = 'Imperator Arena', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'imperator2', name = 'imperator Future Shock', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'imperator3', name = 'Imperator Nightmare', brand = 'Vapid', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'lurcher', name = 'Lurcher', brand = 'Bravado', price = 21000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'nightshade', name = 'Nightshade', brand = 'Imponte', price = 70000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'phoenix', name = 'Phoenix', brand = 'Imponte', price = 65000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'picador', name = 'Picador', brand = 'Cheval', price = 20000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'ratloader2', name = 'Ratloader', brand = 'Ratloader2', price = 20000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'ruiner', name = 'Ruiner', brand = 'Imponte', price = 29000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'ruiner2', name = 'Ruiner 2000', brand = 'Imponte', price = 50000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'sabregt', name = 'Sabre GT Turbo', brand = 'Declasse', price = 23000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'sabregt2', name = 'Sabre GT Turbo Custom', brand = 'Declasse', price = 26500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'slamvan', name = 'Slam Van', brand = 'Vapid', price = 30000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'slamvan2', name = 'Lost Slam Van', brand = 'Vapid', price = 90000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'slamvan3', name = 'Slam Van Custom', brand = 'Vapid', price = 17000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'stalion', name = 'Stallion', brand = 'Declasse', price = 33000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'stalion2', name = 'Stallion Burgershot', brand = 'Declasse', price = 40000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'tampa', name = 'Tampa', brand = 'Declasse', price = 24500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'tulip', name = 'Tulip', brand = 'Declasse', price = 80000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'vamos', name = 'Vamos', brand = 'Declasse', price = 30000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'vigero', name = 'Vigero', brand = 'Declasse', price = 39500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'virgo', name = 'Virgo', brand = 'Albany', price = 22000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'virgo2', name = 'Virgo Custom Classic', brand = 'Dundreary', price = 21000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'virgo3', name = 'Virgo Classic', brand = 'Dundreary', price = 21000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'voodoo', name = 'Voodoo', brand = 'Declasse', price = 13000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'yosemite', name = 'Yosemite', brand = 'Declasse', price = 19500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'yosemite2', name = 'Yosemite Drift', brand = 'Declasse', price = 55000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'buffalo4', name = 'Buffalo STX', brand = 'Bravado', price = 345000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'manana', name = 'Manana', brand = 'Albany', price = 12800, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'manana2', name = 'Manana Custom', brand = 'Albany', price = 24000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'tampa2', name = 'Drift Tampa', brand = 'Declasse', price = 80000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'ruiner4', name = 'Ruiner ZZ-8', brand = 'Imponte', price = 85000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'vigero2', name = 'Vigero ZX', brand = 'Declasse', price = 105000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'weevil2', name = 'Weevil Custom', brand = 'BF', price = 95000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'buffalo5', name = 'Buffalo EVX', brand = 'Bravado', price = 214000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'tulip2', name = 'Tulip M-100', brand = 'Declasse', price = 80000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'clique2', name = 'Clique Wagon', brand = 'Vapid', price = 102500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'brigham', name = 'Brigham', brand = 'Albany', price = 149900, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'greenwood', name = 'Greenwood', brand = 'Bravado', price = 105000, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'dominator9', name = 'Dominator GT', brand = 'Vapid', price = 219500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'impaler6', name = 'Impaler LX', brand = 'Declasse', price = 146500, category = 'muscle', type = 'automobile', shop = 'pdm' },
{ model = 'vigero3', name = 'Vigero ZX Convertible', brand = 'Declasse', price = 229500, category = 'muscle', type = 'automobile', shop = 'pdm' },
--- Sports Classic (5)
{ model = 'ardent', name = 'Ardent', brand = 'Ocelot', price = 30000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'btype', name = 'Roosevelt', brand = 'Albany', price = 75000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'btype2', name = 'Franken Stange', brand = 'Albany', price = 87000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'btype3', name = 'Roosevelt Valor', brand = 'Albany', price = 63000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'casco', name = 'Casco', brand = 'Lampadati', price = 100000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'deluxo', name = 'Deluxo', brand = 'Imponte', price = 55000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'dynasty', name = 'Dynasty', brand = 'Weeny', price = 25000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'fagaloa', name = 'Fagaloa', brand = 'Vulcar', price = 13000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'feltzer3', name = 'Stirling GT', brand = 'Benefactor', price = 115000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'gt500', name = 'GT500', brand = 'Grotti', price = 130000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'infernus2', name = 'Infernus Classic', brand = 'Pegassi', price = 245000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'jb700', name = 'JB 700', brand = 'Dewbauchee', price = 240000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'jb7002', name = 'JB 700W', brand = 'Dewbauchee', price = 40000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'mamba', name = 'Mamba', brand = 'Declasse', price = 140000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'michelli', name = 'Michelli GT', brand = 'Lampadati', price = 30000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'monroe', name = 'Monroe', brand = 'Pegassi', price = 115000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'nebula', name = 'Nebula', brand = 'Vulcar', price = 22000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'peyote', name = 'Peyote', brand = 'Vapid', price = 23500, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'peyote3', name = 'Peyote Custom', brand = 'Vapid', price = 48000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'pigalle', name = 'Pigalle', brand = 'Lampadati', price = 92000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'rapidgt3', name = 'Rapid GT Classic', brand = 'Dewbauchee', price = 90000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'retinue', name = 'Retinue', brand = 'Vapid', price = 32000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'retinue2', name = 'Retinue MKII', brand = 'Vapid', price = 38000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'savestra', name = 'Savestra', brand = 'Annis', price = 67000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'stinger', name = 'Stinger', brand = 'Grotti', price = 39500, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'stingergt', name = 'Stinger GT', brand = 'Grotti', price = 70000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'stromberg', name = 'Stromberg', brand = 'Ocelot', price = 80000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'swinger', name = 'Swinger', brand = 'Ocelot', price = 221000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'torero', name = 'Torero', brand = 'Pegassi', price = 84000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'tornado', name = 'Tornado', brand = 'Declasse', price = 21000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'tornado2', name = 'Tornado Convertible', brand = 'Declasse', price = 22000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'tornado5', name = 'Tornado Custom', brand = 'Declasse', price = 22000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'turismo2', name = 'Turismo Classic', brand = 'Grotti', price = 170000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'viseris', name = 'Viseris', brand = 'Lampadati', price = 210000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'z190', name = '190Z', brand = 'Karin', price = 78000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'ztype', name = 'Z-Type', brand = 'Truffade', price = 270000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'zion3', name = 'Zion Classic', brand = 'Übermacht', price = 45000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'cheburek', name = 'Cheburek', brand = 'Rune', price = 7000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'toreador', name = 'Toreador', brand = 'Pegassi', price = 50000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'peyote2', name = 'Peyote Gasser', brand = 'Vapid', price = 40000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'coquette2', name = 'Coquette Classic', brand = 'Invetero', price = 165000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'envisage', name = 'Envisage', brand = 'Bollokan', price = 190000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
{ model = 'driftnebula', name = 'Nebula Turbo', brand = 'Vulcar', price = 100000, category = 'sportsclassics', type = 'automobile', shop = 'pdm' },
--- Sports (6)
{ model = 'alpha', name = 'Alpha', brand = 'Albany', price = 53000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'banshee', name = 'Banshee', brand = 'Bravado', price = 56000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'bestiagts', name = 'Bestia GTS', brand = 'Grotti', price = 37000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'buffalo', name = 'Buffalo', brand = 'Bravado', price = 18750, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'buffalo2', name = 'Buffalo S', brand = 'Bravado', price = 24500, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'carbonizzare', name = 'Carbonizzare', brand = 'Grotti', price = 155000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'comet2', name = 'Comet', brand = 'Pfister', price = 130000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'comet3', name = 'Comet Retro Custom', brand = 'Pfister', price = 175000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'comet4', name = 'Comet Safari', brand = 'Pfister', price = 110000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'comet5', name = 'Comet SR', brand = 'Pfister', price = 155000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'coquette', name = 'Coquette', brand = 'Invetero', price = 145000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'coquette4', name = 'Coquette D10', brand = 'Invetero', price = 220000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'drafter', name = '8F Drafter', brand = 'Obey', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'elegy', name = 'Elegy Retro Custom', brand = 'Annis', price = 145000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'elegy2', name = 'Elegy RH8', brand = 'Annis', price = 150000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'feltzer2', name = 'Feltzer', brand = 'Benefactor', price = 97000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'flashgt', name = 'Flash GT', brand = 'Vapid', price = 48000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'furoregt', name = 'Furore GT', brand = 'Lampadati', price = 78000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'gb200', name = 'GB 200', brand = 'Vapid', price = 140000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'komoda', name = 'Komoda', brand = 'Lampadati', price = 55000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'imorgon', name = 'Imorgon', brand = 'Överflöd', price = 120000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'italigto', name = 'Itali GTO', brand = 'Progen', price = 260000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'jugular', name = 'Jugular', brand = 'Ocelot', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'jester', name = 'Jester', brand = 'Dinka', price = 132250, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'jester2', name = 'Jester Racecar', brand = 'Dinka', price = 210000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'jester3', name = 'Jester Classic', brand = 'Dinka', price = 85000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'khamelion', name = 'Khamelion', brand = 'Hijak', price = 90000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'kuruma', name = 'Kuruma', brand = 'Karin', price = 72000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'kuruma2', name = 'kuruma2', brand = 'Karin2', price = 72000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'locust', name = 'Locust', brand = 'Ocelot', price = 200000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'lynx', name = 'Lynx', brand = 'Ocelot', price = 150000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'massacro', name = 'Massacro', brand = 'Dewbauchee', price = 110000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'massacro2', name = 'Massacro Racecar', brand = 'Dewbauchee', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'neo', name = 'Neo', brand = 'Vysser', price = 230000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'neon', name = 'Neon', brand = 'Pfister', price = 220000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'ninef', name = '9F', brand = 'Obey', price = 95000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'ninef2', name = '9F Cabrio', brand = 'Obey', price = 105000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'omnis', name = 'Omnis', brand = 'Wow', price = 90000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'paragon', name = 'Paragon', brand = 'Enus', price = 60000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'pariah', name = 'Pariah', brand = 'Ocelot', price = 90000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'penumbra', name = 'Penumbra', brand = 'Maibatsu', price = 22000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'penumbra2', name = 'Penumbra FF', brand = 'Maibatsu', price = 30000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'rapidgt', name = 'Rapid GT', brand = 'Dewbauchee', price = 86000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'rapidgt2', name = 'Rapid GT Convertible', brand = 'Dewbauchee', price = 92000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'raptor', name = 'Raptor', brand = 'BF', price = 90000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'revolter', name = 'Revolter', brand = 'Übermacht', price = 95000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'ruston', name = 'Ruston', brand = 'Hijak', price = 130000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'schafter3', name = 'Schafter V12', brand = 'Benefactor', price = 35000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'schafter4', name = 'Schafter LWB', brand = 'Benefactor', price = 21000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'schlagen', name = 'Schlagen GT', brand = 'Benefactor', price = 160000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'schwarzer', name = 'Schwartzer', brand = 'Benefactor', price = 47000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'seven70', name = 'Seven-70', brand = 'Dewbauchee', price = 140000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'specter', name = 'Specter', brand = 'Dewbauchee', price = 160000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'streiter', name = 'Streiter', brand = 'Benefactor', price = 40000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sugoi', name = 'Sugoi', brand = 'Dinka', price = 85000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sultan', name = 'Sultan', brand = 'Karin', price = 50000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sultan2', name = 'Sultan Custom', brand = 'Karin', price = 55000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'surano', name = 'Surano', brand = 'Benefactor', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'tropos', name = 'Tropos Rallye', brand = 'Lampadati', price = 65000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'verlierer2', name = 'Verlierer', brand = 'Bravado', price = 90500, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'vstr', name = 'V-STR', brand = 'Albany', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'italirsx', name = 'Itali RSX', brand = 'Progen', price = 260000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'zr350', name = 'ZR350', brand = 'Annis', price = 38000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'calico', name = 'Calico GTF', brand = 'Karin', price = 39000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'futo2', name = 'Futo GTX', brand = 'Karin', price = 39000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'euros', name = 'Euros', brand = 'Annis', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'jester4', name = 'Jester RR', brand = 'Dinka', price = 240000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'remus', name = 'Remus', brand = 'Annis', price = 48000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'comet6', name = 'Comet S2', brand = 'Pfister', price = 230000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'growler', name = 'Growler', brand = 'Pfister', price = 205000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'vectre', name = 'Vectre', brand = 'Emperor', price = 80000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'cypher', name = 'Cypher', brand = 'Übermacht', price = 155000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sultan3', name = 'Sultan Classic Custom', brand = 'Karin', price = 56000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'rt3000', name = 'RT3000', brand = 'Dinka', price = 65000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sultanrs', name = 'Sultan RS', brand = 'Karin', price = 76500, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'visione', name = 'Visione', brand = 'Grotti', price = 750000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'cheetah2', name = 'Cheetah Classic', brand = 'Grotti', price = 195000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'stingertt', name = 'Itali GTO Stinger TT', brand = 'Maibatsu', price = 238000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'omnisegt', name = 'Omnis e-GT', brand = 'Obey', price = 185000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sentinel4', name = 'Sentinel Classic Widebody', brand = 'Übermacht', price = 140000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'sm722', name = 'SM722', brand = 'Benefactor', price = 125000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'tenf', name = '10F', brand = 'Obey', price = 185000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'tenf2', name = '10F Widebody', brand = 'Obey', price = 215000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'everon2', name = 'Everon Hotring', brand = 'Karin', price = 80000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'issi8', name = 'Issi Rally', brand = 'Weeny', price = 10000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'corsita', name = 'Corsita', brand = 'Lampadati', price = 90000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'gauntlet6', name = 'Hotring Hellfire', brand = 'Bravado', price = 181000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'coureur', name = 'La Coureuse', brand = 'Penaud', price = 199000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'r300', name = '300R', brand = 'Annis', price = 56000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'panthere', name = 'Panthere', brand = 'Toundra', price = 55000, category = 'sports', type = 'automobile', shop = 'pdm' },
{ model = 'driftsentinel', name = 'Drift Sentinel Classic', brand = 'Ubermacht', price = 150000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'paragon3', name = 'Paragon S', brand = 'Enus', price = 220000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'eurosX32', name = 'Euros X32', brand = 'Annis', price = 180000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'vorschlaghammer', name = 'Vorschlaghammer', brand = 'Pfister', price = 250000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'driftcypher', name = 'Drift Cypher', brand = 'Ubermacht', price = 160000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'coquette5', name = 'Coquette D1', brand = 'Invetero', price = 220000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'pipistrello', name = 'Pipistrello', brand = 'Overflod', price = 240000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'niobe', name = 'Niobe', brand = 'Ubermacht', price = 180000, category = 'sports', type = 'automobile', shop = 'luxury' },
{ model = 'driftvorschlag', name = 'Vorschlaghammer', brand = 'Pfister', price = 250000, category = 'sports', type = 'automobile', shop = 'luxury' },
--- Super (7)
{ model = 'adder', name = 'Adder', brand = 'Truffade', price = 280000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'autarch', name = 'Autarch', brand = 'Överflöd', price = 224000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'banshee2', name = 'Banshee 900R', brand = 'Bravado', price = 120000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'bullet', name = 'Bullet', brand = 'Vapid', price = 120000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'cheetah', name = 'Cheetah', brand = 'Grotti', price = 214000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'cyclone', name = 'Cyclone', brand = 'Coil', price = 300000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'entity2', name = 'Entity XXR', brand = 'Överflöd', price = 164000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'entityxf', name = 'Entity XF', brand = 'Överflöd', price = 180000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'emerus', name = 'Emerus', brand = 'Progen', price = 220000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'fmj', name = 'FMJ', brand = 'Vapid', price = 125000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'furia', name = 'Furia', brand = 'Grotti', price = 230000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'gp1', name = 'GP1', brand = 'Progen', price = 110000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'infernus', name = 'Infernus', brand = 'Pegassi', price = 235000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'italigtb', name = 'Itali GTB', brand = 'Progen', price = 170000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'italigtb2', name = 'Itali GTB Custom', brand = 'Progen', price = 250000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'krieger', name = 'Krieger', brand = 'Benefactor', price = 222000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'le7b', name = 'RE-7B', brand = 'Annis', price = 260000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'nero', name = 'Nero', brand = 'Truffade', price = 200000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'nero2', name = 'Nero Custom', brand = 'Truffade', price = 260000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'osiris', name = 'Osiris', brand = 'Pegassi', price = 220000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'penetrator', name = 'Penetrator', brand = 'Ocelot', price = 130000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'pfister811', name = '811', brand = 'Pfister', price = 220000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'prototipo', name = 'X80 Proto', brand = 'Grotti', price = 235000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'reaper', name = 'Reaper', brand = 'Pegassi', price = 100000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 's80', name = 'S80RR', brand = 'Annis', price = 205000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'sc1', name = 'SC1', brand = 'Übermacht', price = 90000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'sheava', name = 'ETR1', brand = 'Emperor', price = 220000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 't20', name = 'T20', brand = 'Progen', price = 1650000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'taipan', name = 'Taipan', brand = 'Cheval', price = 1850000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'tempesta', name = 'Tempesta', brand = 'Pegassi', price = 120000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'tezeract', name = 'Tezeract', brand = 'Pegassi', price = 220000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'thrax', name = 'Thrax', brand = 'Truffade', price = 180000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'tigon', name = 'Tigon', brand = 'Lampadati', price = 240000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'turismor', name = 'Turismo R', brand = 'Grotti', price = 140000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'tyrant', name = 'Tyrant', brand = 'Överflöd', price = 2100000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'tyrus', name = 'Tyrus', brand = 'Progen', price = 230000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'vacca', name = 'Vacca', brand = 'Pegassi', price = 105000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'vagner', name = 'Vagner', brand = 'Dewbauchee', price = 1660000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'voltic', name = 'Voltic', brand = 'Coil', price = 120000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'voltic2', name = 'Rocket Voltic', brand = 'Coil', price = 9830400, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'xa21', name = 'XA-21', brand = 'Ocelot', price = 180000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'zentorno', name = 'Zentorno', brand = 'Pegassi', price = 340000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'zorrusso', name = 'Zorrusso', brand = 'Pegassi', price = 277000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'ignus', name = 'Ignus', brand = 'Pegassi', price = 1120000, category = 'super', type = 'automobile', shop = 'pdm' },
{ model = 'zeno', name = 'Zeno', brand = 'Överflöd', price = 1350000, category = 'super', type = 'automobile', shop = 'pdm' },
{ model = 'deveste', name = 'Deveste', brand = 'Principe', price = 234000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'lm87', name = 'LM87', brand = 'Benefactor', price = 155000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'torero2', name = 'Torero XO', brand = 'Pegassi', price = 245000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'entity3', name = 'Entity MT', brand = 'Overflod', price = 200000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'virtue', name = 'Virtue', brand = 'Ocelot', price = 72000, category = 'super', type = 'automobile', shop = 'luxury' },
{ model = 'turismo3', name = 'Turismo Omaggio', brand = 'Grotti', price = 284500, category = 'super', type = 'automobile', shop = 'luxury' },
--- Motorcycles (8)
{ model = 'akuma', name = 'Akuma', brand = 'Dinka', price = 55000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'avarus', name = 'Avarus', brand = 'LCC', price = 20000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'bagger', name = 'Bagger', brand = 'WMC', price = 13500, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'bati', name = 'Bati 801', brand = 'Pegassi', price = 24000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'bati2', name = 'Bati 801RR', brand = 'Pegassi', price = 19000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'bf400', name = 'BF400', brand = 'Nagasaki', price = 22000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'carbonrs', name = 'Carbon RS', brand = 'Nagasaki', price = 22000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'chimera', name = 'Chimera', brand = 'Nagasaki', price = 21000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'cliffhanger', name = 'Cliffhanger', brand = 'Western', price = 28500, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'daemon', name = 'Daemon', brand = 'WMC', price = 14000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'daemon2', name = 'Daemon Custom', brand = 'Western', price = 23000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'defiler', name = 'Defiler', brand = 'Shitzu', price = 30000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'deathbike', name = 'Deathbike Apocalypse', brand = 'Deathbike', price = 30000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'deathbike2', name = 'Deathbike Future Shock', brand = 'Deathbike', price = 30000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'deathbike3', name = 'Deathbike Nightmare', brand = 'Deathbike', price = 30000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'diablous', name = 'Diablous', brand = 'Principe', price = 30000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'diablous2', name = 'Diablous Custom', brand = 'Principe', price = 38000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'double', name = 'Double-T', brand = 'Dinka', price = 28000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'enduro', name = 'Enduro', brand = 'Dinka', price = 5500, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'esskey', name = 'Esskey', brand = 'Pegassi', price = 12000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'faggio', name = 'Faggio Sport', brand = 'Pegassi', price = 2000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'faggio2', name = 'Faggio', brand = 'Pegassi', price = 1900, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'faggio3', name = 'Faggio Mod', brand = 'Pegassi', price = 2500, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'fcr', name = 'FCR 1000', brand = 'Pegassi', price = 5000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'fcr2', name = 'FCR 1000 Custom', brand = 'Pegassi', price = 19000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'gargoyle', name = 'Gargoyle', brand = 'Western', price = 32000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'hakuchou', name = 'Hakuchou', brand = 'Shitzu', price = 17000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'hakuchou2', name = 'Hakuchou Drag', brand = 'Shitzu', price = 45000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'hexer', name = 'Hexer', brand = 'LCC', price = 16000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'innovation', name = 'Innovation', brand = 'LLC', price = 33500, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'lectro', name = 'Lectro', brand = 'Principe', price = 28000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'manchez', name = 'Manchez', brand = 'Maibatsu', price = 8300, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'nemesis', name = 'Nemesis', brand = 'Principe', price = 20000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'nightblade', name = 'Nightblade', brand = 'WMC', price = 23000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'oppressor', name = 'Oppressor', brand = 'Pegassi', price = 9999999, category = 'motorcycles', type = 'bike', shop = 'luxury' },
{ model = 'pcj', name = 'PCJ-600', brand = 'Shitzu', price = 15000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'ratbike', name = 'Rat Bike', brand = 'Western', price = 3000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'ruffian', name = 'Ruffian', brand = 'Pegassi', price = 25000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'sanchez', name = 'Sanchez Livery', brand = 'Maibatsu', price = 5300, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'sanchez2', name = 'Sanchez', brand = 'Maibatsu', price = 5300, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'sanctus', name = 'Sanctus', brand = 'LCC', price = 35000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'shotaro', name = 'Shotaro', brand = 'Nagasaki', price = 320000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'sovereign', name = 'Sovereign', brand = 'WMC', price = 8000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'stryder', name = 'Stryder', brand = 'Nagasaki', price = 50000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'thrust', name = 'Thrust', brand = 'Dinka', price = 22000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'vader', name = 'Vader', brand = 'Shitzu', price = 7200, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'vindicator', name = 'Vindicator', brand = 'Dinka', price = 19000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'vortex', name = 'Vortex', brand = 'Pegassi', price = 31000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'wolfsbane', name = 'Wolfsbane', brand = 'Western', price = 14000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'zombiea', name = 'Zombie Bobber', brand = 'Western', price = 28000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'zombieb', name = 'Zombie Chopper', brand = 'Western', price = 27000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'manchez2', name = 'Manchez Scout', brand = 'Maibatsu', price = 14000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'shinobi', name = 'Shinobi', brand = 'Nagasaki', price = 25000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'reever', name = 'Reever', brand = 'Western', price = 25000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'manchez3', name = 'Manchez Scout Classic', brand = 'Maibatsu', price = 15000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'powersurge', name = 'Powersurge', brand = 'Western', price = 7000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
{ model = 'pizzaboy', name = 'Pizza Boy', brand = 'Pegassi', price = 50000, category = 'motorcycles', type = 'bike', shop = 'pdm' },
--- Off-Road (9)
{ model = 'bfinjection', name = 'Bf Injection', brand = 'Annis', price = 9000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'bifta', name = 'Bifta', brand = 'Annis', price = 15500, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'blazer', name = 'Blazer', brand = 'Annis', price = 7500, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'blazer2', name = 'Blazer Lifeguard', brand = 'Nagasaki', price = 7000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'blazer3', name = 'Blazer Hot Rod', brand = 'Nagasaki', price = 7000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'blazer4', name = 'Blazer Sport', brand = 'Annis', price = 9250, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'blazer5', name = 'Blazer Aqua', brand = 'Nagasaki', price = 40000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'brawler', name = 'Brawler', brand = 'Annis', price = 40000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'caracara', name = 'Caracara', brand = 'Vapid', price = 60000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'caracara2', name = 'Caracara 4x4', brand = 'Vapid', price = 80000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'dubsta3', name = 'Dubsta 6x6', brand = 'Annis', price = 34000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'dune', name = 'Dune Buggy', brand = 'Annis', price = 14000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'everon', name = 'Everon', brand = 'Karin', price = 60000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'freecrawler', name = 'Freecrawler', brand = 'Canis', price = 24000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'hellion', name = 'Hellion', brand = 'Annis', price = 38000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'kalahari', name = 'Kalahari', brand = 'Canis', price = 14000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'kamacho', name = 'Kamacho', brand = 'Canis', price = 50000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'mesa3', name = 'Mesa Merryweather', brand = 'Canis', price = 400000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'outlaw', name = 'Outlaw', brand = 'Nagasaki', price = 15000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'rancherxl', name = 'Rancher XL', brand = 'Declasse', price = 24000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'rebel2', name = 'Rebel', brand = 'Vapid', price = 20000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'riata', name = 'Riata', brand = 'Vapid', price = 380000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'sandking', name = 'Sandking XL', brand = 'Vapid', price = 25000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'sandking2', name = 'Sandking SWB', brand = 'Vapid', price = 38000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'trophytruck', name = 'Trophy Truck', brand = 'Vapid', price = 60000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'trophytruck2', name = 'Desert Raid', brand = 'Vapid', price = 80000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'vagrant', name = 'Vagrant', brand = 'Maxwell', price = 50000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'verus', name = 'Verus', brand = 'Dinka', price = 20000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'winky', name = 'Winky', brand = 'Vapid', price = 10000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'yosemite3', name = 'Yosemite Rancher', brand = 'Declasse', price = 425000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'mesa', name = 'Mesa', brand = 'Canis', price = 12000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'ratel', name = 'Ratel', brand = 'Vapid', price = 199000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'l35', name = 'Walton L35', brand = 'Declasse', price = 167000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'monstrociti', name = 'MonstroCiti', brand = 'Maibatsu', price = 48000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'draugur', name = 'Draugur', brand = 'Declasse', price = 99000, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'terminus', name = 'Terminus', brand = 'Canis', price = 187750, category = 'offroad', type = 'automobile', shop = 'pdm' },
{ model = 'yosemite4', name = 'Yosemite 1500', brand = 'Declasse', price = 187750, category = 'offroad', type = 'automobile', shop = 'pdm' },
--- Industrial (10)
{ model = 'guardian', name = 'Guardian', brand = 'Vapid', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'mixer2', name = 'Mixer II', brand = 'HVY', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'tiptruck2', name = 'Tipper II', brand = 'Brute', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'tiptruck', name = 'Tipper', brand = 'Brute', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'rubble', name = 'Rubble', brand = 'Jobuilt', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'mixer', name = 'Mixer', brand = 'HVY', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'flatbed', name = 'Flatbed Truck', brand = 'MTL', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'dump', name = 'Dump Truck', brand = 'HVY', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'bulldozer', name = 'Dozer', brand = 'HVY', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'handler', name = 'Dock Handler', brand = 'HVY', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
{ model = 'cutter', name = 'Cutter', brand = 'HVY', price = 30000, category = 'industrial', type = 'automobile', shop = 'truck' },
--- Utility (11)
{ model = 'slamtruck', name = 'Slam Truck', brand = 'Vapid', price = 100000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'caddy3', name = 'Caddy (Bunker)', brand = 'Nagasaki', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'caddy2', name = 'Caddy (Civilian)', brand = 'Nagasaki', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'caddy3', name = 'Caddy (Golf)', brand = 'Nagasaki', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'utillitruck', name = 'Utility Truck (Cherry Picker)', brand = 'Brute', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'utillitruck2', name = 'Utility Truck (Van)', brand = 'Brute', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'utillitruck3', name = 'Utility Truck (Contender)', brand = 'Vapid', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'tractor', name = 'Tractor', brand = 'Stanley', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'tractor2', name = 'Fieldmaster', brand = 'Stanley', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'tractor3', name = 'Fieldmaster', brand = 'Stanley', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'towtruck', name = 'Tow Truck (Large)', brand = 'Vapid', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'towtruck2', name = 'Tow Truck (Small)', brand = 'Vapid', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'scrap', name = 'Scrap Truck', brand = 'Vapid', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'sadler', name = 'Sadler', brand = 'Vapid', price = 20000, category = 'utility', type = 'automobile', shop = 'pdm' },
{ model = 'ripley', name = 'Ripley', brand = 'HVY', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'mower', name = 'Lawn Mower', brand = 'Jacksheepe', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'forklift', name = 'Forklift', brand = 'HVY', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'docktug', name = 'Docktug', brand = 'HVY', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'airtug', name = 'Airtug', brand = 'HVY', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'trailers5', name = 'Trailer (Christmas)', brand = 'Unknown', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
{ model = 'tvtrailer2', name = 'Trailer (TV)', brand = 'Unknown', price = 30000, category = 'utility', type = 'automobile', shop = 'truck' },
--- Vans (12)
{ model = 'bison', name = 'Bison', brand = 'Bravado', price = 18000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'bobcatxl', name = 'Bobcat XL Open', brand = 'Vapid', price = 13500, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'burrito3', name = 'Burrito', brand = 'Declasse', price = 4000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'gburrito2', name = 'Burrito Custom', brand = 'Declasse', price = 11500, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'rumpo', name = 'Rumpo', brand = 'Bravado', price = 9000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'journey', name = 'Journey', brand = 'Zirconium', price = 6500, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'minivan', name = 'Minivan', brand = 'Vapid', price = 7000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'minivan2', name = 'Minivan Custom', brand = 'Vapid', price = 10000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'paradise', name = 'Paradise', brand = 'Bravado', price = 9000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'rumpo3', name = 'Rumpo Custom', brand = 'Bravado', price = 19500, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'speedo', name = 'Speedo', brand = 'Vapid', price = 10000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'speedo4', name = 'Speedo Custom', brand = 'Vapid', price = 15000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'surfer', name = 'Surfer', brand = 'BF', price = 9000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'youga3', name = 'Youga Classic 4x4', brand = 'Bravado', price = 15000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'youga', name = 'Youga', brand = 'Bravado', price = 8000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'youga2', name = 'Youga Classic', brand = 'Bravado', price = 14500, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'youga4', name = 'Youga Custom', brand = 'Bravado', price = 85000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'moonbeam', name = 'Moonbeam', brand = 'Declasse', price = 13000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'moonbeam2', name = 'Moonbeam Custom', brand = 'Declasse', price = 15000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'boxville', name = 'Boxville LSDWP', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'truck' },
{ model = 'boxville2', name = 'Boxville Go Postal', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'truck' },
{ model = 'boxville3', name = 'Boxville Humane Labs', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'truck' },
{ model = 'boxville4', name = 'Boxville Post OP', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'truck' },
{ model = 'boxville5', name = 'Armored Boxville', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'none' },
{ model = 'pony', name = 'Pony', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'truck' },
{ model = 'pony2', name = 'Pony (Smoke on the water)', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'truck' },
{ model = 'journey2', name = 'Journey II', brand = 'Zirconium', price = 7000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'surfer3', name = 'Surfer Custom', brand = 'BF', price = 15000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'speedo5', name = 'Speedo Custom', brand = 'Vapid', price = 238000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'mule2', name = 'Mule', brand = 'Maibatsu', price = 40000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'mule3', name = 'Mule', brand = 'Maibatsu', price = 40000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'taco', name = 'Taco Truck', brand = 'Brute', price = 45000, category = 'vans', type = 'automobile', shop = 'pdm' },
{ model = 'boxville6', name = 'Boxville (LSDS)', brand = 'Brute', price = 47500, category = 'vans', type = 'automobile', shop = 'pdm' },
--- Cycles (13)
{ model = 'bmx', name = 'BMX', brand = 'Bike', price = 160, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'cruiser', name = 'Cruiser', brand = 'Bike', price = 510, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'fixter', name = 'Fixter', brand = 'Bike', price = 225, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'scorcher', name = 'Scorcher', brand = 'Bike', price = 280, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'tribike', name = 'Whippet Race Bike', brand = 'Bike', price = 500, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'tribike2', name = 'Endurex Race Bike', brand = 'Bike', price = 700, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'tribike3', name = 'Tri-Cycles Race Bike', brand = 'Bike', price = 520, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'inductor', name = 'Inductor', brand = 'Coil', price = 5000, category = 'cycles', type = 'bike', shop = 'pdm' },
{ model = 'inductor2', name = 'Junk Energy Inductor', brand = 'Coil', price = 5000, category = 'cycles', type = 'bike', shop = 'pdm' },
--- Boats (14)
{ model = 'avisa', name = 'Avisa', brand = 'Kraken Subs', price = 40000, category = 'boats', type = 'boat', shop = 'none' },
{ model = 'patrolboat', name = 'Kurtz 31 Patrol Boat', brand = 'Unknown', price = 40000, category = 'boats', type = 'boat', shop = 'none' },
{ model = 'longfin', name = 'Longfin', brand = 'Shitzu', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'tug', name = 'Tug', brand = 'Buckingham', price = 40000, category = 'boats', type = 'boat', shop = 'none' },
{ model = 'toro', name = 'Toro', brand = 'Lampadati', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'toro2', name = 'Toro Yacht', brand = 'Lampadati', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'submersible2', name = 'Kraken', brand = 'Kraken Subs', price = 40000, category = 'boats', type = 'boat', shop = 'none' },
{ model = 'speeder', name = 'Speeder', brand = 'Pegassi', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'speeder2', name = 'Speeder Yacht', brand = 'Pegassi', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'tropic', name = 'Tropic', brand = 'Shitzu', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'tropic2', name = 'Tropic Yacht', brand = 'Shitzu', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'suntrap', name = 'Suntrap', brand = 'Shitzu', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'submersible', name = 'Submersible', brand = 'Kraken Subs', price = 40000, category = 'boats', type = 'boat', shop = 'none' },
{ model = 'squalo', name = 'Squalo', brand = 'Shitzu', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'seashark', name = 'Seashark', brand = 'Speedophile', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'seashark3', name = 'Seashark Yacht', brand = 'Speedophile', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'marquis', name = 'Marquis', brand = 'Dinka', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'jetmax', name = 'Jetmax', brand = 'Shitzu', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'dinghy', name = 'Dinghy 2-Seater', brand = 'Nagasaki', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'dinghy2', name = 'Dinghy 4-Seater', brand = 'Nagasaki', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'dinghy3', name = 'Dinghy (Heist)', brand = 'Nagasaki', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
{ model = 'dinghy4', name = 'Dinghy Yacht', brand = 'Nagasaki', price = 40000, category = 'boats', type = 'boat', shop = 'boats' },
--- Helicopters (15)
{ model = 'conada2', name = 'Weaponized Conada', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'conada', name = 'Conada', brand = 'Buckingham', price = 115000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'seasparrow2', name = 'Sparrow', brand = 'Unknown', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'annihilator2', name = 'Annihilator Stealth', brand = 'Western Company', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'seasparrow', name = 'Sea Sparrow', brand = 'Unknown', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'akula', name = 'Akula', brand = 'Unknown', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'hunter', name = 'FH-1 Hunter', brand = 'Unknown', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'havok', name = 'Havok', brand = 'Nagasaki', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'volatus', name = 'Volatus', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'supervolito2', name = 'SuperVolito Carbon', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'supervolito', name = 'SuperVolito', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'swift2', name = 'Swift Deluxe', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'valkyrie', name = 'Valkyrie', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'savage', name = 'Savage', brand = 'Unknown', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'swift', name = 'Swift', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'annihilator', name = 'Annihilator', brand = 'Western Company', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'cargobob2', name = 'Cargobob Jetsam', brand = 'Western Company', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'skylift', name = 'Skylift', brand = 'HVY', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'maverick', name = 'Maverick', brand = 'Buckingham', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'frogger', name = 'Frogger', brand = 'Maibatsu', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'frogger2', name = 'Frogger', brand = 'Maibatsu', price = 52000, category = 'helicopters', type = 'heli', shop = 'air' },
{ model = 'cargobob', name = 'Cargobob', brand = 'Western Company', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'cargobob3', name = 'Cargobob', brand = 'Western Company', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'seasparrow3', name = 'Sparrow (Prop)', brand = 'Unknown', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'buzzard', name = 'Buzzard Attack Chopper', brand = 'Nagasaki', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
{ model = 'buzzard2', name = 'Buzzard', brand = 'Nagasaki', price = 52000, category = 'helicopters', type = 'heli', shop = 'none' },
--- Planes (16)
{ model = 'streamer216', name = 'Streamer216', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'raiju', name = 'F-160 Raiju', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'alkonost', name = 'RO-86 Alkonost', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'strikeforce', name = 'B-11 Strikeforce', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'blimp3', name = 'Blimp', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'avenger', name = 'Avenger', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'avenger2', name = 'Avenger', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'volatol', name = 'Volatol', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'nokota', name = 'P-45 Nokota', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'seabreeze', name = 'Seabreeze', brand = 'Western Company', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'pyro', name = 'Pyro', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'mogul', name = 'Mogul', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'howard', name = 'Howard NX-25', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'bombushka', name = 'RM-10 Bombushka', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'molotok', name = 'V-65 Molotok', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'microlight', name = 'Ultralight', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'tula', name = 'Tula', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'rogue', name = 'Rogue', brand = 'Western Company', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'starling', name = 'LF-22 Starling', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'alphaz1', name = 'Alpha-Z1', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'nimbus', name = 'Nimbus', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'luxor2', name = 'Luxor Deluxe', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'velum2', name = 'Velum 5-seater', brand = 'JoBuilt', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'hydra', name = 'Hydra', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'blimp2', name = 'Xero Blimp', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'dodo', name = 'Dodo', brand = 'Mammoth', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'miljet', name = 'Miljet', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'besra', name = 'Besra', brand = 'Western Company', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'vestra', name = 'Vestra', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'cargoplane', name = 'Cargo Plane', brand = 'JoBuilt', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'velum', name = 'Velum', brand = 'JoBuilt', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'titan', name = 'Titan', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'shamal', name = 'Shamal', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'lazer', name = 'P-996 Lazer', brand = 'JoBuilt', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'mammatus', name = 'Mammatus', brand = 'JoBuilt', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'stunt', name = 'Mallard', brand = 'Western Company', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'luxor', name = 'Luxor', brand = 'Buckingham', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'jet', name = 'Jet', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
{ model = 'duster', name = 'Duster', brand = 'Western Company', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'cuban800', name = 'Cuban 800', brand = 'Western Company', price = 45000, category = 'planes', type = 'plane', shop = 'air' },
{ model = 'blimp', name = 'Atomic Blimp', brand = 'Unknown', price = 45000, category = 'planes', type = 'plane', shop = 'none' },
--- Service (17)
{ model = 'brickade', name = 'Brickade', brand = 'MTL', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'brickade2', name = 'Brickade 6x6', brand = 'MTL', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'pbus2', name = 'Festival Bus', brand = 'Unknown', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'wastelander', name = 'Wastelander', brand = 'MTL', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'rallytruck', name = 'Dune', brand = 'MTL', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'metrotrain', name = 'Metro Train', brand = 'Unknown', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'freight', name = 'Freight Train', brand = 'Unknown', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'cablecar', name = 'Cable Car', brand = 'Unknown', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'trash', name = 'Trashmaster', brand = 'JoBuilt', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'trash2', name = 'Trashmaster', brand = 'JoBuilt', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'tourbus', name = 'Tour Bus', brand = 'Brute', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'taxi', name = 'Taxi', brand = 'Vapid', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'rentalbus', name = 'Rental Shuttle Bus', brand = 'Brute', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'coach', name = 'Dashound', brand = 'Brute', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'bus', name = 'Bus', brand = 'Brute', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
{ model = 'airbus', name = 'Airport Bus', brand = 'Brute', price = 100000, category = 'service', type = 'automobile', shop = 'none' },
--- Emergency (18)
{ model = 'riot', name = 'Police Riot', brand = 'Brute', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'riot2', name = 'RCV', brand = 'Unknown', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'pbus', name = 'Police Prison Bus', brand = 'Vapid', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'police', name = 'Police Cruiser', brand = 'Vapid', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'police2', name = 'Police Buffalo', brand = 'Vapid', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'police3', name = 'Police Interceptor', brand = 'Vapid', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'police4', name = 'Unmarked Cruiser', brand = 'Vapid', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'sheriff', name = 'Sheriff SUV', brand = 'Declasse', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'sheriff2', name = 'Sheriff Cruiser', brand = 'Vapid', price = 100000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'policeold1', name = 'Police Rancher', brand = 'Declasse', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'policeold2', name = 'Police Roadcruiser', brand = 'Albany', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'policet', name = 'Police Transporter', brand = 'Vapid', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'policeb', name = 'Police Bike', brand = 'Vapid', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'polmav', name = 'Police Maverick', brand = 'Buckingham', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'ambulance', name = 'Ambulance', brand = 'Brute', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'firetruk', name = 'Fire Truck', brand = 'MTL', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'lguard', name = 'Lifeguard', brand = 'Declasse', price = 110000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'seashark2', name = 'Seashark Lifeguard', brand = 'Speedophile', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'pranger', name = 'Park Ranger', brand = 'Declasse', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'fbi', name = 'FIB Buffalo', brand = 'Bravado', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'fbi2', name = 'FIB Granger', brand = 'Declasse', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'predator', name = 'Police Predator', brand = 'Unknown', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'polgauntlet', name = 'Gauntlet Interceptor', brand = 'Bravado', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'police5', name = 'Stanier LE Cruiser', brand = 'Vapid', price = 40000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'polimpaler5', name = 'Impaler SZ Cruiser', brand = 'Declasse', price = 80000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'polimpaler6', name = 'Impaler LX Cruiser', brand = 'Declasse', price = 90000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'poldominator10', name = 'Dominator FX Interceptor', brand = 'Vapid', price = 230000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'policet3', name = 'Burrito (Bail Enforcement)', brand = 'Declasse', price = 60000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'polgreenwood', name = 'Greenwood Cruiser', brand = 'Bravado', price = 80000, category = 'emergency', type = 'automobile', shop = 'none' },
{ model = 'poldorado', name = 'Dorado Cruiser', brand = 'Vapid', price = 80000, category = 'emergency', type = 'automobile', shop = 'none' },
--- Military (19)
{ model = 'vetir', name = 'Vetir', brand = 'Unknown', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'kosatka', name = 'Kosatka', brand = 'Rune', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'minitank', name = 'RC Tank', brand = 'Unknown', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'scarab', name = 'Scarab', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'terbyte', name = 'Terrorbyte', brand = 'Benefactor', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'thruster', name = 'Thruster', brand = 'Mammoth', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'khanjali', name = 'TM-02 Khanjali Tank', brand = 'Unknown', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'chernobog', name = 'Chernobog', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'barrage', name = 'Barrage', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'trailerlarge', name = 'Mobile Operations Center', brand = 'Unknown', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'halftrack', name = 'Half-track', brand = 'Bravado', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'apc', name = 'APC Tank', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'trailersmall2', name = 'Anti-Aircraft Trailer', brand = 'Vom Feuer', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'rhino', name = 'Rhino Tank', brand = 'Unknown', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'crusader', name = 'Crusader', brand = 'Canis', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'barracks', name = 'Barracks', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'barracks2', name = 'Barracks Semi', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
{ model = 'barracks3', name = 'Barracks', brand = 'HVY', price = 100000, category = 'military', type = 'automobile', shop = 'none' },
--- Commercial (20)
{ model = 'cerberus', name = 'Apocalypse Cerberus', brand = 'MTL', price = 100000, category = 'commercial', type = 'automobile', shop = 'none' },
{ model = 'pounder2', name = 'Pounder Custom', brand = 'MTL', price = 55000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'mule4', name = 'Mule Custom', brand = 'Maibatsu', price = 40000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'phantom3', name = 'Phantom Custom', brand = 'Jobuilt', price = 110000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'hauler2', name = 'Hauler Custom', brand = 'Jobuilt', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'phantom2', name = 'Phantom Wedge', brand = 'Jobuilt', price = 100000, category = 'commercial', type = 'automobile', shop = 'none' },
{ model = 'mule5', name = 'Mule (Heist)', brand = 'Maibatsu', price = 40000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'stockade', name = 'Stockade', brand = 'Brute', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'pounder', name = 'Pounder', brand = 'MTL', price = 55000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'phantom', name = 'Phantom', brand = 'Jobuilt', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'packer', name = 'Packer', brand = 'MTL', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'mule', name = 'Mule', brand = 'Maibatsu', price = 40000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'hauler', name = 'Hauler', brand = 'Jobuilt', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'biff', name = 'Biff', brand = 'Brute', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'benson', name = 'Benson', brand = 'Vapid', price = 55000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'benson2', name = 'Benson (Cluckin Bell)', brand = 'Vapid', price = 55000, category = 'commercial', type = 'automobile', shop = 'truck' },
{ model = 'phantom4', name = 'Phantom (Christmas)', brand = 'Vapid', price = 100000, category = 'commercial', type = 'automobile', shop = 'truck' },
--- Trains (21)
--- Open Wheel (22)
{ model = 'openwheel2', name = 'DR1', brand = 'Declasse', price = 100000, category = 'openwheel', type = 'automobile', shop = 'none' },
{ model = 'openwheel1', name = 'BR8', brand = 'Benefactor', price = 100000, category = 'openwheel', type = 'automobile', shop = 'none' },
{ model = 'formula2', name = 'R88', brand = 'Ocelot', price = 100000, category = 'openwheel', type = 'automobile', shop = 'none' },
{ model = 'formula', name = 'PR4', brand = 'Progen', price = 100000, category = 'openwheel', type = 'automobile', shop = 'none' },
}
QBShared.VehicleHashes = QBShared.VehicleHashes or {}
for i = 1, #Vehicles do
local hash = joaat(Vehicles[i].model)
QBShared.Vehicles[Vehicles[i].model] = {
spawncode = Vehicles[i].model,
name = Vehicles[i].name,
brand = Vehicles[i].brand,
model = Vehicles[i].model,
price = Vehicles[i].price,
category = Vehicles[i].category,
hash = hash,
type = Vehicles[i].type,
shop = Vehicles[i].shop
}
QBShared.VehicleHashes[hash] = QBShared.Vehicles[Vehicles[i].model]
end
+884
View File
@@ -0,0 +1,884 @@
[
{
"name": "weapon_unarmed",
"label": "Fists",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_dagger",
"label": "Dagger",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_bat",
"label": "Bat",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_bottle",
"label": "Broken Bottle",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_crowbar",
"label": "Crowbar",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_flashlight",
"label": "Flashlight",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_golfclub",
"label": "Golfclub",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_hammer",
"label": "Hammer",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_hatchet",
"label": "Hatchet",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_knuckle",
"label": "Knuckle",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_knife",
"label": "Knife",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_machete",
"label": "Machete",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_switchblade",
"label": "Switchblade",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_nightstick",
"label": "Nightstick",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_wrench",
"label": "Wrench",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_battleaxe",
"label": "Battle Axe",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_poolcue",
"label": "Poolcue",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_briefcase",
"label": "Briefcase",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_briefcase_02",
"label": "Briefcase",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_garbagebag",
"label": "Garbage Bag",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_handcuffs",
"label": "Handcuffs",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_bread",
"label": "Baquette",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee killed / Whacked / Executed / Beat down / Murdered / Battered"
},
{
"name": "weapon_stone_hatchet",
"label": "Stone Hatchet",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Knifed / Stabbed / Eviscerated"
},
{
"name": "weapon_candycane",
"label": "Candy Cane",
"weapontype": "Melee",
"ammotype": null,
"damagereason": "Melee Killed / Whacked / Executed / Beat down / Musrdered / Battered / Candy Caned"
},
{
"name": "weapon_pistol",
"label": "Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_pistol_mk2",
"label": "Pistol Mk2",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_combatpistol",
"label": "Combat Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_appistol",
"label": "AP Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_stungun",
"label": "Taser",
"weapontype": "Pistol",
"ammotype": "AMMO_STUNGUN",
"damagereason": "Died"
},
{
"name": "weapon_pistol50",
"label": "Pistol .50 Cal",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_snspistol",
"label": "SNS Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_snspistol_mk2",
"label": "SNS Pistol MK2",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_heavypistol",
"label": "Heavy Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_vintagepistol",
"label": "Vintage Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_flaregun",
"label": "Flare Gun",
"weapontype": "Pistol",
"ammotype": "AMMO_FLARE",
"damagereason": "Died"
},
{
"name": "weapon_marksmanpistol",
"label": "Marksman Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_revolver",
"label": "Revolver",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_revolver_mk2",
"label": "Revolver MK2",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_doubleaction",
"label": "Double Action Revolver",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_raypistol",
"label": "Ray Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_ceramicpistol",
"label": "Ceramic Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_navyrevolver",
"label": "Navy Revolver",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_gadgetpistol",
"label": "Gadget Pistol",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plugged / Bust a cap in"
},
{
"name": "weapon_stungun_mp",
"label": "Taser",
"weapontype": "Pistol",
"ammotype": "AMMO_STUNGUN",
"damagereason": "Died"
},
{
"name": "weapon_pistolxm3",
"label": "Pistol XM3",
"weapontype": "Pistol",
"ammotype": "AMMO_PISTOL",
"damagereason": "Pistoled / Blasted / Plaugged / Bust a cap in"
},
{
"name": "weapon_microsmg",
"label": "Micro SMG",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_smg",
"label": "SMG",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_smg_mk2",
"label": "SMG MK2",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_assaultsmg",
"label": "Assault SMG",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_combatpdw",
"label": "Combat PDW",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_machinepistol",
"label": "Tec-9",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_PISTOL",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_minismg",
"label": "Mini SMG",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_raycarbine",
"label": "Raycarbine",
"weapontype": "Submachine Gun",
"ammotype": "AMMO_SMG",
"damagereason": "Riddled / Drilled / Finished / Submachine Gunned"
},
{
"name": "weapon_pumpshotgun",
"label": "Pump Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_pumpshotgun_mk2",
"label": "Pump Shotgun MK2",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_sawnoffshotgun",
"label": "Sawn-off Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_assaultshotgun",
"label": "Assault Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_bullpupshotgun",
"label": "Bullpup Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_musket",
"label": "Musket",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_heavyshotgun",
"label": "Heavy Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_dbshotgun",
"label": "Double-barrel Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_autoshotgun",
"label": "Auto Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_combatshotgun",
"label": "Combat Shotgun",
"weapontype": "Shotgun",
"ammotype": "AMMO_SHOTGUN",
"damagereason": "Devastated / Pulverized / Shotgunned"
},
{
"name": "weapon_assaultrifle",
"label": "Assault Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_assaultrifle_mk2",
"label": "Assault Rifle MK2",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_carbinerifle",
"label": "Carbine Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_carbinerifle_mk2",
"label": "Carbine Rifle MK2",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_advancedrifle",
"label": "Advanced Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_specialcarbine",
"label": "Special Carbine",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_specialcarbine_mk2",
"label": "Specialcarbine MK2",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_bullpuprifle",
"label": "Bullpup Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_bullpuprifle_mk2",
"label": "Bull Puprifle MK2",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_compactrifle",
"label": "Compact Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_militaryrifle",
"label": "Military Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_heavyrifle",
"label": "Heavy Rifle",
"weapontype": "Assault Rifle",
"ammotype": "AMMO_RIFLE",
"damagereason": "Ended / Rifled / Shot down / Floored"
},
{
"name": "weapon_mg",
"label": "Machinegun",
"weapontype": "Light Machine Gun",
"ammotype": "AMMO_MG",
"damagereason": "Machine gunned / Sprayed / Ruined"
},
{
"name": "weapon_combatmg",
"label": "Combat MG",
"weapontype": "Light Machine Gun",
"ammotype": "AMMO_MG",
"damagereason": "Machine gunned / Sprayed / Ruined"
},
{
"name": "weapon_combatmg_mk2",
"label": "Combat MG MK2",
"weapontype": "Light Machine Gun",
"ammotype": "AMMO_MG",
"damagereason": "Machine gunned / Sprayed / Ruined"
},
{
"name": "weapon_gusenberg",
"label": "Thompson SMG",
"weapontype": "Light Machine Gun",
"ammotype": "AMMO_MG",
"damagereason": "Machine gunned / Sprayed / Ruined"
},
{
"name": "weapon_sniperrifle",
"label": "Sniper Rifle",
"weapontype": "Sniper Rifle",
"ammotype": "AMMO_SNIPER",
"damagereason": "Sniped / Picked off / Scoped"
},
{
"name": "weapon_heavysniper",
"label": "Heavy Sniper",
"weapontype": "Sniper Rifle",
"ammotype": "AMMO_SNIPER",
"damagereason": "Sniped / Picked off / Scoped"
},
{
"name": "weapon_heavysniper_mk2",
"label": "Heavysniper MK2",
"weapontype": "Sniper Rifle",
"ammotype": "AMMO_SNIPER",
"damagereason": "Sniped / Picked off / Scoped"
},
{
"name": "weapon_marksmanrifle",
"label": "Marksman Rifle",
"weapontype": "Sniper Rifle",
"ammotype": "AMMO_SNIPER",
"damagereason": "Sniped / Picked off / Scoped"
},
{
"name": "weapon_marksmanrifle_mk2",
"label": "Marksman Rifle MK2",
"weapontype": "Sniper Rifle",
"ammotype": "AMMO_SNIPER",
"damagereason": "Sniped / Picked off / Scoped"
},
{
"name": "weapon_remotesniper",
"label": "Remote Sniper",
"weapontype": "Sniper Rifle",
"ammotype": "AMMO_SNIPER_REMOTE",
"damagereason": "Sniped / Picked off / Scoped"
},
{
"name": "weapon_rpg",
"label": "RPG",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_RPG",
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_grenadelauncher",
"label": "Grenade Launcher",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_GRENADELAUNCHER",
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_grenadelauncher_smoke",
"label": "Smoke Grenade Launcher",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_GRENADELAUNCHER",
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_minigun",
"label": "Minigun",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_MINIGUN",
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_firework",
"label": "Firework Launcher",
"weapontype": "Heavy Weapons",
"ammotype": null,
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_railgun",
"label": "Railgun",
"weapontype": "Heavy Weapons",
"ammotype": null,
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_railgunxm3",
"label": "Railgun XM3",
"weapontype": "Heavy Weapons",
"ammotype": null,
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_hominglauncher",
"label": "Homing Launcher",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_STINGER",
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_compactlauncher",
"label": "Compact Launcher",
"weapontype": "Heavy Weapons",
"ammotype": null,
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_rayminigun",
"label": "Ray Minigun",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_MINIGUN",
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_emplauncher",
"label": "EMP Launcher",
"weapontype": "Heavy Weapons",
"ammotype": "AMMO_EMPLAUNCHER",
"damagereason": "Died"
},
{
"name": "weapon_grenade",
"label": "Grenade",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Bombed / Exploded / Detonated / Blew up"
},
{
"name": "weapon_bzgas",
"label": "BZ Gas",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_molotov",
"label": "Molotov",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Torched / Flambeed / Barbecued"
},
{
"name": "weapon_stickybomb",
"label": "C4",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Bombed / Exploded / Detonated / Blew up"
},
{
"name": "weapon_proxmine",
"label": "Proxmine Grenade",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Bombed / Exploded / Detonated / Blew up"
},
{
"name": "weapon_snowball",
"label": "Snowball",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_pipebomb",
"label": "Pipe Bomb",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Bombed / Exploded / Detonated / Blew up"
},
{
"name": "weapon_ball",
"label": "Ball",
"weapontype": "Throwable",
"ammotype": "AMMO_BALL",
"damagereason": "Died"
},
{
"name": "weapon_smokegrenade",
"label": "Smoke Grenade",
"weapontype": "Throwable",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_flare",
"label": "Flare pistol",
"weapontype": "Throwable",
"ammotype": "AMMO_FLARE",
"damagereason": "Died"
},
{
"name": "weapon_petrolcan",
"label": "Petrol Can",
"weapontype": "Miscellaneous",
"ammotype": "AMMO_PETROLCAN",
"damagereason": "Died"
},
{
"name": "gadget_parachute",
"label": "Parachute",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_fireextinguisher",
"label": "Fire Extinguisher",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_hazardcan",
"label": "Hazardcan",
"weapontype": "Miscellaneous",
"ammotype": "AMMO_PETROLCAN",
"damagereason": "Died"
},
{
"name": "weapon_fertilizercan",
"label": "Fertilizer Can",
"weapontype": "Miscellaneous",
"ammotype": "AMMO_FERTILIZERCAN",
"damagereason": "Died"
},
{
"name": "weapon_barbed_wire",
"label": "Barbed Wire",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Prodded"
},
{
"name": "weapon_drowning",
"label": "Drowning",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_drowning_in_vehicle",
"label": "Drowning in a Vehicle",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_bleeding",
"label": "Bleeding",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Bled out"
},
{
"name": "weapon_electric_fence",
"label": "Electric Fence",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Fried"
},
{
"name": "weapon_explosion",
"label": "Explosion",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated"
},
{
"name": "weapon_fall",
"label": "Fall",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Committed suicide"
},
{
"name": "weapon_exhaustion",
"label": "Exhaustion",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_hit_by_water_cannon",
"label": "Water Cannon",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Died"
},
{
"name": "weapon_rammed_by_car",
"label": "Rammed - Vehicle",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Flattened / Ran over / Ran down"
},
{
"name": "weapon_run_over_by_car",
"label": "Run Over - Vehicle",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Flattened / Ran over / Ran down"
},
{
"name": "weapon_heli_crash",
"label": "Heli Crash",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Helicopter Crash"
},
{
"name": "weapon_fire",
"label": "Fire",
"weapontype": "Miscellaneous",
"ammotype": null,
"damagereason": "Torched / Flambeed / Barbecued"
},
{
"name": "weapon_animal",
"label": "Animal",
"weapontype": "Animals",
"ammotype": null,
"damagereason": "Mauled"
},
{
"name": "weapon_cougar",
"label": "Cougar",
"weapontype": "Animals",
"ammotype": null,
"damagereason": "Mauled"
}
]
-151
View File
@@ -1,151 +0,0 @@
QBShared = QBShared or {}
QBShared.Weapons = {
-- // WEAPONS
-- Melee
[`weapon_unarmed`] = { name = 'weapon_unarmed', label = 'Fists', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_dagger`] = { name = 'weapon_dagger', label = 'Dagger', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_bat`] = { name = 'weapon_bat', label = 'Bat', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_bottle`] = { name = 'weapon_bottle', label = 'Broken Bottle', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_crowbar`] = { name = 'weapon_crowbar', label = 'Crowbar', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_flashlight`] = { name = 'weapon_flashlight', label = 'Flashlight', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_golfclub`] = { name = 'weapon_golfclub', label = 'Golfclub', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_hammer`] = { name = 'weapon_hammer', label = 'Hammer', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_hatchet`] = { name = 'weapon_hatchet', label = 'Hatchet', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_knuckle`] = { name = 'weapon_knuckle', label = 'Knuckle', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_knife`] = { name = 'weapon_knife', label = 'Knife', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_machete`] = { name = 'weapon_machete', label = 'Machete', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_switchblade`] = { name = 'weapon_switchblade', label = 'Switchblade', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_nightstick`] = { name = 'weapon_nightstick', label = 'Nightstick', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_wrench`] = { name = 'weapon_wrench', label = 'Wrench', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_battleaxe`] = { name = 'weapon_battleaxe', label = 'Battle Axe', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_poolcue`] = { name = 'weapon_poolcue', label = 'Poolcue', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_briefcase`] = { name = 'weapon_briefcase', label = 'Briefcase', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_briefcase_02`] = { name = 'weapon_briefcase_02', label = 'Briefcase', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_garbagebag`] = { name = 'weapon_garbagebag', label = 'Garbage Bag', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_handcuffs`] = { name = 'weapon_handcuffs', label = 'Handcuffs', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_bread`] = { name = 'weapon_bread', label = 'Baquette', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered' },
[`weapon_stone_hatchet`] = { name = 'weapon_stone_hatchet', label = 'Stone Hatchet', weapontype = 'Melee', ammotype = nil, damagereason = 'Knifed / Stabbed / Eviscerated' },
[`weapon_candycane`] = { name = 'weapon_candycane', label = 'Candy Cane', weapontype = 'Melee', ammotype = nil, damagereason = 'Melee Killed / Whacked / Executed / Beat down / Musrdered / Battered / Candy Caned' },
-- Handguns
[`weapon_pistol`] = { name = 'weapon_pistol', label = 'Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_pistol_mk2`] = { name = 'weapon_pistol_mk2', label = 'Pistol Mk2', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_combatpistol`] = { name = 'weapon_combatpistol', label = 'Combat Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_appistol`] = { name = 'weapon_appistol', label = 'AP Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_stungun`] = { name = 'weapon_stungun', label = 'Taser', weapontype = 'Pistol', ammotype = 'AMMO_STUNGUN', damagereason = 'Died' },
[`weapon_pistol50`] = { name = 'weapon_pistol50', label = 'Pistol .50 Cal', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_snspistol`] = { name = 'weapon_snspistol', label = 'SNS Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_snspistol_mk2`] = { name = 'weapon_snspistol_mk2', label = 'SNS Pistol MK2', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_heavypistol`] = { name = 'weapon_heavypistol', label = 'Heavy Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_vintagepistol`] = { name = 'weapon_vintagepistol', label = 'Vintage Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_flaregun`] = { name = 'weapon_flaregun', label = 'Flare Gun', weapontype = 'Pistol', ammotype = 'AMMO_FLARE', damagereason = 'Died' },
[`weapon_marksmanpistol`] = { name = 'weapon_marksmanpistol', label = 'Marksman Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_revolver`] = { name = 'weapon_revolver', label = 'Revolver', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_revolver_mk2`] = { name = 'weapon_revolver_mk2', label = 'Revolver MK2', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_doubleaction`] = { name = 'weapon_doubleaction', label = 'Double Action Revolver', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_raypistol`] = { name = 'weapon_raypistol', label = 'Ray Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_ceramicpistol`] = { name = 'weapon_ceramicpistol', label = 'Ceramic Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_navyrevolver`] = { name = 'weapon_navyrevolver', label = 'Navy Revolver', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_gadgetpistol`] = { name = 'weapon_gadgetpistol', label = 'Gadget Pistol', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plugged / Bust a cap in' },
[`weapon_stungun_mp`] = { name = 'weapon_stungun_mp', label = 'Taser', weapontype = 'Pistol', ammotype = 'AMMO_STUNGUN', damagereason = 'Died' },
[`weapon_pistolxm3`] = { name = 'weapon_pistolxm3', label = 'Pistol XM3', weapontype = 'Pistol', ammotype = 'AMMO_PISTOL', damagereason = 'Pistoled / Blasted / Plaugged / Bust a cap in' },
-- Submachine Guns
[`weapon_microsmg`] = { name = 'weapon_microsmg', label = 'Micro SMG', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_smg`] = { name = 'weapon_smg', label = 'SMG', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_smg_mk2`] = { name = 'weapon_smg_mk2', label = 'SMG MK2', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_assaultsmg`] = { name = 'weapon_assaultsmg', label = 'Assault SMG', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_combatpdw`] = { name = 'weapon_combatpdw', label = 'Combat PDW', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_machinepistol`] = { name = 'weapon_machinepistol', label = 'Tec-9', weapontype = 'Submachine Gun', ammotype = 'AMMO_PISTOL', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_minismg`] = { name = 'weapon_minismg', label = 'Mini SMG', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
[`weapon_raycarbine`] = { name = 'weapon_raycarbine', label = 'Raycarbine', weapontype = 'Submachine Gun', ammotype = 'AMMO_SMG', damagereason = 'Riddled / Drilled / Finished / Submachine Gunned' },
-- Shotguns
[`weapon_pumpshotgun`] = { name = 'weapon_pumpshotgun', label = 'Pump Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_pumpshotgun_mk2`] = { name = 'weapon_pumpshotgun_mk2', label = 'Pump Shotgun MK2', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_sawnoffshotgun`] = { name = 'weapon_sawnoffshotgun', label = 'Sawn-off Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_assaultshotgun`] = { name = 'weapon_assaultshotgun', label = 'Assault Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_bullpupshotgun`] = { name = 'weapon_bullpupshotgun', label = 'Bullpup Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_musket`] = { name = 'weapon_musket', label = 'Musket', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_heavyshotgun`] = { name = 'weapon_heavyshotgun', label = 'Heavy Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_dbshotgun`] = { name = 'weapon_dbshotgun', label = 'Double-barrel Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_autoshotgun`] = { name = 'weapon_autoshotgun', label = 'Auto Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
[`weapon_combatshotgun`] = { name = 'weapon_combatshotgun', label = 'Combat Shotgun', weapontype = 'Shotgun', ammotype = 'AMMO_SHOTGUN', damagereason = 'Devastated / Pulverized / Shotgunned' },
-- Assault Rifles
[`weapon_assaultrifle`] = { name = 'weapon_assaultrifle', label = 'Assault Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_assaultrifle_mk2`] = { name = 'weapon_assaultrifle_mk2', label = 'Assault Rifle MK2', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_carbinerifle`] = { name = 'weapon_carbinerifle', label = 'Carbine Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_carbinerifle_mk2`] = { name = 'weapon_carbinerifle_mk2', label = 'Carbine Rifle MK2', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_advancedrifle`] = { name = 'weapon_advancedrifle', label = 'Advanced Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_specialcarbine`] = { name = 'weapon_specialcarbine', label = 'Special Carbine', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_specialcarbine_mk2`] = { name = 'weapon_specialcarbine_mk2', label = 'Specialcarbine MK2', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_bullpuprifle`] = { name = 'weapon_bullpuprifle', label = 'Bullpup Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_bullpuprifle_mk2`] = { name = 'weapon_bullpuprifle_mk2', label = 'Bull Puprifle MK2', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_compactrifle`] = { name = 'weapon_compactrifle', label = 'Compact Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_militaryrifle`] = { name = 'weapon_militaryrifle', label = 'Military Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
[`weapon_heavyrifle`] = { name = 'weapon_heavyrifle', label = 'Heavy Rifle', weapontype = 'Assault Rifle', ammotype = 'AMMO_RIFLE', damagereason = 'Ended / Rifled / Shot down / Floored' },
-- Light Machine Guns
[`weapon_mg`] = { name = 'weapon_mg', label = 'Machinegun', weapontype = 'Light Machine Gun', ammotype = 'AMMO_MG', damagereason = 'Machine gunned / Sprayed / Ruined' },
[`weapon_combatmg`] = { name = 'weapon_combatmg', label = 'Combat MG', weapontype = 'Light Machine Gun', ammotype = 'AMMO_MG', damagereason = 'Machine gunned / Sprayed / Ruined' },
[`weapon_combatmg_mk2`] = { name = 'weapon_combatmg_mk2', label = 'Combat MG MK2', weapontype = 'Light Machine Gun', ammotype = 'AMMO_MG', damagereason = 'Machine gunned / Sprayed / Ruined' },
[`weapon_gusenberg`] = { name = 'weapon_gusenberg', label = 'Thompson SMG', weapontype = 'Light Machine Gun', ammotype = 'AMMO_MG', damagereason = 'Machine gunned / Sprayed / Ruined' },
-- Sniper Rifles
[`weapon_sniperrifle`] = { name = 'weapon_sniperrifle', label = 'Sniper Rifle', weapontype = 'Sniper Rifle', ammotype = 'AMMO_SNIPER', damagereason = 'Sniped / Picked off / Scoped' },
[`weapon_heavysniper`] = { name = 'weapon_heavysniper', label = 'Heavy Sniper', weapontype = 'Sniper Rifle', ammotype = 'AMMO_SNIPER', damagereason = 'Sniped / Picked off / Scoped' },
[`weapon_heavysniper_mk2`] = { name = 'weapon_heavysniper_mk2', label = 'Heavysniper MK2', weapontype = 'Sniper Rifle', ammotype = 'AMMO_SNIPER', damagereason = 'Sniped / Picked off / Scoped' },
[`weapon_marksmanrifle`] = { name = 'weapon_marksmanrifle', label = 'Marksman Rifle', weapontype = 'Sniper Rifle', ammotype = 'AMMO_SNIPER', damagereason = 'Sniped / Picked off / Scoped' },
[`weapon_marksmanrifle_mk2`] = { name = 'weapon_marksmanrifle_mk2', label = 'Marksman Rifle MK2', weapontype = 'Sniper Rifle', ammotype = 'AMMO_SNIPER', damagereason = 'Sniped / Picked off / Scoped' },
[`weapon_remotesniper`] = { name = 'weapon_remotesniper', label = 'Remote Sniper', weapontype = 'Sniper Rifle', ammotype = 'AMMO_SNIPER_REMOTE', damagereason = 'Sniped / Picked off / Scoped' },
-- Heavy Weapons
[`weapon_rpg`] = { name = 'weapon_rpg', label = 'RPG', weapontype = 'Heavy Weapons', ammotype = 'AMMO_RPG', damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_grenadelauncher`] = { name = 'weapon_grenadelauncher', label = 'Grenade Launcher', weapontype = 'Heavy Weapons', ammotype = 'AMMO_GRENADELAUNCHER', damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_grenadelauncher_smoke`] = { name = 'weapon_grenadelauncher_smoke', label = 'Smoke Grenade Launcher', weapontype = 'Heavy Weapons', ammotype = 'AMMO_GRENADELAUNCHER', damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_minigun`] = { name = 'weapon_minigun', label = 'Minigun', weapontype = 'Heavy Weapons', ammotype = 'AMMO_MINIGUN', damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_firework`] = { name = 'weapon_firework', label = 'Firework Launcher', weapontype = 'Heavy Weapons', ammotype = nil, damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_railgun`] = { name = 'weapon_railgun', label = 'Railgun', weapontype = 'Heavy Weapons', ammotype = nil, damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_railgunxm3`] = { name = 'weapon_railgunxm3', label = 'Railgun XM3', weapontype = 'Heavy Weapons', ammotype = nil, damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_hominglauncher`] = { name = 'weapon_hominglauncher', label = 'Homing Launcher', weapontype = 'Heavy Weapons', ammotype = 'AMMO_STINGER', damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_compactlauncher`] = { name = 'weapon_compactlauncher', label = 'Compact Launcher', weapontype = 'Heavy Weapons', ammotype = nil, damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_rayminigun`] = { name = 'weapon_rayminigun', label = 'Ray Minigun', weapontype = 'Heavy Weapons', ammotype = 'AMMO_MINIGUN', damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_emplauncher`] = { name = 'weapon_emplauncher', label = 'EMP Launcher', weapontype = 'Heavy Weapons', ammotype = 'AMMO_EMPLAUNCHER', damagereason = 'Died' },
-- Throwables
[`weapon_grenade`] = { name = 'weapon_grenade', label = 'Grenade', weapontype = 'Throwable', ammotype = nil, damagereason = 'Bombed / Exploded / Detonated / Blew up' },
[`weapon_bzgas`] = { name = 'weapon_bzgas', label = 'BZ Gas', weapontype = 'Throwable', ammotype = nil, damagereason = 'Died' },
[`weapon_molotov`] = { name = 'weapon_molotov', label = 'Molotov', weapontype = 'Throwable', ammotype = nil, damagereason = 'Torched / Flambeed / Barbecued' },
[`weapon_stickybomb`] = { name = 'weapon_stickybomb', label = 'C4', weapontype = 'Throwable', ammotype = nil, damagereason = 'Bombed / Exploded / Detonated / Blew up' },
[`weapon_proxmine`] = { name = 'weapon_proxmine', label = 'Proxmine Grenade', weapontype = 'Throwable', ammotype = nil, damagereason = 'Bombed / Exploded / Detonated / Blew up' },
[`weapon_snowball`] = { name = 'weapon_snowball', label = 'Snowball', weapontype = 'Throwable', ammotype = nil, damagereason = 'Died' },
[`weapon_pipebomb`] = { name = 'weapon_pipebomb', label = 'Pipe Bomb', weapontype = 'Throwable', ammotype = nil, damagereason = 'Bombed / Exploded / Detonated / Blew up' },
[`weapon_ball`] = { name = 'weapon_ball', label = 'Ball', weapontype = 'Throwable', ammotype = 'AMMO_BALL', damagereason = 'Died' },
[`weapon_smokegrenade`] = { name = 'weapon_smokegrenade', label = 'Smoke Grenade', weapontype = 'Throwable', ammotype = nil, damagereason = 'Died' },
[`weapon_flare`] = { name = 'weapon_flare', label = 'Flare pistol', weapontype = 'Throwable', ammotype = 'AMMO_FLARE', damagereason = 'Died' },
-- Miscellaneous
[`weapon_petrolcan`] = { name = 'weapon_petrolcan', label = 'Petrol Can', weapontype = 'Miscellaneous', ammotype = 'AMMO_PETROLCAN', damagereason = 'Died' },
[`gadget_parachute`] = { name = 'gadget_parachute', label = 'Parachute', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Died' },
[`weapon_fireextinguisher`] = { name = 'weapon_fireextinguisher', label = 'Fire Extinguisher', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Died' },
[`weapon_hazardcan`] = { name = 'weapon_hazardcan', label = 'Hazardcan', weapontype = 'Miscellaneous', ammotype = 'AMMO_PETROLCAN', damagereason = 'Died' },
[`weapon_fertilizercan`] = { name = 'weapon_fertilizercan', label = 'Fertilizer Can', weapontype = 'Miscellaneous', ammotype = 'AMMO_FERTILIZERCAN', damagereason = 'Died' },
[`weapon_barbed_wire`] = { name = 'weapon_barbed_wire', label = 'Barbed Wire', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Prodded' },
[`weapon_drowning`] = { name = 'weapon_drowning', label = 'Drowning', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Died' },
[`weapon_drowning_in_vehicle`] = { name = 'weapon_drowning_in_vehicle', label = 'Drowning in a Vehicle', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Died' },
[`weapon_bleeding`] = { name = 'weapon_bleeding', label = 'Bleeding', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Bled out' },
[`weapon_electric_fence`] = { name = 'weapon_electric_fence', label = 'Electric Fence', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Fried' },
[`weapon_explosion`] = { name = 'weapon_explosion', label = 'Explosion', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated' },
[`weapon_fall`] = { name = 'weapon_fall', label = 'Fall', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Committed suicide' },
[`weapon_exhaustion`] = { name = 'weapon_exhaustion', label = 'Exhaustion', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Died' },
[`weapon_hit_by_water_cannon`] = { name = 'weapon_hit_by_water_cannon', label = 'Water Cannon', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Died' },
[`weapon_rammed_by_car`] = { name = 'weapon_rammed_by_car', label = 'Rammed - Vehicle', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Flattened / Ran over / Ran down' },
[`weapon_run_over_by_car`] = { name = 'weapon_run_over_by_car', label = 'Run Over - Vehicle', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Flattened / Ran over / Ran down' },
[`weapon_heli_crash`] = { name = 'weapon_heli_crash', label = 'Heli Crash', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Helicopter Crash' },
[`weapon_fire`] = { name = 'weapon_fire', label = 'Fire', weapontype = 'Miscellaneous', ammotype = nil, damagereason = 'Torched / Flambeed / Barbecued' },
-- Animals
[`weapon_animal`] = { name = 'weapon_animal', label = 'Animal', weapontype = 'Animals', ammotype = nil, damagereason = 'Mauled' },
[`weapon_cougar`] = { name = 'weapon_cougar', label = 'Cougar', weapontype = 'Animals', ammotype = nil, damagereason = 'Mauled' },
}