From 3948415301b8401d7f46b529f6d33e0aa53bd01e Mon Sep 17 00:00:00 2001 From: GhzGarage <57848836+GhzGarage@users.noreply.github.com> Date: Fri, 2 Apr 2021 22:25:14 -0500 Subject: [PATCH] Initial Commit --- qb-core/__resource.lua | 35 + qb-core/client/debug.lua | 3 + qb-core/client/events.lua | 152 + qb-core/client/functions.lua | 654 ++++ qb-core/client/loops.lua | 48 + qb-core/client/main.lua | 30 + qb-core/config.lua | 31 + qb-core/html/css/main.css | 44 + qb-core/html/js/app.js | 24 + qb-core/html/ui.html | 13 + qb-core/server/commands.lua | 162 + qb-core/server/debug.lua | 36 + qb-core/server/events.lua | 290 ++ qb-core/server/functions.lua | 247 ++ qb-core/server/loops.lua | 0 qb-core/server/main.lua | 14 + qb-core/server/player.lua | 561 +++ qb-core/shared.lua | 6273 ++++++++++++++++++++++++++++++++++ 18 files changed, 8617 insertions(+) create mode 100644 qb-core/__resource.lua create mode 100644 qb-core/client/debug.lua create mode 100644 qb-core/client/events.lua create mode 100644 qb-core/client/functions.lua create mode 100644 qb-core/client/loops.lua create mode 100644 qb-core/client/main.lua create mode 100644 qb-core/config.lua create mode 100644 qb-core/html/css/main.css create mode 100644 qb-core/html/js/app.js create mode 100644 qb-core/html/ui.html create mode 100644 qb-core/server/commands.lua create mode 100644 qb-core/server/debug.lua create mode 100644 qb-core/server/events.lua create mode 100644 qb-core/server/functions.lua create mode 100644 qb-core/server/loops.lua create mode 100644 qb-core/server/main.lua create mode 100644 qb-core/server/player.lua create mode 100644 qb-core/shared.lua diff --git a/qb-core/__resource.lua b/qb-core/__resource.lua new file mode 100644 index 0000000..ff4076e --- /dev/null +++ b/qb-core/__resource.lua @@ -0,0 +1,35 @@ +resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' + +description 'Qbus:Core' + +server_scripts { + "config.lua", + "shared.lua", + "server/main.lua", + "server/functions.lua", + "server/player.lua", + --"server/loops.lua", + "server/events.lua", + "server/commands.lua", + "server/debug.lua", +} + +client_scripts { + "config.lua", + "shared.lua", + "client/main.lua", + "client/functions.lua", + "client/loops.lua", + "client/events.lua", + "client/debug.lua", +} + +ui_page { + 'html/ui.html' +} + +files { + 'html/ui.html', + 'html/css/main.css', + 'html/js/app.js', +} \ No newline at end of file diff --git a/qb-core/client/debug.lua b/qb-core/client/debug.lua new file mode 100644 index 0000000..7ecd459 --- /dev/null +++ b/qb-core/client/debug.lua @@ -0,0 +1,3 @@ +QBCore.Debug = function(resource, obj, depth) + TriggerServerEvent('QBCore:DebugSomething', resource, obj, depth) +end \ No newline at end of file diff --git a/qb-core/client/events.lua b/qb-core/client/events.lua new file mode 100644 index 0000000..5510b99 --- /dev/null +++ b/qb-core/client/events.lua @@ -0,0 +1,152 @@ +-- QBCore Command Events +RegisterNetEvent('QBCore:Command:TeleportToPlayer') +AddEventHandler('QBCore:Command:TeleportToPlayer', function(othersource) + local coords = QBCore.Functions.GetCoords(GetPlayerPed(GetPlayerFromServerId(othersource))) + local entity = GetPlayerPed(-1) + if IsPedInAnyVehicle(Entity, false) then + entity = GetVehiclePedIsUsing(entity) + end + SetEntityCoords(entity, coords.x, coords.y, coords.z) + SetEntityHeading(entity, coords.a) +end) + +RegisterNetEvent('QBCore:Command:TeleportToCoords') +AddEventHandler('QBCore:Command:TeleportToCoords', function(x, y, z) + local entity = GetPlayerPed(-1) + if IsPedInAnyVehicle(Entity, false) then + entity = GetVehiclePedIsUsing(entity) + end + SetEntityCoords(entity, x, y, z) +end) + +RegisterNetEvent('QBCore:Command:SpawnVehicle') +AddEventHandler('QBCore:Command:SpawnVehicle', function(model) + QBCore.Functions.SpawnVehicle(model, function(vehicle) + TaskWarpPedIntoVehicle(GetPlayerPed(-1), vehicle, -1) + TriggerEvent("vehiclekeys:client:SetOwner", GetVehicleNumberPlateText(vehicle)) + end) +end) + +RegisterNetEvent('QBCore:Command:DeleteVehicle') +AddEventHandler('QBCore:Command:DeleteVehicle', function() + local vehicle = QBCore.Functions.GetClosestVehicle() + if IsPedInAnyVehicle(GetPlayerPed(-1)) then vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false) else vehicle = QBCore.Functions.GetClosestVehicle() end + -- TriggerServerEvent('QBCore:Command:CheckOwnedVehicle', GetVehicleNumberPlateText(vehicle)) + QBCore.Functions.DeleteVehicle(vehicle) +end) + +RegisterNetEvent('QBCore:Command:Revive') +AddEventHandler('QBCore:Command:Revive', function() + local coords = QBCore.Functions.GetCoords(GetPlayerPed(-1)) + NetworkResurrectLocalPlayer(coords.x, coords.y, coords.z+0.2, coords.a, true, false) + SetPlayerInvincible(GetPlayerPed(-1), false) + ClearPedBloodDamage(GetPlayerPed(-1)) +end) + +RegisterNetEvent('QBCore:Command:GoToMarker') +AddEventHandler('QBCore:Command:GoToMarker', function() + Citizen.CreateThread(function() + local entity = PlayerPedId() + if IsPedInAnyVehicle(entity, false) then + entity = GetVehiclePedIsUsing(entity) + end + local success = false + local blipFound = false + local blipIterator = GetBlipInfoIdIterator() + local blip = GetFirstBlipInfoId(8) + + while DoesBlipExist(blip) do + if GetBlipInfoIdType(blip) == 4 then + cx, cy, cz = table.unpack(Citizen.InvokeNative(0xFA7C7F0AADF25D09, blip, Citizen.ReturnResultAnyway(), Citizen.ResultAsVector())) --GetBlipInfoIdCoord(blip) + blipFound = true + break + end + blip = GetNextBlipInfoId(blipIterator) + end + + if blipFound then + DoScreenFadeOut(250) + while IsScreenFadedOut() do + Citizen.Wait(250) + end + local groundFound = false + local yaw = GetEntityHeading(entity) + + for i = 0, 1000, 1 do + SetEntityCoordsNoOffset(entity, cx, cy, ToFloat(i), false, false, false) + SetEntityRotation(entity, 0, 0, 0, 0 ,0) + SetEntityHeading(entity, yaw) + SetGameplayCamRelativeHeading(0) + Citizen.Wait(0) + --groundFound = true + if GetGroundZFor_3dCoord(cx, cy, ToFloat(i), cz, false) then --GetGroundZFor3dCoord(cx, cy, i, 0, 0) GetGroundZFor_3dCoord(cx, cy, i) + cz = ToFloat(i) + groundFound = true + break + end + end + if not groundFound then + cz = -300.0 + end + success = true + end + + if success then + SetEntityCoordsNoOffset(entity, cx, cy, cz, false, false, true) + SetGameplayCamRelativeHeading(0) + if IsPedSittingInAnyVehicle(PlayerPedId()) then + if GetPedInVehicleSeat(GetVehiclePedIsUsing(PlayerPedId()), -1) == PlayerPedId() then + SetVehicleOnGroundProperly(GetVehiclePedIsUsing(PlayerPedId())) + end + end + --HideLoadingPromt() + DoScreenFadeIn(250) + end + end) +end) + +-- Other stuff +RegisterNetEvent('QBCore:Player:SetPlayerData') +AddEventHandler('QBCore:Player:SetPlayerData', function(val) + QBCore.PlayerData = val +end) + +RegisterNetEvent('QBCore:Player:UpdatePlayerData') +AddEventHandler('QBCore:Player:UpdatePlayerData', function() + local data = {} + data.position = QBCore.Functions.GetCoords(GetPlayerPed(-1)) + TriggerServerEvent('QBCore:UpdatePlayer', data) +end) + +RegisterNetEvent('QBCore:Player:UpdatePlayerPosition') +AddEventHandler('QBCore:Player:UpdatePlayerPosition', function() + local position = QBCore.Functions.GetCoords(GetPlayerPed(-1)) + TriggerServerEvent('QBCore:UpdatePlayerPosition', position) +end) + +RegisterNetEvent('QBCore:Client:LocalOutOfCharacter') +AddEventHandler('QBCore:Client:LocalOutOfCharacter', function(playerId, playerName, message) + local sourcePos = GetEntityCoords(GetPlayerPed(GetPlayerFromServerId(playerId)), false) + local pos = GetEntityCoords(GetPlayerPed(-1), false) + if (GetDistanceBetweenCoords(pos.x, pos.y, pos.z, sourcePos.x, sourcePos.y, sourcePos.z, true) < 20.0) then + TriggerEvent("chatMessage", "OOC " .. playerName, "normal", message) + end +end) + +RegisterNetEvent('QBCore:Notify') +AddEventHandler('QBCore:Notify', function(text, type, length) + QBCore.Functions.Notify(text, type, length) +end) + +RegisterNetEvent('QBCore:Client:TriggerCallback') +AddEventHandler('QBCore:Client:TriggerCallback', function(name, ...) + if QBCore.ServerCallbacks[name] ~= nil then + QBCore.ServerCallbacks[name](...) + QBCore.ServerCallbacks[name] = nil + end +end) + +RegisterNetEvent("QBCore:Client:UseItem") +AddEventHandler('QBCore:Client:UseItem', function(item) + TriggerServerEvent("QBCore:Server:UseItem", item) +end) \ No newline at end of file diff --git a/qb-core/client/functions.lua b/qb-core/client/functions.lua new file mode 100644 index 0000000..ac23478 --- /dev/null +++ b/qb-core/client/functions.lua @@ -0,0 +1,654 @@ +QBCore.Functions = {} +QBCore.RequestId = 0 + +QBCore.Functions.GetPlayerData = function(cb) + if cb ~= nil then + cb(QBCore.PlayerData) + else + return QBCore.PlayerData + end +end + +QBCore.Functions.DrawText = function(x, y, width, height, scale, r, g, b, a, text) + SetTextFont(4) + SetTextProportional(0) + SetTextScale(scale, scale) + SetTextColour(r, g, b, a) + SetTextDropShadow(0, 0, 0, 0,255) + SetTextEdge(2, 0, 0, 0, 255) + SetTextDropShadow() + SetTextOutline() + SetTextEntry("STRING") + AddTextComponentString(text) + DrawText(x - width/2, y - height/2 + 0.005) +end + +QBCore.Functions.DrawText3D = function(x, y, z, text) + SetTextScale(0.35, 0.35) + SetTextFont(4) + SetTextProportional(1) + SetTextColour(255, 255, 255, 215) + SetTextEntry("STRING") + SetTextCentre(true) + AddTextComponentString(text) + SetDrawOrigin(x,y,z, 0) + DrawText(0.0, 0.0) + local factor = (string.len(text)) / 370 + DrawRect(0.0, 0.0+0.0125, 0.017+ factor, 0.03, 0, 0, 0, 75) + ClearDrawOrigin() +end + +QBCore.Functions.GetCoords = function(entity) + local coords = GetEntityCoords(entity, false) + local heading = GetEntityHeading(entity) + return { + x = coords.x, + y = coords.y, + z = coords.z, + a = heading + } +end + +QBCore.Functions.SpawnVehicle = function(model, cb, coords, isnetworked) + local model = (type(model)=="number" and model or GetHashKey(model)) + local coords = coords ~= nil and coords or QBCore.Functions.GetCoords(GetPlayerPed(-1)) + local isnetworked = isnetworked ~= nil and isnetworked or true + + RequestModel(model) + while not HasModelLoaded(model) do + Citizen.Wait(10) + end + + local veh = CreateVehicle(model, coords.x, coords.y, coords.z, coords.a, isnetworked, false) + local netid = NetworkGetNetworkIdFromEntity(veh) + + SetVehicleHasBeenOwnedByPlayer(vehicle, true) + SetNetworkIdCanMigrate(netid, true) + --SetEntityAsMissionEntity(veh, true, true) + SetVehicleNeedsToBeHotwired(veh, false) + SetVehRadioStation(veh, "OFF") + + SetModelAsNoLongerNeeded(model) + + if cb ~= nil then + cb(veh) + end +end + +QBCore.Functions.DeleteVehicle = function(vehicle) + SetEntityAsMissionEntity(vehicle, true, true) + DeleteVehicle(vehicle) +end + +QBCore.Functions.Notify = function(text, textype, length) -- [text] = message, [type] = primary | error | success, [length] = time till fadeout. + local ttype = textype ~= nil and textype or "primary" + local length = length ~= nil and length or 5000 + SendNUIMessage({ + action = "show", + type = ttype, + length = length, + text = text, + }) +end + +QBCore.Functions.TriggerCallback = function(name, cb, ...) + QBCore.ServerCallbacks[name] = cb + TriggerServerEvent("QBCore:Server:TriggerCallback", name, ...) +end + +QBCore.Functions.EnumerateEntities = function(initFunc, moveFunc, disposeFunc) + return coroutine.wrap(function() + local iter, id = initFunc() + if not id or id == 0 then + disposeFunc(iter) + return + end + + local enum = {handle = iter, destructor = disposeFunc} + setmetatable(enum, entityEnumerator) + + local next = true + repeat + coroutine.yield(id) + next, id = moveFunc(iter) + until not next + + enum.destructor, enum.handle = nil, nil + disposeFunc(iter) + end) +end + +QBCore.Functions.GetVehicles = function() + local vehicles = {} + for vehicle in QBCore.Functions.EnumerateEntities(FindFirstVehicle, FindNextVehicle, EndFindVehicle) do + table.insert(vehicles, vehicle) + end + return vehicles +end + +QBCore.Functions.GetPeds = function(ignoreList) + local ignoreList = ignoreList or {} + local peds = {} + for ped in QBCore.Functions.EnumerateEntities(FindFirstPed, FindNextPed, EndFindPed) do + local found = false + + for j=1, #ignoreList, 1 do + if ignoreList[j] == ped then + found = true + end + end + + if not found then + table.insert(peds, ped) + end + end + + return peds +end + +QBCore.Functions.GetPlayers = function() + local players = {} + for _, player in ipairs(GetActivePlayers()) do + local ped = GetPlayerPed(player) + if DoesEntityExist(ped) then + table.insert(players, player) + end + end + return players +end + +QBCore.Functions.GetClosestVehicle = function(coords) + --[[local coordFrom = coords + local playerPed = GetPlayerPed(-1) + + if coordFrom == nil then + coordFrom = GetEntityCoords(playerPed) + end + local coordTo = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 255.0, 0.0) + + local offset = 0 + local rayHandle + local vehicle + + for i = 0, 100 do + rayHandle = CastRayPointToPoint(coordFrom.x, coordFrom.y, coordFrom.z, coordTo.x, coordTo.y, coordTo.z + offset, 10, GetPlayerPed(-1), 0) + a, b, c, d, vehicle = GetRaycastResult(rayHandle) + + offset = offset - 1 + + if vehicle ~= 0 then break end + end + + local distance = Vdist2(coordFrom, GetEntityCoords(vehicle)) + + if distance > 25 then vehicle = nil end + + return vehicle ~= nil and vehicle or 0]]-- + + local vehicles = QBCore.Functions.GetVehicles() + local closestDistance = -1 + local closestVehicle = -1 + local coords = coords + + if coords == nil then + local playerPed = PlayerPedId() + coords = GetEntityCoords(playerPed) + end + for i=1, #vehicles, 1 do + local vehicleCoords = GetEntityCoords(vehicles[i]) + local distance = GetDistanceBetweenCoords(vehicleCoords, coords.x, coords.y, coords.z, true) + + if closestDistance == -1 or closestDistance > distance then + closestVehicle = vehicles[i] + closestDistance = distance + end + end + return closestVehicle +end + +QBCore.Functions.GetClosestPed = function(coords, ignoreList) + local ignoreList = ignoreList or {} + local peds = QBCore.Functions.GetPeds(ignoreList) + local closestDistance = -1 + local closestPed = -1 + + if coords == nil then + coords = GetEntityCoords(GetPlayerPed(-1)) + end + + for i=1, #peds, 1 do + local pedCoords = GetEntityCoords(peds[i]) + local distance = GetDistanceBetweenCoords(pedCoords, coords.x, coords.y, coords.z, true) + + if closestDistance == -1 or closestDistance > distance then + closestPed = peds[i] + closestDistance = distance + end + end + + return closestPed, closestDistance +end + + +QBCore.Functions.GetClosestPlayer = function(coords) + if coords == nil then + coords = GetEntityCoords(GetPlayerPed(-1)) + end + + local closestPlayers = QBCore.Functions.GetPlayersFromCoords(coords) + local closestDistance = -1 + local closestPlayer = -1 + + for i=1, #closestPlayers, 1 do + if closestPlayers[i] ~= PlayerId() and closestPlayers[i] ~= -1 then + local pos = GetEntityCoords(GetPlayerPed(closestPlayers[i])) + local distance = GetDistanceBetweenCoords(pos.x, pos.y, pos.z, coords.x, coords.y, coords.z, true) + + if closestDistance == -1 or closestDistance > distance then + closestPlayer = closestPlayers[i] + closestDistance = distance + end + end + end + + return closestPlayer, closestDistance +end + +QBCore.Functions.GetPlayersFromCoords = function(coords, distance) + local players = QBCore.Functions.GetPlayers() + local closePlayers = {} + + if coords == nil then + coords = GetEntityCoords(GetPlayerPed(-1)) + end + if distance == nil then + distance = 5.0 + end + for _, player in pairs(players) do + local target = GetPlayerPed(player) + local targetCoords = GetEntityCoords(target) + local targetdistance = GetDistanceBetweenCoords(targetCoords, coords.x, coords.y, coords.z, true) + if targetdistance <= distance then + table.insert(closePlayers, player) + end + end + + return closePlayers +end + +QBCore.Functions.HasItem = function(source, cb, item) + local retval = false + QBCore.Functions.TriggerCallback('QBCore:HasItem', function(result) + if result then + retval = true + end + return retval + end, item) + return retval +end + +QBCore.Functions.Progressbar = function(name, label, duration, useWhileDead, canCancel, disableControls, animation, prop, propTwo, onFinish, onCancel) + exports['progressbar']:Progress({ + name = name:lower(), + duration = duration, + label = label, + useWhileDead = useWhileDead, + canCancel = canCancel, + controlDisables = disableControls, + animation = animation, + prop = prop, + propTwo = propTwo, + }, function(cancelled) + if not cancelled then + if onFinish ~= nil then + onFinish() + end + else + if onCancel ~= nil then + onCancel() + end + end + end) +end + +QBCore.Functions.GetVehicleProperties = function(vehicle) + local color1, color2 = GetVehicleColours(vehicle) + local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle) + local livery = GetVehicleLivery(vehicle) + if livery == 0 then + livery = GetVehicleMod(vehicle, 48) + end + + + return { + + model = GetEntityModel(vehicle), + + plate = GetVehicleNumberPlateText(vehicle), + plateIndex = GetVehicleNumberPlateTextIndex(vehicle), + + health = GetEntityHealth(vehicle), + dirtLevel = GetVehicleDirtLevel(vehicle), + + color1 = color1, + color2 = color2, + + pearlescentColor = pearlescentColor, + wheelColor = wheelColor, + + wheels = GetVehicleWheelType(vehicle), + windowTint = GetVehicleWindowTint(vehicle), + + neonEnabled = { + IsVehicleNeonLightEnabled(vehicle, 0), + IsVehicleNeonLightEnabled(vehicle, 1), + IsVehicleNeonLightEnabled(vehicle, 2), + IsVehicleNeonLightEnabled(vehicle, 3) + }, + + extras = { + + }, + + neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)), + tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)), + + modSpoilers = GetVehicleMod(vehicle, 0), + modFrontBumper = GetVehicleMod(vehicle, 1), + modRearBumper = GetVehicleMod(vehicle, 2), + modSideSkirt = GetVehicleMod(vehicle, 3), + modExhaust = GetVehicleMod(vehicle, 4), + modFrame = GetVehicleMod(vehicle, 5), + modGrille = GetVehicleMod(vehicle, 6), + modHood = GetVehicleMod(vehicle, 7), + modFender = GetVehicleMod(vehicle, 8), + modRightFender = GetVehicleMod(vehicle, 9), + modRoof = GetVehicleMod(vehicle, 10), + + modEngine = GetVehicleMod(vehicle, 11), + modBrakes = GetVehicleMod(vehicle, 12), + modTransmission = GetVehicleMod(vehicle, 13), + modHorns = GetVehicleMod(vehicle, 14), + modSuspension = GetVehicleMod(vehicle, 15), + modArmor = GetVehicleMod(vehicle, 16), + + modTurbo = IsToggleModOn(vehicle, 18), + modSmokeEnabled = IsToggleModOn(vehicle, 20), + modXenon = IsToggleModOn(vehicle, 22), + + modFrontWheels = GetVehicleMod(vehicle, 23), + modBackWheels = GetVehicleMod(vehicle, 24), + + modPlateHolder = GetVehicleMod(vehicle, 25), + modVanityPlate = GetVehicleMod(vehicle, 26), + modTrimA = GetVehicleMod(vehicle, 27), + modOrnaments = GetVehicleMod(vehicle, 28), + modDashboard = GetVehicleMod(vehicle, 29), + modDial = GetVehicleMod(vehicle, 30), + modDoorSpeaker = GetVehicleMod(vehicle, 31), + modSeats = GetVehicleMod(vehicle, 32), + modSteeringWheel = GetVehicleMod(vehicle, 33), + modShifterLeavers = GetVehicleMod(vehicle, 34), + modAPlate = GetVehicleMod(vehicle, 35), + modSpeakers = GetVehicleMod(vehicle, 36), + modTrunk = GetVehicleMod(vehicle, 37), + modHydrolic = GetVehicleMod(vehicle, 38), + modEngineBlock = GetVehicleMod(vehicle, 39), + modAirFilter = GetVehicleMod(vehicle, 40), + modStruts = GetVehicleMod(vehicle, 41), + modArchCover = GetVehicleMod(vehicle, 42), + modAerials = GetVehicleMod(vehicle, 43), + modTrimB = GetVehicleMod(vehicle, 44), + modTank = GetVehicleMod(vehicle, 45), + modWindows = GetVehicleMod(vehicle, 46), + modLivery = livery, + modCustomTyres = GetVehicleModVariation(vehicle, 23) + } +end + +QBCore.Functions.SetVehicleProperties = function(vehicle, props) + SetVehicleModKit(vehicle, 0) + + if props.plate ~= nil then + SetVehicleNumberPlateText(vehicle, props.plate) + end + + if props.plateIndex ~= nil then + SetVehicleNumberPlateTextIndex(vehicle, props.plateIndex) + end + + if props.health ~= nil then + SetEntityHealth(vehicle, props.health) + end + + if props.dirtLevel ~= nil then + SetVehicleDirtLevel(vehicle, props.dirtLevel) + end + + if props.color1 ~= nil then + local color1, color2 = GetVehicleColours(vehicle) + SetVehicleColours(vehicle, props.color1, color2) + end + + if props.color2 ~= nil then + local color1, color2 = GetVehicleColours(vehicle) + SetVehicleColours(vehicle, color1, props.color2) + end + + if props.pearlescentColor ~= nil then + local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle) + SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor) + end + + if props.wheelColor ~= nil then + local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle) + SetVehicleExtraColours(vehicle, pearlescentColor, props.wheelColor) + end + + if props.wheels ~= nil then + SetVehicleWheelType(vehicle, props.wheels) + end + + if props.windowTint ~= nil then + SetVehicleWindowTint(vehicle, props.windowTint) + end + + if props.neonEnabled ~= nil then + SetVehicleNeonLightEnabled(vehicle, 0, props.neonEnabled[1]) + SetVehicleNeonLightEnabled(vehicle, 1, props.neonEnabled[2]) + SetVehicleNeonLightEnabled(vehicle, 2, props.neonEnabled[3]) + SetVehicleNeonLightEnabled(vehicle, 3, props.neonEnabled[4]) + end + + if props.neonColor ~= nil then + SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3]) + end + + if props.modSmokeEnabled ~= nil then + ToggleVehicleMod(vehicle, 20, true) + end + + if props.tyreSmokeColor ~= nil then + SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3]) + end + + if props.modSpoilers ~= nil then + SetVehicleMod(vehicle, 0, props.modSpoilers, false) + end + + if props.modFrontBumper ~= nil then + SetVehicleMod(vehicle, 1, props.modFrontBumper, false) + end + + if props.modRearBumper ~= nil then + SetVehicleMod(vehicle, 2, props.modRearBumper, false) + end + + if props.modSideSkirt ~= nil then + SetVehicleMod(vehicle, 3, props.modSideSkirt, false) + end + + if props.modExhaust ~= nil then + SetVehicleMod(vehicle, 4, props.modExhaust, false) + end + + if props.modFrame ~= nil then + SetVehicleMod(vehicle, 5, props.modFrame, false) + end + + if props.modGrille ~= nil then + SetVehicleMod(vehicle, 6, props.modGrille, false) + end + + if props.modHood ~= nil then + SetVehicleMod(vehicle, 7, props.modHood, false) + end + + if props.modFender ~= nil then + SetVehicleMod(vehicle, 8, props.modFender, false) + end + + if props.modRightFender ~= nil then + SetVehicleMod(vehicle, 9, props.modRightFender, false) + end + + if props.modRoof ~= nil then + SetVehicleMod(vehicle, 10, props.modRoof, false) + end + + if props.modEngine ~= nil then + SetVehicleMod(vehicle, 11, props.modEngine, false) + end + + if props.modBrakes ~= nil then + SetVehicleMod(vehicle, 12, props.modBrakes, false) + end + + if props.modTransmission ~= nil then + SetVehicleMod(vehicle, 13, props.modTransmission, false) + end + + if props.modHorns ~= nil then + SetVehicleMod(vehicle, 14, props.modHorns, false) + end + + if props.modSuspension ~= nil then + SetVehicleMod(vehicle, 15, props.modSuspension, false) + end + + if props.modArmor ~= nil then + SetVehicleMod(vehicle, 16, props.modArmor, false) + end + + if props.modTurbo ~= nil then + ToggleVehicleMod(vehicle, 18, props.modTurbo) + end + + if props.modXenon ~= nil then + ToggleVehicleMod(vehicle, 22, props.modXenon) + end + + if props.modFrontWheels ~= nil then + SetVehicleMod(vehicle, 23, props.modFrontWheels, false) + end + + if props.modBackWheels ~= nil then + SetVehicleMod(vehicle, 24, props.modBackWheels, false) + end + + if props.modPlateHolder ~= nil then + SetVehicleMod(vehicle, 25, props.modPlateHolder, false) + end + + if props.modVanityPlate ~= nil then + SetVehicleMod(vehicle, 26, props.modVanityPlate, false) + end + + if props.modTrimA ~= nil then + SetVehicleMod(vehicle, 27, props.modTrimA, false) + end + + if props.modOrnaments ~= nil then + SetVehicleMod(vehicle, 28, props.modOrnaments, false) + end + + if props.modDashboard ~= nil then + SetVehicleMod(vehicle, 29, props.modDashboard, false) + end + + if props.modDial ~= nil then + SetVehicleMod(vehicle, 30, props.modDial, false) + end + + if props.modDoorSpeaker ~= nil then + SetVehicleMod(vehicle, 31, props.modDoorSpeaker, false) + end + + if props.modSeats ~= nil then + SetVehicleMod(vehicle, 32, props.modSeats, false) + end + + if props.modSteeringWheel ~= nil then + SetVehicleMod(vehicle, 33, props.modSteeringWheel, false) + end + + if props.modShifterLeavers ~= nil then + SetVehicleMod(vehicle, 34, props.modShifterLeavers, false) + end + + if props.modAPlate ~= nil then + SetVehicleMod(vehicle, 35, props.modAPlate, false) + end + + if props.modSpeakers ~= nil then + SetVehicleMod(vehicle, 36, props.modSpeakers, false) + end + + if props.modTrunk ~= nil then + SetVehicleMod(vehicle, 37, props.modTrunk, false) + end + + if props.modHydrolic ~= nil then + SetVehicleMod(vehicle, 38, props.modHydrolic, false) + end + + if props.modEngineBlock ~= nil then + SetVehicleMod(vehicle, 39, props.modEngineBlock, false) + end + + if props.modAirFilter ~= nil then + SetVehicleMod(vehicle, 40, props.modAirFilter, false) + end + + if props.modStruts ~= nil then + SetVehicleMod(vehicle, 41, props.modStruts, false) + end + + if props.modArchCover ~= nil then + SetVehicleMod(vehicle, 42, props.modArchCover, false) + end + + if props.modAerials ~= nil then + SetVehicleMod(vehicle, 43, props.modAerials, false) + end + + if props.modTrimB ~= nil then + SetVehicleMod(vehicle, 44, props.modTrimB, false) + end + + if props.modTank ~= nil then + SetVehicleMod(vehicle, 45, props.modTank, false) + end + + if props.modWindows ~= nil then + SetVehicleMod(vehicle, 46, props.modWindows, false) + end + + if props.modLivery ~= nil then + SetVehicleMod(vehicle, 48, props.modLivery, false) + SetVehicleLivery(vehicle, props.modLivery) + end + if props.modCustomTyres ~= nil and props.modCustomTyres then + SetVehicleMod(vehicle, 23, props.modCustomTyres, true) + end +end \ No newline at end of file diff --git a/qb-core/client/loops.lua b/qb-core/client/loops.lua new file mode 100644 index 0000000..e1fb2cf --- /dev/null +++ b/qb-core/client/loops.lua @@ -0,0 +1,48 @@ +Citizen.CreateThread(function() + while true do + Citizen.Wait(7) + if NetworkIsSessionStarted() then + Citizen.Wait(10) + TriggerServerEvent('QBCore:PlayerJoined') + return + end + end +end) + +Citizen.CreateThread(function() + while true do + Citizen.Wait(7) + if isLoggedIn then + Citizen.Wait((1000 * 60) * 10) + TriggerEvent("QBCore:Player:UpdatePlayerData") + else + Citizen.Wait(5000) + end + end +end) + +Citizen.CreateThread(function() + while true do + Citizen.Wait(7) + if isLoggedIn then + Citizen.Wait(30000) + TriggerEvent("QBCore:Player:UpdatePlayerPosition") + else + Citizen.Wait(5000) + end + end +end) + +Citizen.CreateThread(function() + while true do + Citizen.Wait(math.random(3000, 5000)) + if isLoggedIn then + if QBCore.Functions.GetPlayerData().metadata["hunger"] <= 0 or QBCore.Functions.GetPlayerData().metadata["thirst"] <= 0 then + local ped = GetPlayerPed(-1) + local currentHealth = GetEntityHealth(ped) + + SetEntityHealth(ped, currentHealth - math.random(5, 10)) + end + end + end +end) \ No newline at end of file diff --git a/qb-core/client/main.lua b/qb-core/client/main.lua new file mode 100644 index 0000000..dc8ed81 --- /dev/null +++ b/qb-core/client/main.lua @@ -0,0 +1,30 @@ +QBCore = {} +QBCore.PlayerData = {} +QBCore.Config = QBConfig +QBCore.Shared = QBShared +QBCore.ServerCallbacks = {} + +isLoggedIn = false + +function GetCoreObject() + return QBCore +end + +RegisterNetEvent('QBCore:GetObject') +AddEventHandler('QBCore:GetObject', function(cb) + cb(GetCoreObject()) +end) + +RegisterNetEvent('QBCore:Client:OnPlayerLoaded') +AddEventHandler('QBCore:Client:OnPlayerLoaded', function() + local ped = PlayerPedId() + ShutdownLoadingScreenNui() + isLoggedIn = true + SetCanAttackFriendly(ped, true, true) + NetworkSetFriendlyFireOption(true) +end) + +RegisterNetEvent('QBCore:Client:OnPlayerUnload') +AddEventHandler('QBCore:Client:OnPlayerUnload', function() + isLoggedIn = false +end) diff --git a/qb-core/config.lua b/qb-core/config.lua new file mode 100644 index 0000000..39a9239 --- /dev/null +++ b/qb-core/config.lua @@ -0,0 +1,31 @@ +QBConfig = {} + +QBConfig.MaxPlayers = GetConvarInt('sv_maxclients', 64) -- Gets max players from config file, default 32 +QBConfig.IdentifierType = "steam" -- Set the identifier type (can be: steam, license) +QBConfig.DefaultSpawn = {x=-1035.71,y=-2731.87,z=12.86,a=0.0} + +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.Player = {} +QBConfig.Player.MaxWeight = 120000 -- Max weight a player can carry (currently 120kg, written in grams) +QBConfig.Player.MaxInvSlots = 41 -- Max inventory slots for a player +QBConfig.Player.Bloodtypes = { + "A+", + "A-", + "B+", + "B-", + "AB+", + "AB-", + "O+", + "O-", +} + +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 = "We\'re still testing." -- 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.discord = "https://discord.gg/Ttr6fY6" -- Discord invite link +QBConfig.Server.PermissionList = {} -- permission list diff --git a/qb-core/html/css/main.css b/qb-core/html/css/main.css new file mode 100644 index 0000000..695cd1a --- /dev/null +++ b/qb-core/html/css/main.css @@ -0,0 +1,44 @@ +body { + background-color: transparent !important; +} + +.template, .notification { + display: none; +} + +.notif-container { + width: 20vw; + position: absolute; + top: 4vh; + right: 12vw; + display: flex; + flex-flow: row; + flex-wrap: wrap; +} + +.notification { + position: relative; + padding: 1vh; + width: fit-content; + border-radius: .4vh; + margin: 5px; + font: caption; + font-size: 1.2vh; + font-weight: bold; + float: left; +} + +.success { + background: #27ae60; + color: #fff; +} + +.primary { + background-color: #2980b9; + color: #ffffff; +} + +.error { + background: #c0392b; + color: #fff; +} \ No newline at end of file diff --git a/qb-core/html/js/app.js b/qb-core/html/js/app.js new file mode 100644 index 0000000..cc63183 --- /dev/null +++ b/qb-core/html/js/app.js @@ -0,0 +1,24 @@ +window.addEventListener('message', function (event) { + switch(event.data.action) { + case 'show': + ShowNotif(event.data); + break; + default: + ShowNotif(event.data); + break; + } +}); + +function ShowNotif(data) { + var $notification = $('.notification.template').clone(); + $notification.removeClass('template'); + $notification.addClass(data.type); + $notification.html(data.text); + $notification.fadeIn(); + $('.notif-container').prepend($notification); + setTimeout(function() { + $.when($notification.fadeOut(1500)).done(function() { + $notification.remove() + }); + }, data.length != null ? data.length : 2500); +} \ No newline at end of file diff --git a/qb-core/html/ui.html b/qb-core/html/ui.html new file mode 100644 index 0000000..aba8392 --- /dev/null +++ b/qb-core/html/ui.html @@ -0,0 +1,13 @@ + +
+ + + + + + + + + + + \ No newline at end of file diff --git a/qb-core/server/commands.lua b/qb-core/server/commands.lua new file mode 100644 index 0000000..33ca4e5 --- /dev/null +++ b/qb-core/server/commands.lua @@ -0,0 +1,162 @@ +QBCore.Commands = {} +QBCore.Commands.List = {} + +QBCore.Commands.Add = function(name, help, arguments, argsrequired, callback, permission) -- [name] = command name (ex. /givemoney), [help] = help text, [arguments] = arguments that need to be passed (ex. {{name="id", help="ID of a player"}, {name="amount", help="amount of money"}}), [argsrequired] = set arguments required (true or false), [callback] = function(source, args) callback, [permission] = rank or job of a player + QBCore.Commands.List[name:lower()] = { + name = name:lower(), + permission = permission ~= nil and permission:lower() or "user", + help = help, + arguments = arguments, + argsrequired = argsrequired, + callback = callback, + } +end + +QBCore.Commands.Refresh = function(source) + local Player = QBCore.Functions.GetPlayer(tonumber(source)) + if Player ~= nil then + for command, info in pairs(QBCore.Commands.List) do + if QBCore.Functions.HasPermission(source, "god") or QBCore.Functions.HasPermission(source, QBCore.Commands.List[command].permission) then + TriggerClientEvent('chat:addSuggestion', source, "/"..command, info.help, info.arguments) + end + end + end +end + +QBCore.Commands.Add("tp", "Teleport to a player or location", {{name="id/x", help="ID of player or X position"}, {name="y", help="Y position"}, {name="z", help="Z position"}}, false, function(source, args) + if (args[1] ~= nil and (args[2] == nil and args[3] == nil)) then + -- tp to player + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + if Player ~= nil then + TriggerClientEvent('QBCore:Command:TeleportToPlayer', source, Player.PlayerData.source) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end + else + -- tp to location + if args[1] ~= nil and args[2] ~= nil and args[3] ~= nil then + local x = tonumber(args[1]) + local y = tonumber(args[2]) + local z = tonumber(args[3]) + TriggerClientEvent('QBCore:Command:TeleportToCoords', source, x, y, z) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Not every argument has been entered (x, y, z)") + end + end +end, "admin") + +QBCore.Commands.Add("addpermission", "Grant permissions to someone (god/admin)", {{name="id", help="ID of player"}, {name="permission", help="Permission level"}}, true, function(source, args) + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + local permission = tostring(args[2]):lower() + if Player ~= nil then + QBCore.Functions.AddPermission(Player.PlayerData.source, permission) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "god") + +QBCore.Commands.Add("removepermission", "Remove permissions from someone", {{name="id", help="ID of player"}}, true, function(source, args) + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + if Player ~= nil then + QBCore.Functions.RemovePermission(Player.PlayerData.source) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "god") + +QBCore.Commands.Add("sv", "Spawn a vehicle", {{name="model", help="Model name of the vehicle"}}, true, function(source, args) + TriggerClientEvent('QBCore:Command:SpawnVehicle', source, args[1]) +end, "admin") + +QBCore.Commands.Add("debug", "Turn debug mode on / off", {}, false, function(source, args) + TriggerClientEvent('koil-debug:toggle', source) +end, "admin") + +QBCore.Commands.Add("dv", "Despawn a vehicle", {}, false, function(source, args) + TriggerClientEvent('QBCore:Command:DeleteVehicle', source) +end, "admin") + +QBCore.Commands.Add("tpm", "Teleport to your waypoint", {}, false, function(source, args) + TriggerClientEvent('QBCore:Command:GoToMarker', source) +end, "admin") + +QBCore.Commands.Add("givemoney", "Give money to a player", {{name="id", help="Player ID"},{name="moneytype", help="Type of money (cash, bank, crypto)"}, {name="amount", help="Amount of money"}}, true, function(source, args) + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + if Player ~= nil then + Player.Functions.AddMoney(tostring(args[2]), tonumber(args[3])) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "admin") + +QBCore.Commands.Add("setmoney", "set a players money amount", {{name="id", help="Player ID"},{name="moneytype", help="Type of money (cash, bank, crypto)"}, {name="amount", help="Amount of money"}}, true, function(source, args) + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + if Player ~= nil then + Player.Functions.SetMoney(tostring(args[2]), tonumber(args[3])) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "admin") + +QBCore.Commands.Add("setjob", "Assign a job to a player", {{name="id", help="Speler ID"}, {name="job", help="Job name"}}, true, function(source, args) + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + if Player ~= nil then + Player.Functions.SetJob(tostring(args[2])) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "admin") + +QBCore.Commands.Add("job", "See what job you have", {}, false, function(source, args) + local Player = QBCore.Functions.GetPlayer(source) + TriggerClientEvent('chatMessage', source, "SYSTEM", "warning", "Job: "..Player.PlayerData.job.label) +end) + +QBCore.Commands.Add("setgang", "Assign a player to a gang", {{name="id", help="Player ID"}, {name="job", help="Name of a gang"}}, true, function(source, args) + local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) + if Player ~= nil then + Player.Functions.SetGang(tostring(args[2])) + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "admin") + +QBCore.Commands.Add("gang", "See what gang you're in", {}, false, function(source, args) + local Player = QBCore.Functions.GetPlayer(source) + + if Player.PlayerData.gang.name ~= "geen" then + TriggerClientEvent('chatMessage', source, "SYSTEM", "warning", "Gang: "..Player.PlayerData.gang.label) + else + TriggerClientEvent('QBCore:Notify', source, "You're not in a gang!", "error") + end +end) + +QBCore.Commands.Add("testnotify", "test notify", {{name="text", help="Tekst enzo"}}, true, function(source, args) + TriggerClientEvent('QBCore:Notify', source, table.concat(args, " "), "success") +end, "god") + +QBCore.Commands.Add("clearinv", "Clear the inventory of a player", {{name="id", help="Player ID"}}, false, function(source, args) + local playerId = args[1] ~= nil and args[1] or source + local Player = QBCore.Functions.GetPlayer(tonumber(playerId)) + if Player ~= nil then + Player.Functions.ClearInventory() + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "Player is not online!") + end +end, "admin") + +QBCore.Commands.Add("ooc", "Out of Character message", {}, false, function(source, args) + local message = table.concat(args, " ") + TriggerClientEvent("QBCore:Client:LocalOutOfCharacter", -1, source, GetPlayerName(source), message) + local Players = QBCore.Functions.GetPlayers() + local Player = QBCore.Functions.GetPlayer(source) + + for k, v in pairs(QBCore.Functions.GetPlayers()) do + if QBCore.Functions.HasPermission(v, "admin") then + if QBCore.Functions.IsOptin(v) then + TriggerClientEvent('chatMessage', v, "OOC " .. GetPlayerName(source), "normal", message) + TriggerEvent("qb-log:server:CreateLog", "ooc", "OOC", "white", "**"..GetPlayerName(source).."** (CitizenID: "..Player.PlayerData.citizenid.." | ID: "..source..") **Message:** " ..message, false) + end + end + end +end) \ No newline at end of file diff --git a/qb-core/server/debug.lua b/qb-core/server/debug.lua new file mode 100644 index 0000000..26ac4f4 --- /dev/null +++ b/qb-core/server/debug.lua @@ -0,0 +1,36 @@ +RegisterServerEvent('QBCore:DebugSomething') +AddEventHandler('QBCore:DebugSomething', function(resource, obj, depth) + print("\x1b[4m\x1b[36m["..resource..":DEBUG]\x1b[0m") + if type(obj) == "string" then + print(string.format("%q", obj)) + elseif type(obj) == "table" then + local str = "{" + for k, v in pairs(obj) do + if type(v) == "table" then + for ik, iv in pairs(v) do + str = str.."\n["..k.."] -> ["..ik.."] -> "..tostring(iv) + end + else + str = str.."\n["..k.."] -> "..tostring(v) + end + end + + print(str.."\n}") + else + local success, value = pcall(function() return tostring(obj) end) + print((success and value or "")) + end + print("\x1b[4m\x1b[36mEND OF DEBUG\x1b[0m") +end) + +QBCore.Debug = function(resource, obj, depth) + TriggerEvent('QBCore:DebugSomething', resource, obj, depth) +end + +QBCore.ShowError = function(resource, msg) + print("\x1b[31m["..resource..":ERROR]\x1b[0m "..msg) +end + +QBCore.ShowSuccess = function(resource, msg) + print("\x1b[32m["..resource..":LOG]\x1b[0m "..msg) +end diff --git a/qb-core/server/events.lua b/qb-core/server/events.lua new file mode 100644 index 0000000..91abaa2 --- /dev/null +++ b/qb-core/server/events.lua @@ -0,0 +1,290 @@ +-- Player joined +RegisterServerEvent("QBCore:PlayerJoined") +AddEventHandler('QBCore:PlayerJoined', function() + local src = source +end) + +AddEventHandler('playerDropped', function(reason) + local src = source + print("Dropped: "..GetPlayerName(src)) + TriggerEvent("qb-log:server:CreateLog", "joinleave", "Dropped", "red", "**".. GetPlayerName(src) .. "** ("..GetPlayerIdentifiers(src)[1]..") left..") + TriggerEvent("qb-log:server:sendLog", GetPlayerIdentifiers(src)[1], "joined", {}) + if reason ~= "Reconnecting" and src > 60000 then return false end + if(src==nil or (QBCore.Players[src] == nil)) then return false end + QBCore.Players[src].Functions.Save() + QBCore.Players[src] = nil +end) + +-- Checking everything before joining +AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals) + deferrals.defer() + local src = source + deferrals.update("\nChecking name...") + local name = GetPlayerName(src) + if name == nil then + QBCore.Functions.Kick(src, 'Please don\'t use a blank Steam username.', setKickReason, deferrals) + CancelEvent() + return false + end + if(string.match(name, "[*%%'=`\"]")) then + QBCore.Functions.Kick(src, 'You have a character in your username ('..string.match(name, "[*%%'=`\"]")..') that is not allowed.\nPlease remove this out of your Steam username.', setKickReason, deferrals) + CancelEvent() + return false + end + if (string.match(name, "drop") or string.match(name, "table") or string.match(name, "database")) then + QBCore.Functions.Kick(src, 'Your username contains a word (drop/table/database) that is not allowed.\nPlease change your Steam username.', setKickReason, deferrals) + CancelEvent() + return false + end + deferrals.update("\nChecking identifiers...") + local identifiers = GetPlayerIdentifiers(src) + local steamid = identifiers[1] + local license = identifiers[2] + if (QBConfig.IdentifierType == "steam" and (steamid:sub(1,6) == "steam:") == false) then + QBCore.Functions.Kick(src, 'You need to open Steam to play.', setKickReason, deferrals) + CancelEvent() + return false + elseif (QBConfig.IdentifierType == "license" and (steamid:sub(1,6) == "license:") == false) then + QBCore.Functions.Kick(src, 'No Social Club license found.', setKickReason, deferrals) + CancelEvent() + return false + end + deferrals.update("\nChecking ban status...") + local isBanned, Reason = QBCore.Functions.IsPlayerBanned(src) + if(isBanned) then + QBCore.Functions.Kick(src, Reason, setKickReason, deferrals) + CancelEvent() + return false + end + deferrals.update("\nChecking whitelist status...") + if(not QBCore.Functions.IsWhitelisted(src)) then + QBCore.Functions.Kick(src, 'You aren\'t whitelisted.', setKickReason, deferrals) + CancelEvent() + return false + end + deferrals.update("\nChecking server status...") + if(QBCore.Config.Server.closed and not IsPlayerAceAllowed(src, "qbadmin.join")) then + QBCore.Functions.Kick(_source, 'the server is closed:\n'..QBCore.Config.Server.closedReason, setKickReason, deferrals) + CancelEvent() + return false + end + TriggerEvent("qb-log:server:CreateLog", "joinleave", "Queue", "orange", "**"..name .. "** ("..json.encode(GetPlayerIdentifiers(src))..") in queue..") + TriggerEvent("qb-log:server:sendLog", GetPlayerIdentifiers(src)[1], "left", {}) + TriggerEvent("connectqueue:playerConnect", src, setKickReason, deferrals) +end) + +RegisterServerEvent("QBCore:server:CloseServer") +AddEventHandler('QBCore:server:CloseServer', function(reason) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + + if QBCore.Functions.HasPermission(source, "admin") or QBCore.Functions.HasPermission(source, "god") then + local reason = reason ~= nil and reason or "No reason specified..." + QBCore.Config.Server.closed = true + QBCore.Config.Server.closedReason = reason + TriggerClientEvent("qbadmin:client:SetServerStatus", -1, true) + else + QBCore.Functions.Kick(src, "You don't have permissions for this..", nil, nil) + end +end) + +RegisterServerEvent("QBCore:server:OpenServer") +AddEventHandler('QBCore:server:OpenServer', function() + local src = source + local Player = QBCore.Functions.GetPlayer(src) + if QBCore.Functions.HasPermission(source, "admin") or QBCore.Functions.HasPermission(source, "god") then + QBCore.Config.Server.closed = false + TriggerClientEvent("qbadmin:client:SetServerStatus", -1, false) + else + QBCore.Functions.Kick(src, "You don't have permissions for this..", nil, nil) + end +end) + +RegisterServerEvent("QBCore:UpdatePlayer") +AddEventHandler('QBCore:UpdatePlayer', function(data) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + + if Player ~= nil then + Player.PlayerData.position = data.position + + local newHunger = Player.PlayerData.metadata["hunger"] - 4.2 + local newThirst = Player.PlayerData.metadata["thirst"] - 3.8 + if newHunger <= 0 then newHunger = 0 end + if newThirst <= 0 then newThirst = 0 end + Player.Functions.SetMetaData("thirst", newThirst) + Player.Functions.SetMetaData("hunger", newHunger) + + Player.Functions.AddMoney("bank", Player.PlayerData.job.payment) + TriggerClientEvent('QBCore:Notify', src, "You received your paycheck of €"..Player.PlayerData.job.payment) + TriggerClientEvent("hud:client:UpdateNeeds", src, newHunger, newThirst) + + Player.Functions.Save() + end +end) + +RegisterServerEvent("QBCore:UpdatePlayerPosition") +AddEventHandler("QBCore:UpdatePlayerPosition", function(position) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + if Player ~= nil then + Player.PlayerData.position = position + end +end) + +RegisterServerEvent("QBCore:Server:TriggerCallback") +AddEventHandler('QBCore:Server:TriggerCallback', function(name, ...) + local src = source + QBCore.Functions.TriggerCallback(name, src, function(...) + TriggerClientEvent("QBCore:Client:TriggerCallback", src, name, ...) + end, ...) +end) + +RegisterServerEvent("QBCore:Server:UseItem") +AddEventHandler('QBCore:Server:UseItem', function(item) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + if item ~= nil and item.amount > 0 then + if QBCore.Functions.CanUseItem(item.name) then + QBCore.Functions.UseItem(src, item) + end + end +end) + +RegisterServerEvent("QBCore:Server:RemoveItem") +AddEventHandler('QBCore:Server:RemoveItem', function(itemName, amount, slot) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + Player.Functions.RemoveItem(itemName, amount, slot) +end) + +RegisterServerEvent("QBCore:Server:AddItem") +AddEventHandler('QBCore:Server:AddItem', function(itemName, amount, slot, info) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + Player.Functions.AddItem(itemName, amount, slot, info) +end) + +RegisterServerEvent('QBCore:Server:SetMetaData') +AddEventHandler('QBCore:Server:SetMetaData', function(meta, data) + local src = source + local Player = QBCore.Functions.GetPlayer(src) + if meta == "hunger" or meta == "thirst" then + if data > 100 then + data = 100 + end + end + if Player ~= nil then + Player.Functions.SetMetaData(meta, data) + end + TriggerClientEvent("hud:client:UpdateNeeds", src, Player.PlayerData.metadata["hunger"], Player.PlayerData.metadata["thirst"]) +end) + +AddEventHandler('chatMessage', function(source, n, message) + if string.sub(message, 1, 1) == "/" then + local args = QBCore.Shared.SplitStr(message, " ") + local command = string.gsub(args[1]:lower(), "/", "") + CancelEvent() + if QBCore.Commands.List[command] ~= nil then + local Player = QBCore.Functions.GetPlayer(tonumber(source)) + if Player ~= nil then + table.remove(args, 1) + if (QBCore.Functions.HasPermission(source, "god") or QBCore.Functions.HasPermission(source, QBCore.Commands.List[command].permission)) then + if (QBCore.Commands.List[command].argsrequired and #QBCore.Commands.List[command].arguments ~= 0 and args[#QBCore.Commands.List[command].arguments] == nil) then + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "All arguments must be filled out!") + local agus = "" + for name, help in pairs(QBCore.Commands.List[command].arguments) do + agus = agus .. " ["..help.name.."]" + end + TriggerClientEvent('chatMessage', source, "/"..command, false, agus) + else + QBCore.Commands.List[command].callback(source, args) + end + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "No access to this command!") + end + end + end + end +end) + +RegisterServerEvent('QBCore:CallCommand') +AddEventHandler('QBCore:CallCommand', function(command, args) + if QBCore.Commands.List[command] ~= nil then + local Player = QBCore.Functions.GetPlayer(tonumber(source)) + if Player ~= nil then + if (QBCore.Functions.HasPermission(source, "god")) or (QBCore.Functions.HasPermission(source, QBCore.Commands.List[command].permission)) or (QBCore.Commands.List[command].permission == Player.PlayerData.job.name) then + if (QBCore.Commands.List[command].argsrequired and #QBCore.Commands.List[command].arguments ~= 0 and args[#QBCore.Commands.List[command].arguments] == nil) then + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "All arguments must be filled out!") + local agus = "" + for name, help in pairs(QBCore.Commands.List[command].arguments) do + agus = agus .. " ["..help.name.."]" + end + TriggerClientEvent('chatMessage', source, "/"..command, false, agus) + else + QBCore.Commands.List[command].callback(source, args) + end + else + TriggerClientEvent('chatMessage', source, "SYSTEM", "error", "No access to this command!") + end + end + end +end) + +RegisterServerEvent("QBCore:AddCommand") +AddEventHandler('QBCore:AddCommand', function(name, help, arguments, argsrequired, callback, persmission) + QBCore.Commands.Add(name, help, arguments, argsrequired, callback, persmission) +end) + +RegisterServerEvent("QBCore:ToggleDuty") +AddEventHandler('QBCore:ToggleDuty', function() + local src = source + local Player = QBCore.Functions.GetPlayer(src) + if Player.PlayerData.job.onduty then + Player.Functions.SetJobDuty(false) + TriggerClientEvent('QBCore:Notify', src, "You are now off duty!") + else + Player.Functions.SetJobDuty(true) + TriggerClientEvent('QBCore:Notify', src, "You are now on duty!") + end + TriggerClientEvent("QBCore:Client:SetDuty", src, Player.PlayerData.job.onduty) +end) + +Citizen.CreateThread(function() + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `permissions`", function(result) + if result[1] ~= nil then + for k, v in pairs(result) do + QBCore.Config.Server.PermissionList[v.steam] = { + steam = v.steam, + license = v.license, + permission = v.permission, + optin = true, + } + end + end + end) +end) + +QBCore.Functions.CreateCallback('QBCore:HasItem', function(source, cb, itemName) + local retval = false + local Player = QBCore.Functions.GetPlayer(source) + if Player ~= nil then + if Player.Functions.GetItemByName(itemName) ~= nil then + retval = true + end + end + + cb(retval) +end) + +RegisterServerEvent('QBCore:Command:CheckOwnedVehicle') +AddEventHandler('QBCore:Command:CheckOwnedVehicle', function(VehiclePlate) + if VehiclePlate ~= nil then + QBCore.Functions.ExecuteSql(false, "SELECT * FROM `player_vehicles` WHERE `plate` = '"..VehiclePlate.."'", function(result) + if result[1] ~= nil then + QBCore.Functions.ExecuteSql(false, "UPDATE `player_vehicles` SET `state` = '1' WHERE `citizenid` = '"..result[1].citizenid.."'") + TriggerEvent('qb-garages:server:RemoveVehicle', result[1].citizenid, VehiclePlate) + end + end) + end +end) \ No newline at end of file diff --git a/qb-core/server/functions.lua b/qb-core/server/functions.lua new file mode 100644 index 0000000..a1390ab --- /dev/null +++ b/qb-core/server/functions.lua @@ -0,0 +1,247 @@ +QBCore.Functions = {} + +QBCore.Functions.ExecuteSql = function(wait, query, cb) + local rtndata = {} + local waiting = true + exports['ghmattimysql']:execute(query, {}, function(data) + if cb ~= nil and wait == false then + cb(data) + end + rtndata = data + waiting = false + end) + if wait then + while waiting do + Citizen.Wait(5) + end + if cb ~= nil and wait == true then + cb(rtndata) + end + end + return rtndata +end + +QBCore.Functions.GetIdentifier = function(source, idtype) + local idtype = idtype ~=nil and idtype or QBConfig.IdentifierType + for _, identifier in pairs(GetPlayerIdentifiers(source)) do + if string.find(identifier, idtype) then + return identifier + end + end + return nil +end + +QBCore.Functions.GetSource = function(identifier) + for src, player in pairs(QBCore.Players) do + local idens = GetPlayerIdentifiers(src) + for _, id in pairs(idens) do + if identifier == id then + return src + end + end + end + return 0 +end + +QBCore.Functions.GetPlayer = function(source) + if type(source) == "number" then + return QBCore.Players[source] + else + return QBCore.Players[QBCore.Functions.GetSource(source)] + end +end + +QBCore.Functions.GetPlayerByCitizenId = function(citizenid) + for src, player in pairs(QBCore.Players) do + local cid = citizenid + if QBCore.Players[src].PlayerData.citizenid == cid then + return QBCore.Players[src] + end + end + return nil +end + +QBCore.Functions.GetPlayerByPhone = function(number) + for src, player in pairs(QBCore.Players) do + local cid = citizenid + if QBCore.Players[src].PlayerData.charinfo.phone == number then + return QBCore.Players[src] + end + end + return nil +end + +QBCore.Functions.GetPlayers = function() + local sources = {} + for k, v in pairs(QBCore.Players) do + table.insert(sources, k) + end + return sources +end + +QBCore.Functions.CreateCallback = function(name, cb) + QBCore.ServerCallbacks[name] = cb +end + +QBCore.Functions.TriggerCallback = function(name, source, cb, ...) + if QBCore.ServerCallbacks[name] ~= nil then + QBCore.ServerCallbacks[name](source, cb, ...) + end +end + +QBCore.Functions.CreateUseableItem = function(item, cb) + QBCore.UseableItems[item] = cb +end + +QBCore.Functions.CanUseItem = function(item) + return QBCore.UseableItems[item] ~= nil +end + +QBCore.Functions.UseItem = function(source, item) + QBCore.UseableItems[item.name](source, item) +end + +QBCore.Functions.Kick = function(source, reason, setKickReason, deferrals) + local src = source + reason = "\n"..reason.."\n🔸 Check our Discord for further information: "..QBCore.Config.Server.discord + if(setKickReason ~=nil) then + setKickReason(reason) + end + Citizen.CreateThread(function() + if(deferrals ~= nil)then + deferrals.update(reason) + Citizen.Wait(2500) + end + if src ~= nil then + DropPlayer(src, reason) + end + local i = 0 + while (i <= 4) do + i = i + 1 + while true do + if src ~= nil then + if(GetPlayerPing(src) >= 0) then + break + end + Citizen.Wait(100) + Citizen.CreateThread(function() + DropPlayer(src, reason) + end) + end + end + Citizen.Wait(5000) + end + end) +end + +QBCore.Functions.IsWhitelisted = function(source) + local identifiers = GetPlayerIdentifiers(source) + local rtn = false + if (QBCore.Config.Server.whitelist) then + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `whitelist` WHERE `"..QBCore.Config.IdentifierType.."` = '".. QBCore.Functions.GetIdentifier(source).."'", function(result) + local data = result[1] + if data ~= nil then + for _, id in pairs(identifiers) do + if data.steam == id or data.license == id then + rtn = true + end + end + end + end) + else + rtn = true + end + return rtn +end + +QBCore.Functions.AddPermission = function(source, permission) + local Player = QBCore.Functions.GetPlayer(source) + if Player ~= nil then + QBCore.Config.Server.PermissionList[GetPlayerIdentifiers(source)[1]] = { + steam = GetPlayerIdentifiers(source)[1], + license = GetPlayerIdentifiers(source)[2], + permission = permission:lower(), + } + QBCore.Functions.ExecuteSql(true, "DELETE FROM `permissions` WHERE `steam` = '"..GetPlayerIdentifiers(source)[1].."'") + QBCore.Functions.ExecuteSql(true, "INSERT INTO `permissions` (`name`, `steam`, `license`, `permission`) VALUES ('"..GetPlayerName(source).."', '"..GetPlayerIdentifiers(source)[1].."', '"..GetPlayerIdentifiers(source)[2].."', '"..permission:lower().."')") + Player.Functions.UpdatePlayerData() + TriggerClientEvent('QBCore:Client:OnPermissionUpdate', source, permission) + end +end + +QBCore.Functions.RemovePermission = function(source) + local Player = QBCore.Functions.GetPlayer(source) + if Player ~= nil then + QBCore.Config.Server.PermissionList[GetPlayerIdentifiers(source)[1]] = nil + QBCore.Functions.ExecuteSql(true, "DELETE FROM `permissions` WHERE `steam` = '"..GetPlayerIdentifiers(source)[1].."'") + Player.Functions.UpdatePlayerData() + end +end + +QBCore.Functions.HasPermission = function(source, permission) + local retval = false + local steamid = GetPlayerIdentifiers(source)[1] + local licenseid = GetPlayerIdentifiers(source)[2] + local permission = tostring(permission:lower()) + if permission == "user" then + retval = true + else + if QBCore.Config.Server.PermissionList[steamid] ~= nil then + if QBCore.Config.Server.PermissionList[steamid].steam == steamid and QBCore.Config.Server.PermissionList[steamid].license == licenseid then + if QBCore.Config.Server.PermissionList[steamid].permission == permission or QBCore.Config.Server.PermissionList[steamid].permission == "god" then + retval = true + end + end + end + end + return retval +end + +QBCore.Functions.GetPermission = function(source) + local retval = "user" + Player = QBCore.Functions.GetPlayer(source) + local steamid = GetPlayerIdentifiers(source)[1] + local licenseid = GetPlayerIdentifiers(source)[2] + if Player ~= nil then + if QBCore.Config.Server.PermissionList[Player.PlayerData.steam] ~= nil then + if QBCore.Config.Server.PermissionList[Player.PlayerData.steam].steam == steamid and QBCore.Config.Server.PermissionList[Player.PlayerData.steam].license == licenseid then + retval = QBCore.Config.Server.PermissionList[Player.PlayerData.steam].permission + end + end + end + return retval +end + +QBCore.Functions.IsOptin = function(source) + local retval = false + local steamid = GetPlayerIdentifiers(source)[1] + if QBCore.Functions.HasPermission(source, "admin") then + retval = QBCore.Config.Server.PermissionList[steamid].optin + end + return retval +end + +QBCore.Functions.ToggleOptin = function(source) + local steamid = GetPlayerIdentifiers(source)[1] + if QBCore.Functions.HasPermission(source, "admin") then + QBCore.Config.Server.PermissionList[steamid].optin = not QBCore.Config.Server.PermissionList[steamid].optin + end +end + +QBCore.Functions.IsPlayerBanned = function (source) + local retval = false + local message = "" + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `bans` WHERE `steam` = '"..GetPlayerIdentifiers(source)[1].."' OR `license` = '"..GetPlayerIdentifiers(source)[2].."' OR `ip` = '"..GetPlayerIdentifiers(source)[3].."'", function(result) + if result[1] ~= nil then + if os.time() < result[1].expire then + retval = true + local timeTable = os.date("*t", tonumber(result[1].expire)) + message = "You have been banned from the server:\n"..result[1].reason.."\nJe ban verloopt "..timeTable.day.. "/" .. timeTable.month .. "/" .. timeTable.year .. " " .. timeTable.hour.. ":" .. timeTable.min .. "\n" + else + QBCore.Functions.ExecuteSql(true, "DELETE FROM `bans` WHERE `id` = "..result[1].id) + end + end + end) + return retval, message +end + diff --git a/qb-core/server/loops.lua b/qb-core/server/loops.lua new file mode 100644 index 0000000..e69de29 diff --git a/qb-core/server/main.lua b/qb-core/server/main.lua new file mode 100644 index 0000000..5422929 --- /dev/null +++ b/qb-core/server/main.lua @@ -0,0 +1,14 @@ +QBCore = {} +QBCore.Config = QBConfig +QBCore.Shared = QBShared +QBCore.ServerCallbacks = {} +QBCore.UseableItems = {} + +function GetCoreObject() + return QBCore +end + +RegisterServerEvent('QBCore:GetObject') +AddEventHandler('QBCore:GetObject', function(cb) + cb(GetCoreObject()) +end) \ No newline at end of file diff --git a/qb-core/server/player.lua b/qb-core/server/player.lua new file mode 100644 index 0000000..d77066a --- /dev/null +++ b/qb-core/server/player.lua @@ -0,0 +1,561 @@ +QBCore.Players = {} +QBCore.Player = {} + +QBCore.Player.Login = function(source, citizenid, newData) + if source ~= nil then + if citizenid then + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `players` WHERE `citizenid` = '"..citizenid.."'", function(result) + local PlayerData = result[1] + if PlayerData ~= nil then + PlayerData.money = json.decode(PlayerData.money) + PlayerData.job = json.decode(PlayerData.job) + PlayerData.position = json.decode(PlayerData.position) + PlayerData.metadata = json.decode(PlayerData.metadata) + PlayerData.charinfo = json.decode(PlayerData.charinfo) + if PlayerData.gang ~= nil then + PlayerData.gang = json.decode(PlayerData.gang) + else + PlayerData.gang = {} + end + end + QBCore.Player.CheckPlayerData(source, PlayerData) + end) + else + QBCore.Player.CheckPlayerData(source, newData) + end + return true + else + QBCore.ShowError(GetCurrentResourceName(), "ERROR QBCORE.PLAYER.LOGIN - NO SOURCE GIVEN!") + return false + end +end + +QBCore.Player.CheckPlayerData = function(source, PlayerData) + PlayerData = PlayerData ~= nil and PlayerData or {} + + PlayerData.source = source + PlayerData.citizenid = PlayerData.citizenid ~= nil and PlayerData.citizenid or QBCore.Player.CreateCitizenId() + PlayerData.steam = PlayerData.steam ~= nil and PlayerData.steam or QBCore.Functions.GetIdentifier(source, "steam") + PlayerData.license = PlayerData.license ~= nil and PlayerData.license or QBCore.Functions.GetIdentifier(source, "license") + PlayerData.name = GetPlayerName(source) + PlayerData.cid = PlayerData.cid ~= nil and PlayerData.cid or 1 + + PlayerData.money = PlayerData.money ~= nil and PlayerData.money or {} + for moneytype, startamount in pairs(QBCore.Config.Money.MoneyTypes) do + PlayerData.money[moneytype] = PlayerData.money[moneytype] ~= nil and PlayerData.money[moneytype] or startamount + end + + PlayerData.charinfo = PlayerData.charinfo ~= nil and PlayerData.charinfo or {} + PlayerData.charinfo.firstname = PlayerData.charinfo.firstname ~= nil and PlayerData.charinfo.firstname or "Firstname" + PlayerData.charinfo.lastname = PlayerData.charinfo.lastname ~= nil and PlayerData.charinfo.lastname or "Lastname" + PlayerData.charinfo.birthdate = PlayerData.charinfo.birthdate ~= nil and PlayerData.charinfo.birthdate or "00-00-0000" + PlayerData.charinfo.gender = PlayerData.charinfo.gender ~= nil and PlayerData.charinfo.gender or 0 + PlayerData.charinfo.backstory = PlayerData.charinfo.backstory ~= nil and PlayerData.charinfo.backstory or "placeholder backstory" + PlayerData.charinfo.nationality = PlayerData.charinfo.nationality ~= nil and PlayerData.charinfo.nationality or "Dutch" + PlayerData.charinfo.phone = PlayerData.charinfo.phone ~= nil and PlayerData.charinfo.phone or "06"..math.random(11111111, 99999999) + PlayerData.charinfo.account = PlayerData.charinfo.account ~= nil and PlayerData.charinfo.account or "NL0"..math.random(1,9).."QBUS"..math.random(1111,9999)..math.random(1111,9999)..math.random(11,99) + + PlayerData.metadata = PlayerData.metadata ~= nil and PlayerData.metadata or {} + PlayerData.metadata["hunger"] = PlayerData.metadata["hunger"] ~= nil and PlayerData.metadata["hunger"] or 100 + PlayerData.metadata["thirst"] = PlayerData.metadata["thirst"] ~= nil and PlayerData.metadata["thirst"] or 100 + PlayerData.metadata["stress"] = PlayerData.metadata["stress"] ~= nil and PlayerData.metadata["stress"] or 0 + PlayerData.metadata["isdead"] = PlayerData.metadata["isdead"] ~= nil and PlayerData.metadata["isdead"] or false + PlayerData.metadata["inlaststand"] = PlayerData.metadata["inlaststand"] ~= nil and PlayerData.metadata["inlaststand"] or false + PlayerData.metadata["armor"] = PlayerData.metadata["armor"] ~= nil and PlayerData.metadata["armor"] or 0 + PlayerData.metadata["ishandcuffed"] = PlayerData.metadata["ishandcuffed"] ~= nil and PlayerData.metadata["ishandcuffed"] or false + PlayerData.metadata["tracker"] = PlayerData.metadata["tracker"] ~= nil and PlayerData.metadata["tracker"] or false + PlayerData.metadata["injail"] = PlayerData.metadata["injail"] ~= nil and PlayerData.metadata["injail"] or 0 + PlayerData.metadata["jailitems"] = PlayerData.metadata["jailitems"] ~= nil and PlayerData.metadata["jailitems"] or {} + PlayerData.metadata["status"] = PlayerData.metadata["status"] ~= nil and PlayerData.metadata["status"] or {} + PlayerData.metadata["phone"] = PlayerData.metadata["phone"] ~= nil and PlayerData.metadata["phone"] or {} + PlayerData.metadata["fitbit"] = PlayerData.metadata["fitbit"] ~= nil and PlayerData.metadata["fitbit"] or {} + PlayerData.metadata["commandbinds"] = PlayerData.metadata["commandbinds"] ~= nil and PlayerData.metadata["commandbinds"] or {} + PlayerData.metadata["bloodtype"] = PlayerData.metadata["bloodtype"] ~= nil and PlayerData.metadata["bloodtype"] or QBCore.Config.Player.Bloodtypes[math.random(1, #QBCore.Config.Player.Bloodtypes)] + PlayerData.metadata["dealerrep"] = PlayerData.metadata["dealerrep"] ~= nil and PlayerData.metadata["dealerrep"] or 0 + PlayerData.metadata["craftingrep"] = PlayerData.metadata["craftingrep"] ~= nil and PlayerData.metadata["craftingrep"] or 0 + PlayerData.metadata["attachmentcraftingrep"] = PlayerData.metadata["attachmentcraftingrep"] ~= nil and PlayerData.metadata["attachmentcraftingrep"] or 0 + PlayerData.metadata["currentapartment"] = PlayerData.metadata["currentapartment"] ~= nil and PlayerData.metadata["currentapartment"] or nil + PlayerData.metadata["jobrep"] = PlayerData.metadata["jobrep"] ~= nil and PlayerData.metadata["jobrep"] or { + ["tow"] = 0, + ["trucker"] = 0, + ["taxi"] = 0, + ["hotdog"] = 0, + } + PlayerData.metadata["callsign"] = PlayerData.metadata["callsign"] ~= nil and PlayerData.metadata["callsign"] or "NO CALLSIGN" + PlayerData.metadata["fingerprint"] = PlayerData.metadata["fingerprint"] ~= nil and PlayerData.metadata["fingerprint"] or QBCore.Player.CreateFingerId() + PlayerData.metadata["walletid"] = PlayerData.metadata["walletid"] ~= nil and PlayerData.metadata["walletid"] or QBCore.Player.CreateWalletId() + PlayerData.metadata["criminalrecord"] = PlayerData.metadata["criminalrecord"] ~= nil and PlayerData.metadata["criminalrecord"] or { + ["hasRecord"] = false, + ["date"] = nil + } + PlayerData.metadata["licences"] = PlayerData.metadata["licences"] ~= nil and PlayerData.metadata["licences"] or { + ["driver"] = true, + ["business"] = false + } + PlayerData.metadata["inside"] = PlayerData.metadata["inside"] ~= nil and PlayerData.metadata["inside"] or { + house = nil, + apartment = { + apartmentType = nil, + apartmentId = nil, + } + } + PlayerData.metadata["phonedata"] = PlayerData.metadata["phonedata"] ~= nil and PlayerData.metadata["phonedata"] or { + SerialNumber = QBCore.Player.CreateSerialNumber(), + InstalledApps = {}, + } + + PlayerData.job = PlayerData.job ~= nil and PlayerData.job or {} + PlayerData.job.name = PlayerData.job.name ~= nil and PlayerData.job.name or "unemployed" + PlayerData.job.label = PlayerData.job.label ~= nil and PlayerData.job.label or "unemployed" + PlayerData.job.payment = PlayerData.job.payment ~= nil and PlayerData.job.payment or 10 + PlayerData.job.onduty = PlayerData.job.onduty ~= nil and PlayerData.job.onduty or true + + PlayerData.gang = PlayerData.gang ~= nil and PlayerData.gang or {} + PlayerData.gang.name = PlayerData.gang.name ~= nil and PlayerData.gang.name or "geen" + PlayerData.gang.label = PlayerData.gang.label ~= nil and PlayerData.gang.label or "Geen Gang" + + PlayerData.position = PlayerData.position ~= nil and PlayerData.position or QBConfig.DefaultSpawn + PlayerData.LoggedIn = true + + PlayerData = QBCore.Player.LoadInventory(PlayerData) + QBCore.Player.CreatePlayer(PlayerData) +end + +QBCore.Player.CreatePlayer = function(PlayerData) + local self = {} + self.Functions = {} + self.PlayerData = PlayerData + + self.Functions.UpdatePlayerData = function() + TriggerClientEvent("QBCore:Player:SetPlayerData", self.PlayerData.source, self.PlayerData) + QBCore.Commands.Refresh(self.PlayerData.source) + end + + self.Functions.SetJob = function(job) + local job = job:lower() + local grade = tonumber(grade) + if QBCore.Shared.Jobs[job] ~= nil then + self.PlayerData.job.name = job + self.PlayerData.job.label = QBCore.Shared.Jobs[job].label + self.PlayerData.job.payment = QBCore.Shared.Jobs[job].payment + self.PlayerData.job.onduty = QBCore.Shared.Jobs[job].defaultDuty + self.Functions.UpdatePlayerData() + TriggerClientEvent("QBCore:Client:OnJobUpdate", self.PlayerData.source, self.PlayerData.job) + end + end + + self.Functions.SetGang = function(gang) + local gang = gang:lower() + if QBCore.Shared.Gangs[gang] ~= nil then + self.PlayerData.gang.name = gang + self.PlayerData.gang.label = QBCore.Shared.Gangs[gang].label + self.Functions.UpdatePlayerData() + TriggerClientEvent("QBCore:Client:OnGangUpdate", self.PlayerData.source, self.PlayerData.gang) + end + end + + self.Functions.SetJobDuty = function(onDuty) + self.PlayerData.job.onduty = onDuty + self.Functions.UpdatePlayerData() + end + + self.Functions.SetMetaData = function(meta, val) + local meta = meta:lower() + if val ~= nil then + self.PlayerData.metadata[meta] = val + self.Functions.UpdatePlayerData() + end + end + + self.Functions.AddJobReputation = function(amount) + local amount = tonumber(amount) + self.PlayerData.metadata["jobrep"][self.PlayerData.job.name] = self.PlayerData.metadata["jobrep"][self.PlayerData.job.name] + amount + self.Functions.UpdatePlayerData() + end + + self.Functions.AddMoney = function(moneytype, amount, reason) + reason = reason ~= nil and reason or "unkown" + local moneytype = moneytype:lower() + local amount = tonumber(amount) + if amount < 0 then return end + if self.PlayerData.money[moneytype] ~= nil then + self.PlayerData.money[moneytype] = self.PlayerData.money[moneytype]+amount + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "moneyadded", {amount=amount, moneytype=moneytype, newbalance=self.PlayerData.money[moneytype], reason=reason}) + if amount > 100000 then + TriggerEvent("qb-log:server:CreateLog", "playermoney", "AddMoney", "lightgreen", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** €"..amount .. " ("..moneytype..") added, new "..moneytype.." balance: "..self.PlayerData.money[moneytype], true) + else + TriggerEvent("qb-log:server:CreateLog", "playermoney", "AddMoney", "lightgreen", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** €"..amount .. " ("..moneytype..") added, new "..moneytype.." balance: "..self.PlayerData.money[moneytype]) + end + TriggerClientEvent("hud:client:OnMoneyChange", self.PlayerData.source, moneytype, amount, false) + return true + end + return false + end + + self.Functions.RemoveMoney = function(moneytype, amount, reason) + reason = reason ~= nil and reason or "unkown" + local moneytype = moneytype:lower() + local amount = tonumber(amount) + if amount < 0 then return end + if self.PlayerData.money[moneytype] ~= nil then + for _, mtype in pairs(QBCore.Config.Money.DontAllowMinus) do + if mtype == moneytype then + if self.PlayerData.money[moneytype] - amount < 0 then return false end + end + end + self.PlayerData.money[moneytype] = self.PlayerData.money[moneytype] - amount + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "moneyremoved", {amount=amount, moneytype=moneytype, newbalance=self.PlayerData.money[moneytype], reason=reason}) + if amount > 100000 then + TriggerEvent("qb-log:server:CreateLog", "playermoney", "RemoveMoney", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** €"..amount .. " ("..moneytype..") removed, new "..moneytype.." balance: "..self.PlayerData.money[moneytype], true) + else + TriggerEvent("qb-log:server:CreateLog", "playermoney", "RemoveMoney", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** €"..amount .. " ("..moneytype..") removed, new "..moneytype.." balance: "..self.PlayerData.money[moneytype]) + end + TriggerClientEvent("hud:client:OnMoneyChange", self.PlayerData.source, moneytype, amount, true) + TriggerClientEvent('qb-phone_new:client:RemoveBankMoney', self.PlayerData.source, amount) + return true + end + return false + end + + self.Functions.SetMoney = function(moneytype, amount, reason) + reason = reason ~= nil and reason or "unkown" + local moneytype = moneytype:lower() + local amount = tonumber(amount) + if amount < 0 then return end + if self.PlayerData.money[moneytype] ~= nil then + self.PlayerData.money[moneytype] = amount + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "moneyset", {amount=amount, moneytype=moneytype, newbalance=self.PlayerData.money[moneytype], reason=reason}) + TriggerEvent("qb-log:server:CreateLog", "playermoney", "SetMoney", "green", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** €"..amount .. " ("..moneytype..") gezet, nieuw "..moneytype.." balans: "..self.PlayerData.money[moneytype]) + return true + end + return false + end + + self.Functions.AddItem = function(item, amount, slot, info) + local totalWeight = QBCore.Player.GetTotalWeight(self.PlayerData.items) + local itemInfo = QBCore.Shared.Items[item:lower()] + if itemInfo == nil then TriggerClientEvent('chatMessage', -1, "SYSTEM", "warning", "No item found??") return end + local amount = tonumber(amount) + local slot = tonumber(slot) ~= nil and tonumber(slot) or QBCore.Player.GetFirstSlotByItem(self.PlayerData.items, item) + if itemInfo["type"] == "weapon" and info == nil then + info = { + serie = tostring(QBCore.Shared.RandomInt(2) .. QBCore.Shared.RandomStr(3) .. QBCore.Shared.RandomInt(1) .. QBCore.Shared.RandomStr(2) .. QBCore.Shared.RandomInt(3) .. QBCore.Shared.RandomStr(4)), + } + end + if (totalWeight + (itemInfo["weight"] * amount)) <= QBCore.Config.Player.MaxWeight then + if (slot ~= nil and self.PlayerData.items[slot] ~= nil) and (self.PlayerData.items[slot].name:lower() == item:lower()) and (itemInfo["type"] == "item" and not itemInfo["unique"]) then + self.PlayerData.items[slot].amount = self.PlayerData.items[slot].amount + amount + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemadded", {name=self.PlayerData.items[slot].name, amount=amount, slot=slot, newamount=self.PlayerData.items[slot].amount, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "AddItem", "green", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** got item: [slot:" ..slot.."], itemname: " .. self.PlayerData.items[slot].name .. ", added amount: " .. amount ..", new total amount: ".. self.PlayerData.items[slot].amount) + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " toegevoegd!", "success") + return true + elseif (not itemInfo["unique"] and slot or slot ~= nil and self.PlayerData.items[slot] == nil) then + self.PlayerData.items[slot] = {name = itemInfo["name"], amount = amount, info = info ~= nil and info or "", label = itemInfo["label"], description = itemInfo["description"] ~= nil and itemInfo["description"] or "", weight = itemInfo["weight"], type = itemInfo["type"], unique = itemInfo["unique"], useable = itemInfo["useable"], image = itemInfo["image"], shouldClose = itemInfo["shouldClose"], slot = slot, combinable = itemInfo["combinable"]} + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemadded", {name=self.PlayerData.items[slot].name, amount=amount, slot=slot, newamount=self.PlayerData.items[slot].amount, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "AddItem", "green", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** got item: [slot:" ..slot.."], itemname: " .. self.PlayerData.items[slot].name .. ", added amount: " .. amount ..", new total amount: ".. self.PlayerData.items[slot].amount) + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " toegevoegd!", "success") + return true + elseif (itemInfo["unique"]) or (not slot or slot == nil) or (itemInfo["type"] == "weapon") then + for i = 1, QBConfig.Player.MaxInvSlots, 1 do + if self.PlayerData.items[i] == nil then + self.PlayerData.items[i] = {name = itemInfo["name"], amount = amount, info = info ~= nil and info or "", label = itemInfo["label"], description = itemInfo["description"] ~= nil and itemInfo["description"] or "", weight = itemInfo["weight"], type = itemInfo["type"], unique = itemInfo["unique"], useable = itemInfo["useable"], image = itemInfo["image"], shouldClose = itemInfo["shouldClose"], slot = i, combinable = itemInfo["combinable"]} + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemadded", {name=self.PlayerData.items[i].name, amount=amount, slot=i, newamount=self.PlayerData.items[i].amount, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "AddItem", "green", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** got item: [slot:" ..i.."], itemname: " .. self.PlayerData.items[i].name .. ", added amount: " .. amount ..", new total amount: ".. self.PlayerData.items[i].amount) + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " toegevoegd!", "success") + return true + end + end + end + end + return false + end + + self.Functions.RemoveItem = function(item, amount, slot) + local itemInfo = QBCore.Shared.Items[item:lower()] + local amount = tonumber(amount) + local slot = tonumber(slot) + if slot ~= nil then + if self.PlayerData.items[slot].amount > amount then + self.PlayerData.items[slot].amount = self.PlayerData.items[slot].amount - amount + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemremoved", {name=self.PlayerData.items[slot].name, amount=amount, slot=slot, newamount=self.PlayerData.items[slot].amount, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "RemoveItem", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** lost item: [slot:" ..slot.."], itemname: " .. self.PlayerData.items[slot].name .. ", removed amount: " .. amount ..", new total amount: ".. self.PlayerData.items[slot].amount) + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " verwijderd!", "error") + return true + else + self.PlayerData.items[slot] = nil + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemremoved", {name=item, amount=amount, slot=slot, newamount=0, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "RemoveItem", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** lost item: [slot:" ..slot.."], itemname: " .. item .. ", removed amount: " .. amount ..", item removed") + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " verwijderd!", "error") + return true + end + else + local slots = QBCore.Player.GetSlotsByItem(self.PlayerData.items, item) + local amountToRemove = amount + if slots ~= nil then + for _, slot in pairs(slots) do + if self.PlayerData.items[slot].amount > amountToRemove then + self.PlayerData.items[slot].amount = self.PlayerData.items[slot].amount - amountToRemove + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemremoved", {name=self.PlayerData.items[slot].name, amount=amount, slot=slot, newamount=self.PlayerData.items[slot].amount, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "RemoveItem", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** lost item: [slot:" ..slot.."], itemname: " .. self.PlayerData.items[slot].name .. ", removed amount: " .. amount ..", new total amount: ".. self.PlayerData.items[slot].amount) + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " verwijderd!", "error") + return true + elseif self.PlayerData.items[slot].amount == amountToRemove then + self.PlayerData.items[slot] = nil + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "itemremoved", {name=item, amount=amount, slot=slot, newamount=0, reason="unkown"}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "RemoveItem", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** lost item: [slot:" ..slot.."], itemname: " .. item .. ", removed amount: " .. amount ..", item removed") + --TriggerClientEvent('QBCore:Notify', self.PlayerData.source, itemInfo["label"].. " verwijderd!", "error") + return true + end + end + end + end + return false + end + + self.Functions.SetInventory = function(items) + self.PlayerData.items = items + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "setinventory", {items=json.encode(items)}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "SetInventory", "blue", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** items set: " .. json.encode(items)) + end + + self.Functions.ClearInventory = function() + self.PlayerData.items = {} + self.Functions.UpdatePlayerData() + TriggerEvent("qb-log:server:sendLog", self.PlayerData.citizenid, "clearinventory", {}) + TriggerEvent("qb-log:server:CreateLog", "playerinventory", "ClearInventory", "red", "**"..GetPlayerName(self.PlayerData.source) .. " (citizenid: "..self.PlayerData.citizenid.." | id: "..self.PlayerData.source..")** inventory cleared") + end + + self.Functions.GetItemByName = function(item) + local item = tostring(item):lower() + local slot = QBCore.Player.GetFirstSlotByItem(self.PlayerData.items, item) + if slot ~= nil then + return self.PlayerData.items[slot] + end + return nil + end + + self.Functions.GetItemBySlot = function(slot) + local slot = tonumber(slot) + if self.PlayerData.items[slot] ~= nil then + return self.PlayerData.items[slot] + end + return nil + end + + self.Functions.Save = function() + QBCore.Player.Save(self.PlayerData.source) + end + + QBCore.Players[self.PlayerData.source] = self + QBCore.Player.Save(self.PlayerData.source) + self.Functions.UpdatePlayerData() +end + +QBCore.Player.Save = function(source) + local PlayerData = QBCore.Players[source].PlayerData + if PlayerData ~= nil then + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `players` WHERE `citizenid` = '"..PlayerData.citizenid.."'", function(result) + if result[1] == nil then + QBCore.Functions.ExecuteSql(true, "INSERT INTO `players` (`citizenid`, `cid`, `steam`, `license`, `name`, `money`, `charinfo`, `job`, `gang`, `position`, `metadata`) VALUES ('"..PlayerData.citizenid.."', '"..tonumber(PlayerData.cid).."', '"..PlayerData.steam.."', '"..PlayerData.license.."', '"..PlayerData.name.."', '"..json.encode(PlayerData.money).."', '"..QBCore.EscapeSqli(json.encode(PlayerData.charinfo)).."', '"..json.encode(PlayerData.job).."', '"..json.encode(PlayerData.gang).."', '"..json.encode(PlayerData.position).."', '"..json.encode(PlayerData.metadata).."')") + else + QBCore.Functions.ExecuteSql(true, "UPDATE `players` SET steam='"..PlayerData.steam.."',license='"..PlayerData.license.."',name='"..PlayerData.name.."',money='"..json.encode(PlayerData.money).."',charinfo='"..QBCore.EscapeSqli(json.encode(PlayerData.charinfo)).."',job='"..json.encode(PlayerData.job).."',gang='"..json.encode(PlayerData.gang).."', position='"..json.encode(PlayerData.position).."',metadata='"..json.encode(PlayerData.metadata).."' WHERE `citizenid` = '"..PlayerData.citizenid.."'") + end + QBCore.Player.SaveInventory(source) + end) + QBCore.ShowSuccess(GetCurrentResourceName(), PlayerData.name .." PLAYER SAVED!") + else + QBCore.ShowError(GetCurrentResourceName(), "ERROR QBCORE.PLAYER.SAVE - PLAYERDATA IS EMPTY!") + end +end + +QBCore.Player.Logout = function(source) + TriggerClientEvent('QBCore:Client:OnPlayerUnload', source) + TriggerClientEvent("QBCore:Player:UpdatePlayerData", source) + Citizen.Wait(200) + -- TriggerEvent('QBCore:Server:OnPlayerUnload') + -- QBCore.Players[source].Functions.Save() + QBCore.Players[source] = nil +end + +QBCore.Player.DeleteCharacter = function(source, citizenid) + QBCore.Functions.ExecuteSql(true, "DELETE FROM `players` WHERE `citizenid` = '"..citizenid.."'") + TriggerEvent("qb-log:server:sendLog", citizenid, "characterdeleted", {}) + TriggerEvent("qb-log:server:CreateLog", "joinleave", "Character Deleted", "red", "**".. GetPlayerName(source) .. "** ("..GetPlayerIdentifiers(source)[1]..") deleted **"..citizenid.."**..") +end + +QBCore.Player.LoadInventory = function(PlayerData) + PlayerData.items = {} + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `playeritems` WHERE `citizenid` = '"..PlayerData.citizenid.."'", function(oldInventory) + if oldInventory[1] ~= nil then + for _, item in pairs(oldInventory) do + if item ~= nil then + local itemInfo = QBCore.Shared.Items[item.name:lower()] + PlayerData.items[item.slot] = {name = itemInfo["name"], amount = item.amount, info = json.decode(item.info) ~= nil and json.decode(item.info) or "", label = itemInfo["label"], description = itemInfo["description"] ~= nil and itemInfo["description"] or "", weight = itemInfo["weight"], type = itemInfo["type"], unique = itemInfo["unique"], useable = itemInfo["useable"], image = itemInfo["image"], shouldClose = itemInfo["shouldClose"], slot = item.slot, combinable = itemInfo["combinable"]} + end + Citizen.Wait(1) + end + QBCore.Functions.ExecuteSql(true, "DELETE FROM `playeritems` WHERE `citizenid` = '"..PlayerData.citizenid.."'") + else + QBCore.Functions.ExecuteSql(true, "SELECT * FROM `players` WHERE `citizenid` = '"..PlayerData.citizenid.."'", function(result) + if result[1] ~= nil then + if result[1].inventory ~= nil then + plyInventory = json.decode(result[1].inventory) + if next(plyInventory) ~= nil then + for _, item in pairs(plyInventory) do + if item ~= nil then + local itemInfo = QBCore.Shared.Items[item.name:lower()] + PlayerData.items[item.slot] = { + name = itemInfo["name"], + amount = item.amount, + info = item.info ~= nil and item.info or "", + label = itemInfo["label"], + description = itemInfo["description"] ~= nil and itemInfo["description"] or "", + weight = itemInfo["weight"], + type = itemInfo["type"], + unique = itemInfo["unique"], + useable = itemInfo["useable"], + image = itemInfo["image"], + shouldClose = itemInfo["shouldClose"], + slot = item.slot, + combinable = itemInfo["combinable"] + } + end + end + end + end + end + end) + end + end) + return PlayerData +end + +QBCore.Player.SaveInventory = function(source) + if QBCore.Players[source] ~= nil then + local PlayerData = QBCore.Players[source].PlayerData + local items = PlayerData.items + local ItemsJson = {} + if items ~= nil and next(items) ~= nil then + for slot, item in pairs(items) do + if items[slot] ~= nil then + table.insert(ItemsJson, { + name = item.name, + amount = item.amount, + info = item.info, + type = item.type, + slot = slot, + }) + end + end + + QBCore.Functions.ExecuteSql(true, "UPDATE `players` SET `inventory` = '"..QBCore.EscapeSqli(json.encode(ItemsJson)).."' WHERE `citizenid` = '"..PlayerData.citizenid.."'") + end + end +end + +QBCore.Player.GetTotalWeight = function(items) + local weight = 0 + if items ~= nil then + for slot, item in pairs(items) do + weight = weight + (item.weight * item.amount) + end + end + return tonumber(weight) +end + +QBCore.Player.GetSlotsByItem = function(items, itemName) + local slotsFound = {} + if items ~= nil then + for slot, item in pairs(items) do + if item.name:lower() == itemName:lower() then + table.insert(slotsFound, slot) + end + end + end + return slotsFound +end + +QBCore.Player.GetFirstSlotByItem = function(items, itemName) + if items ~= nil then + for slot, item in pairs(items) do + if item.name:lower() == itemName:lower() then + return tonumber(slot) + end + end + end + return nil +end + +QBCore.Player.CreateCitizenId = function() + local UniqueFound = false + local CitizenId = nil + + while not UniqueFound do + CitizenId = tostring(QBCore.Shared.RandomStr(3) .. QBCore.Shared.RandomInt(5)):upper() + QBCore.Functions.ExecuteSql(true, "SELECT COUNT(*) as count FROM `players` WHERE `citizenid` = '"..CitizenId.."'", function(result) + if result[1].count == 0 then + UniqueFound = true + end + end) + end + return CitizenId +end + +QBCore.Player.CreateFingerId = function() + local UniqueFound = false + local FingerId = nil + while not UniqueFound do + FingerId = tostring(QBCore.Shared.RandomStr(2) .. QBCore.Shared.RandomInt(3) .. QBCore.Shared.RandomStr(1) .. QBCore.Shared.RandomInt(2) .. QBCore.Shared.RandomStr(3) .. QBCore.Shared.RandomInt(4)) + QBCore.Functions.ExecuteSql(true, "SELECT COUNT(*) as count FROM `players` WHERE `metadata` LIKE '%"..FingerId.."%'", function(result) + if result[1].count == 0 then + UniqueFound = true + end + end) + end + return FingerId +end + +QBCore.Player.CreateWalletId = function() + local UniqueFound = false + local WalletId = nil + while not UniqueFound do + WalletId = "QB-"..math.random(11111111, 99999999) + QBCore.Functions.ExecuteSql(true, "SELECT COUNT(*) as count FROM `players` WHERE `metadata` LIKE '%"..WalletId.."%'", function(result) + if result[1].count == 0 then + UniqueFound = true + end + end) + end + return WalletId +end + +QBCore.Player.CreateSerialNumber = function() + local UniqueFound = false + local SerialNumber = nil + + while not UniqueFound do + SerialNumber = math.random(11111111, 99999999) + QBCore.Functions.ExecuteSql(true, "SELECT COUNT(*) as count FROM players WHERE metadata LIKE '%"..SerialNumber.."%'", function(result) + if result[1].count == 0 then + UniqueFound = true + end + end) + end + return SerialNumber +end + +QBCore.EscapeSqli = function(str) + local replacements = { ['"'] = '\\"', ["'"] = "\\'" } + return str:gsub( "['\"]", replacements ) -- or string.gsub( source, "['\"]", replacements ) +end \ No newline at end of file diff --git a/qb-core/shared.lua b/qb-core/shared.lua new file mode 100644 index 0000000..1bdf824 --- /dev/null +++ b/qb-core/shared.lua @@ -0,0 +1,6273 @@ +QBShared = {} + +local StringCharset = {} +local NumberCharset = {} + +for i = 48, 57 do table.insert(NumberCharset, string.char(i)) end +for i = 65, 90 do table.insert(StringCharset, string.char(i)) end +for i = 97, 122 do table.insert(StringCharset, string.char(i)) end + +QBShared.RandomStr = function(length) + if length > 0 then + return QBShared.RandomStr(length-1) .. StringCharset[math.random(1, #StringCharset)] + else + return '' + end +end + +QBShared.RandomInt = function(length) + if length > 0 then + return QBShared.RandomInt(length-1) .. NumberCharset[math.random(1, #NumberCharset)] + else + return '' + end +end + +QBShared.SplitStr = function(str, delimiter) + local result = { } + local from = 1 + local delim_from, delim_to = string.find( str, delimiter, from ) + while delim_from do + table.insert( result, string.sub( str, from , delim_from-1 ) ) + from = delim_to + 1 + delim_from, delim_to = string.find( str, delimiter, from ) + end + table.insert( result, string.sub( str, from ) ) + return result +end + +QBShared.Items = { + -- // WEAPONS + ["weapon_unarmed"] = {["name"] = "weapon_unarmed", ["label"] = "Hands", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_flashlight"] = {["name"] = "weapon_flashlight", ["label"] = "Flashlight", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "flashlight.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_knife"] = {["name"] = "weapon_knife", ["label"] = "Knife", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "knife.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_nightstick"] = {["name"] = "weapon_nightstick", ["label"] = "Nightstick", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "nightstick.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_hammer"] = {["name"] = "weapon_hammer", ["label"] = "Hammer", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "weapon_hammer.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_bat"] = {["name"] = "weapon_bat", ["label"] = "Bat", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "baseballbat.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_golfclub"] = {["name"] = "weapon_golfclub", ["label"] = "Golfclub", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_crowbar"] = {["name"] = "weapon_crowbar", ["label"] = "Crowbar", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_pistol"] = {["name"] = "weapon_pistol", ["label"] = "Walther P99", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "pistol.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_pistol_mk2"] = {["name"] = "weapon_pistol_mk2", ["label"] = "Pistol Mk II", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "pistolmk2.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_combatpistol"] = {["name"] = "weapon_combatpistol", ["label"] = "Combat Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "combatpistol.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_appistol"] = {["name"] = "weapon_appistol", ["label"] = "AP Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "appistol.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_pistol50"] = {["name"] = "weapon_pistol50", ["label"] = "Pistol .50 Cal", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_microsmg"] = {["name"] = "weapon_microsmg", ["label"] = "Micro SMG", ["weight"] = 2200, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "microsmg.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_smg"] = {["name"] = "weapon_smg", ["label"] = "SMG", ["weight"] = 3000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "smg.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_assaultsmg"] = {["name"] = "weapon_assaultsmg", ["label"] = "Assault SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_assaultrifle"] = {["name"] = "weapon_assaultrifle", ["label"] = "Assault Rifle", ["weight"] = 5000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "assaultrifle.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_carbinerifle"] = {["name"] = "weapon_carbinerifle", ["label"] = "Carbine Rifle", ["weight"] = 4000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "carbinerifle.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_advancedrifle"] = {["name"] = "weapon_advancedrifle", ["label"] = "Advanced Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_mg"] = {["name"] = "weapon_mg", ["label"] = "Machinegun", ["weight"] = 20000, ["type"] = "weapon", ["ammotype"] = "AMMO_MG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_combatmg"] = {["name"] = "weapon_combatmg", ["label"] = "Combat MG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_pumpshotgun"] = {["name"] = "weapon_pumpshotgun", ["label"] = "Pump Shotgun", ["weight"] = 3800, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "pumpshotgun.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_sawnoffshotgun"] = {["name"] = "weapon_sawnoffshotgun", ["label"] = "Sawn-off Shotgun", ["weight"] = 2000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "sawoffshotgun.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_assaultshotgun"] = {["name"] = "weapon_assaultshotgun", ["label"] = "Assault Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_bullpupshotgun"] = {["name"] = "weapon_bullpupshotgun", ["label"] = "Bullpup Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_stungun"] = {["name"] = "weapon_stungun", ["label"] = "Taser", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "stungun.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_sniperrifle"] = {["name"] = "weapon_sniperrifle", ["label"] = "Sniper Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_heavysniper"] = {["name"] = "weapon_heavysniper", ["label"] = "Heavy Sniper", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_remotesniper"] = {["name"] = "weapon_remotesniper", ["label"] = "Remote Sniper", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER_REMOTE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_grenadelauncher"] = {["name"] = "weapon_grenadelauncher", ["label"] = "Grenade Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_GRENADELAUNCHER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_grenadelauncher_smoke"] = {["name"] = "weapon_grenadelauncher_smoke", ["label"] = "Smoke Grenade Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_GRENADELAUNCHER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_rpg"] = {["name"] = "weapon_rpg", ["label"] = "RPG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RPG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_minigun"] = {["name"] = "weapon_minigun", ["label"] = "Minigun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MINIGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_grenade"] = {["name"] = "weapon_grenade", ["label"] = "Grenade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_stickybomb"] = {["name"] = "weapon_stickybomb", ["label"] = "C4", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "stickybomb.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_smokegrenade"] = {["name"] = "weapon_smokegrenade", ["label"] = "Smoke Grenade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_bzgas"] = {["name"] = "weapon_bzgas", ["label"] = "BZ Gas", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_molotov"] = {["name"] = "weapon_molotov", ["label"] = "Molotov", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_fireextinguisher"] = {["name"] = "weapon_fireextinguisher", ["label"] = "Fire Extinguisher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "fireext.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_petrolcan"] = {["name"] = "weapon_petrolcan", ["label"] = "Petrol Can", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PETROLCAN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_briefcase"] = {["name"] = "weapon_briefcase", ["label"] = "Briefcase", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_briefcase_02"] = {["name"] = "weapon_briefcase_02", ["label"] = "Briefcase", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_ball"] = {["name"] = "weapon_ball", ["label"] = "Bal", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_BALL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_flare"] = {["name"] = "weapon_flare", ["label"] = "Flare pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_FLARE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_snspistol"] = {["name"] = "weapon_snspistol", ["label"] = "SNS Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "weapon_snspistol.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_bottle"] = {["name"] = "weapon_bottle", ["label"] = "Broken Bottle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_gusenberg"] = {["name"] = "weapon_gusenberg", ["label"] = "Thompson MG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_specialcarbine"] = {["name"] = "weapon_specialcarbine", ["label"] = "Special Carbine", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_heavypistol"] = {["name"] = "weapon_heavypistol", ["label"] = "Heavy Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_bullpuprifle"] = {["name"] = "weapon_bullpuprifle", ["label"] = "Bullpup Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_dagger"] = {["name"] = "weapon_dagger", ["label"] = "Dagger", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_vintagepistol"] = {["name"] = "weapon_vintagepistol", ["label"] = "Vintage Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "weapon_vintagepistol.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_firework"] = {["name"] = "weapon_firework", ["label"] = "Firework Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_musket"] = {["name"] = "weapon_musket", ["label"] = "Musket", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_heavyshotgun"] = {["name"] = "weapon_heavyshotgun", ["label"] = "Heavy Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_marksmanrifle"] = {["name"] = "weapon_marksmanrifle", ["label"] = "Marksman Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_hominglauncher"] = {["name"] = "weapon_hominglauncher", ["label"] = "Homing Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_STINGER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_proxmine"] = {["name"] = "weapon_proxmine", ["label"] = "Proxmine Grenade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_snowball"] = {["name"] = "weapon_snowball", ["label"] = "Snowball", ["weight"] = 0, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "snowball.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_flaregun"] = {["name"] = "weapon_flaregun", ["label"] = "Flare Gun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_FLARE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_garbagebag"] = {["name"] = "weapon_garbagebag", ["label"] = "Garbage Bag", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_handcuffs"] = {["name"] = "weapon_handcuffs", ["label"] = "Handcuffs", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_combatpdw"] = {["name"] = "weapon_combatpdw", ["label"] = "Combat PDW", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_marksmanpistol"] = {["name"] = "weapon_marksmanpistol", ["label"] = "Marksman Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_knuckle"] = {["name"] = "weapon_knuckle", ["label"] = "Knuckle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_hatchet"] = {["name"] = "weapon_hatchet", ["label"] = "Hatchet", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "weapon_hatchet.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_railgun"] = {["name"] = "weapon_railgun", ["label"] = "Railgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_machete"] = {["name"] = "weapon_machete", ["label"] = "Machete", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_machinepistol"] = {["name"] = "weapon_machinepistol", ["label"] = "Tec-9", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "tec9.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_switchblade"] = {["name"] = "weapon_switchblade", ["label"] = "Switchblade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "weapon_switchblade.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_revolver"] = {["name"] = "weapon_revolver", ["label"] = "Revolver", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_dbshotgun"] = {["name"] = "weapon_dbshotgun", ["label"] = "Double-barrel Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_compactrifle"] = {["name"] = "weapon_compactrifle", ["label"] = "Compact Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "weapon_compactrifle.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_autoshotgun"] = {["name"] = "weapon_autoshotgun", ["label"] = "Auto Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_battleaxe"] = {["name"] = "weapon_battleaxe", ["label"] = "Battle Axe", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_compactlauncher"] = {["name"] = "weapon_compactlauncher", ["label"] = "Compact Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_minismg"] = {["name"] = "weapon_minismg", ["label"] = "Mini SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "weapon_minismg.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_pipebomb"] = {["name"] = "weapon_pipebomb", ["label"] = "Pipe bom", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_poolcue"] = {["name"] = "weapon_poolcue", ["label"] = "Poolcue", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "weapon_poolcue.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_wrench"] = {["name"] = "weapon_wrench", ["label"] = "Wrench", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "weapon_wrench.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_autoshotgun"] = {["name"] = "weapon_autoshotgun", ["label"] = "Sweeper Shotgun", ["weight"] = 3000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "sweepershotgun.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + ["weapon_bread"] = {["name"] = "weapon_bread", ["label"] = "Baquette", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "baquette.png", ["unique"] = true, ["useable"] = false, ["combinable"] = nil, ["description"] = "This is a placeholder description"}, + + + -- // ITEMS // + ["id_card"] = {["name"] = "id_card", ["label"] = "ID Card", ["weight"] = 0, ["type"] = "item", ["image"] = "id_card.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["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, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Pass exclusive to lawyers to show they can represent a suspect."}, + ["tosti"] = {["name"] = "tosti", ["label"] = "Grilled Cheese Sandwich", ["weight"] = 200, ["type"] = "item", ["image"] = "tosti.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "Nice to eat."}, + ["water_bottle"] = {["name"] = "water_bottle", ["label"] = "Bottle of Water", ["weight"] = 500, ["type"] = "item", ["image"] = "water_bottle.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "For all the thirsty out there"}, + ["beer"] = {["name"] = "beer", ["label"] = "Beer", ["weight"] = 500, ["type"] = "item", ["image"] = "beer.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "For all the thirsty out there"}, + ["whiskey"] = {["name"] = "whiskey", ["label"] = "Whiskey", ["weight"] = 500, ["type"] = "item", ["image"] = "whiskey.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["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, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Pump 4 Caffeine"}, + ["kurkakola"] = {["name"] = "kurkakola", ["label"] = "Cola", ["weight"] = 500, ["type"] = "item", ["image"] = "cola.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "For all the thirsty out there"}, + ["twerks_candy"] = {["name"] = "twerks_candy", ["label"] = "Twerks", ["weight"] = 100, ["type"] = "item", ["image"] = "twerks_candy.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Some delicious candy :O"}, + ["joint"] = {["name"] = "joint", ["label"] = "Joint", ["weight"] = 0, ["type"] = "item", ["image"] = "joint.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["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, ["combinable"] = nil, ["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, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Pop those pills baby."}, + ["plastic"] = {["name"] = "plastic", ["label"] = "Plastic", ["weight"] = 100, ["type"] = "item", ["image"] = "plastic.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "RECYCLE! - Greta Thunberg 2019"}, + ["metalscrap"] = {["name"] = "metalscrap", ["label"] = "Metal Scrap", ["weight"] = 100, ["type"] = "item", ["image"] = "metalscrap.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["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, ["combinable"] = nil, ["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, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Some powder to mix with."}, + ["iron"] = {["name"] = "iron", ["label"] = "Iron", ["weight"] = 100, ["type"] = "item", ["image"] = "ironplate.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["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, ["combinable"] = {accept = {"aluminumoxide"}, reward = "thermite", anim = {["dict"] = "anim@amb@business@weed@weed_inspecting_high_dry@", ["lib"] = "weed_inspecting_high_base_inspector", ["text"] = "Mixing powder..", ["timeOut"] = 10000}}, ["description"] = "Some powder to mix with."}, + ["steel"] = {["name"] = "steel", ["label"] = "Steel", ["weight"] = 100, ["type"] = "item", ["image"] = "steel.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Rubber, I believe you can make your own rubber ducky with it :D"}, + ["glass"] = {["name"] = "glass", ["label"] = "Glass", ["weight"] = 100, ["type"] = "item", ["image"] = "glassplate.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "It is very fragile, watch out."}, + ["pistol_ammo"] = {["name"] = "pistol_ammo", ["label"] = "Pistol ammo", ["weight"] = 200, ["type"] = "item", ["image"] = "pistol_ammo.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["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"] = false, ["combinable"] = nil, ["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"] = false, ["combinable"] = nil, ["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"] = false, ["combinable"] = nil, ["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"] = false, ["combinable"] = nil, ["description"] = "Ammo for Machine Guns."}, + ["lockpick"] = {["name"] = "lockpick", ["label"] = "Lockpick", ["weight"] = 300, ["type"] = "item", ["image"] = "lockpick.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = {accept = {"screwdriverset"}, reward = "advancedlockpick", anim = {["dict"] = "anim@amb@business@weed@weed_inspecting_high_dry@", ["lib"] = "weed_inspecting_high_base_inspector", ["text"] = "Crafting lockpick", ["timeOut"] = 7500,}}, ["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, ["combinable"] = nil, ["description"] = "If you lose your keys a lot this is very useful.. Also useful to open your beers :)"}, + ["repairkit"] = {["name"] = "repairkit", ["label"] = "Repairkit", ["weight"] = 2500, ["type"] = "item", ["image"] = "repairkit.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "A nice toolbox with stuff to repair your vehicle.. a little better.."}, + ["cleaningkit"] = {["name"] = "cleaningkit", ["label"] = "Cleaning Kit", ["weight"] = 250, ["type"] = "item", ["image"] = "cleaningkit.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A microfiber cloth with some soap will let your car sparkle again!"}, + ["screwdriverset"] = {["name"] = "screwdriverset", ["label"] = "Toolkit", ["weight"] = 1000, ["type"] = "item", ["image"] = "screwdriverset.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "Very useful to screw... screws.."}, + ["drill"] = {["name"] = "drill", ["label"] = "Drill", ["weight"] = 20000, ["type"] = "item", ["image"] = "drill.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "The real deal.."}, + ["weed_white-widow"] = {["name"] = "weed_white-widow", ["label"] = "White Widow 2g", ["weight"] = 200, ["type"] = "item", ["image"] = "weed-baggie.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed bag with 2g White Widow"}, + ["weed_skunk"] = {["name"] = "weed_skunk", ["label"] = "Skunk 2g", ["weight"] = 200, ["type"] = "item", ["image"] = "weed-baggie.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed bag with 2g Skunk"}, + ["weed_purple-haze"] = {["name"] = "weed_purple-haze", ["label"] = "Purple Haze 2g", ["weight"] = 200, ["type"] = "item", ["image"] = "weed-baggie.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed bag with 2g Purple Haze"}, + ["weed_og-kush"] = {["name"] = "weed_og-kush", ["label"] = "OGKush 2g", ["weight"] = 200, ["type"] = "item", ["image"] = "weed-baggie.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed bag with 2g OG Kush"}, + ["weed_amnesia"] = {["name"] = "weed_amnesia", ["label"] = "Amnesia 2g", ["weight"] = 200, ["type"] = "item", ["image"] = "weed-baggie.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed bag with 2g Amnesia"}, + ["weed_ak47"] = {["name"] = "weed_ak47", ["label"] = "AK47 2g", ["weight"] = 200, ["type"] = "item", ["image"] = "weed-baggie.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed bag with 2g AK47"}, + ["weed_white-widow_seed"] = {["name"] = "weed_white-widow_seed", ["label"] = "White Widow Seed", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-plant-seed.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A weed seed of White Widow"}, + ["weed_skunk_seed"] = {["name"] = "weed_skunk_seed", ["label"] = "Skunk Seed", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-plant-seed.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A weed seed of Skunk"}, + ["weed_purple-haze_seed"] = {["name"] = "weed_purple-haze_seed", ["label"] = "Purple Haze Seed", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-plant-seed.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A weed seed of Purple Haze"}, + ["weed_og-kush_seed"] = {["name"] = "weed_og-kush_seed", ["label"] = "OGKush Seed", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-plant-seed.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A weed seed of OG Kush"}, + ["weed_amnesia_seed"] = {["name"] = "weed_amnesia_seed", ["label"] = "Amnesia Seed", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-plant-seed.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A weed seed of Amnesia"}, + ["weed_ak47_seed"] = {["name"] = "weed_ak47_seed", ["label"] = "AK47 Seed", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-plant-seed.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A weed seed of AK47"}, + ["empty_weed_bag"] = {["name"] = "empty_weed_bag", ["label"] = "Empty Weed Bag", ["weight"] = 0, ["type"] = "item", ["image"] = "weed-empty-bag.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A empty bag for weed buds"}, + ["weed_nutrition"] = {["name"] = "weed_nutrition", ["label"] = "Plant Fertilizer", ["weight"] = 2000, ["type"] = "item", ["image"] = "weed_nutrition.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Plant nutrition"}, + ["handcuffs"] = {["name"] = "handcuffs", ["label"] = "Handcuffs", ["weight"] = 100, ["type"] = "item", ["image"] = "handcuffs.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Comes in handy when people misbehave. Maybe it can be used for something else?"}, + ["tunerlaptop"] = {["name"] = "tunerlaptop", ["label"] = "Tunerchip", ["weight"] = 2000, ["type"] = "item", ["image"] = "tunerlaptop.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "With this tunerchip you can get your car on steroids... If you know what you're doing lol"}, + ["empty_evidence_bag"] = {["name"] = "empty_evidence_bag", ["label"] = "Empty Evidence Bag", ["weight"] = 0, ["type"] = "item", ["image"] = "evidence.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "Used a lot to keep evidence. Think about DNA from blood, bullet shells etc."}, + ["filled_evidence_bag"] = {["name"] = "filled_evidence_bag", ["label"] = "Evidence Bag", ["weight"] = 200, ["type"] = "item", ["image"] = "evidence.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "A filled evidence bag to see who committed the crime >:("}, + ["armor"] = {["name"] = "armor", ["label"] = "Armor", ["weight"] = 5000, ["type"] = "item", ["image"] = "armor.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Some protection won't hurt.. right? (One-time use)"}, + ["heavyarmor"] = {["name"] = "heavyarmor", ["label"] = "Heavy Armor", ["weight"] = 5000, ["type"] = "item", ["image"] = "armor.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Some protection won't hurt.. right?"}, + ["weed_brick"] = {["name"] = "weed_brick", ["label"] = "Weed Brick", ["weight"] = 1000, ["type"] = "item", ["image"] = "weed_brick.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "1KG Weed Brick to sell to large customers."}, + ["coke_brick"] = {["name"] = "coke_brick", ["label"] = "Coke Brick", ["weight"] = 1000, ["type"] = "item", ["image"] = "coke_brick.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Heavy package of cocaine, mostly used for deals and takes a lot of space."}, + ["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, ["combinable"] = nil, ["description"] = "A lot of grams cocaine, mostly used for deals and takes a lot of space."}, + ["sandwich"] = {["name"] = "sandwich", ["label"] = "Sandwich", ["weight"] = 200, ["type"] = "item", ["image"] = "sandwich.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Nice bread for your stomach."}, + ["electronickit"] = {["name"] = "electronickit", ["label"] = "Electronic Kit", ["weight"] = 100, ["type"] = "item", ["image"] = "electronickit.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = {accept = {"gatecrack"}, reward = "trojan_usb", anim = nil}, ["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, ["combinable"] = nil, ["description"] = "Handy software to tear down some fences."}, + ["rolex"] = {["name"] = "rolex", ["label"] = "Golden Watch", ["weight"] = 1500, ["type"] = "item", ["image"] = "rolex_watch.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "A diamond ring 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, ["combinable"] = nil, ["description"] = "A golden chain seems like the jackpot to me!"}, + ["10kgoldchain"] = {["name"] = "10kgoldchain", ["label"] = "10k Gold Chain", ["weight"] = 2000, ["type"] = "item", ["image"] = "10kgoldchain.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "10 carat golden chain."}, + ["trojan_usb"] = {["name"] = "trojan_usb", ["label"] = "Trojan USB", ["weight"] = 0, ["type"] = "item", ["image"] = "usb_device.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Handy software to shut down some systems."}, + ["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, ["combinable"] = nil, ["description"] = "A security card belonging to the Blaine County Savings Bank."}, + ["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, ["combinable"] = nil, ["description"] = "A security card belonging to the Pacific Savings Bank."}, + ["police_stormram"] = {["name"] = "police_stormram", ["label"] = "Stormram", ["weight"] = 18000, ["type"] = "item", ["image"] = "police_stormram.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A nice tool to break into doors."}, + ["rolling_paper"] = {["name"] = "rolling_paper", ["label"] = "Rolling Paper", ["weight"] = 0, ["type"] = "item", ["image"] = "rolling_paper.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = {accept = {"weed_white-widow", "weed_skunk", "weed_purple-haze", "weed_og-kush", "weed_amnesia", "weed_ak47"}, reward = "joint", anim = {["dict"] = "anim@amb@business@weed@weed_inspecting_high_dry@", ["lib"] = "weed_inspecting_high_base_inspector", ["text"] = "Rolling joint", ["timeOut"] = 5000,}}, ["description"] = "This is a placeholder description"}, + ["radio"] = {["name"] = "radio", ["label"] = "Radio", ["weight"] = 2000, ["type"] = "item", ["image"] = "radio.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "You can communicat with this through a signaal"}, + ["stickynote"] = {["name"] = "stickynote", ["label"] = "Sticky note", ["weight"] = 0, ["type"] = "item", ["image"] = "stickynote.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "Sometimes handy to remember something :)"}, + ["phone"] = {["name"] = "phone", ["label"] = "Phone", ["weight"] = 700, ["type"] = "item", ["image"] = "phone.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "Neat phone ya got there"}, + ["fitbit"] = {["name"] = "fitbit", ["label"] = "Fitbit", ["weight"] = 500, ["type"] = "item", ["image"] = "fitbit.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "I like fitbit"}, + ["thermite"] = {["name"] = "thermite", ["label"] = "Thermite", ["weight"] = 1000, ["type"] = "item", ["image"] = "thermite.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Sometimes you'd want everything to burn.."}, + ["goldbar"] = {["name"] = "goldbar", ["label"] = "Gold Bar", ["weight"] = 7000, ["type"] = "item", ["image"] = "goldbar.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Looks expensive to me o.o"}, + ["cryptostick"] = {["name"] = "cryptostick", ["label"] = "Crypto Stick", ["weight"] = 200, ["type"] = "item", ["image"] = "cryptostick.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Why would someone ever buy money that doesn't exist.. How many would it contain..?"}, + ["radioscanner"] = {["name"] = "radioscanner", ["label"] = "Radio Scanner", ["weight"] = 1000, ["type"] = "item", ["image"] = "radioscanner.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "With this you can get some police alerts. Not 100% effective.."}, + ["dendrogyra_coral"] = {["name"] = "dendrogyra_coral", ["label"] = "Dendrogyra", ["weight"] = 1000, ["type"] = "item", ["image"] = "dendrogyra_coral.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "#Coral yow"}, + ["antipatharia_coral"] = {["name"] = "antipatharia_coral", ["label"] = "Antipatharia", ["weight"] = 1000, ["type"] = "item", ["image"] = "antipatharia_coral.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "#Coral yow"}, + ["jerry_can"] = {["name"] = "jerry_can", ["label"] = "Jerrycan 20L", ["weight"] = 20000, ["type"] = "item", ["image"] = "jerry_can.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "#Fuel like #YOLO"}, + ["moneybag"] = {["name"] = "moneybag", ["label"] = "Money Bag", ["weight"] = 0, ["type"] = "item", ["image"] = "moneybag.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A bag with cash."}, + ["diving_gear"] = {["name"] = "diving_gear", ["label"] = "Diving Gear", ["weight"] = 30000, ["type"] = "item", ["image"] = "diving_gear.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Hmm lets dive lol yay."}, + ["parachute"] = {["name"] = "parachute", ["label"] = "Parachute", ["weight"] = 30000, ["type"] = "item", ["image"] = "parachute.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "The sky is the limit! Woohoo!"}, + -- ["smoketrailred"] = {["name"] = "smoketrailred", ["label"] = "Smoke Trail Red", ["weight"] = 50, ["type"] = "item", ["image"] = "smoketrailred.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Leaves a red trail when flying. Woot!"}, + ["snspistol_part_1"] = {["name"] = "snspistol_part_1", ["label"] = "SNS Loop", ["weight"] = 1500, ["type"] = "item", ["image"] = "snspistol_part_1.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Loop of a SNS Pistol"}, + ["snspistol_part_2"] = {["name"] = "snspistol_part_2", ["label"] = "SNS Trigger", ["weight"] = 1500, ["type"] = "item", ["image"] = "snspistol_part_2.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Trigger of a SNS Pistol"}, + ["snspistol_part_3"] = {["name"] = "snspistol_part_3", ["label"] = "SNS Clip", ["weight"] = 1500, ["type"] = "item", ["image"] = "snspistol_part_3.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = {accept = {"snspistol_part_1"}, reward = "snspistol_stage_1", anim = {["dict"] = "anim@amb@business@weed@weed_inspecting_high_dry@", ["lib"] = "weed_inspecting_high_base_inspector", ["text"] = "Atttaching attachments", ["timeOut"] = 15000,}}, ["description"] = "Clip of a SNS Pistol"}, + ["snspistol_stage_1"] = {["name"] = "snspistol_stage_1", ["label"] = "SNS Body", ["weight"] = 2500, ["type"] = "item", ["image"] = "snspistol_stage_1.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = {accept = {"snspistol_part_2"}, reward = "weapon_snspistol", anim = {["dict"] = "anim@amb@business@weed@weed_inspecting_high_dry@", ["lib"] = "weed_inspecting_high_base_inspector", ["text"] = "Attaching attachments", ["timeOut"] = 15000,}}, ["description"] = "SNS w/ Loop & Clip"}, + ["bandage"] = {["name"] = "bandage", ["label"] = "Bandage", ["weight"] = 0, ["type"] = "item", ["image"] = "bandage.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A bandage works every time"}, + ["painkillers"] = {["name"] = "painkillers", ["label"] = "Painkillers", ["weight"] = 0, ["type"] = "item", ["image"] = "painkillers.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "For pain you can't stand anymore, take this pill that'd make you feel great again"}, + ["binoculars"] = {["name"] = "binoculars", ["label"] = "Binoculars", ["weight"] = 600, ["type"] = "item", ["image"] = "binoculars.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Sneaky Breaky.."}, + ["snowball"] = {["name"] = "snowball", ["label"] = "Snowball", ["weight"] = 0, ["type"] = "item", ["image"] = "snowball.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Should have catched it :D"}, + ["firework1"] = {["name"] = "firework1", ["label"] = "2Brothers", ["weight"] = 1000, ["type"] = "item", ["image"] = "firework1.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Happy and healthy 2020 <3 Lua Leaks"}, + ["firework2"] = {["name"] = "firework2", ["label"] = "Poppelers", ["weight"] = 1000, ["type"] = "item", ["image"] = "firework2.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Happy and healthy 2020 <3 Lua Leaks"}, + ["firework3"] = {["name"] = "firework3", ["label"] = "WipeOut", ["weight"] = 1000, ["type"] = "item", ["image"] = "firework3.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Happy and healthy 2020 <3 Lua Leaks"}, + ["firework4"] = {["name"] = "firework4", ["label"] = "Weeping Willow", ["weight"] = 1000, ["type"] = "item", ["image"] = "firework4.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Happy and healthy 2020 <3 Lua Leaks"}, + ["iphone"] = {["name"] = "iphone", ["label"] = "iPhone", ["weight"] = 1000, ["type"] = "item", ["image"] = "iphone.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Very expensive phone"}, + ["samsungphone"] = {["name"] = "samsungphone", ["label"] = "Samsung S10", ["weight"] = 1000, ["type"] = "item", ["image"] = "samsungphone.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Very expensive phone"}, + ["laptop"] = {["name"] = "laptop", ["label"] = "Laptop", ["weight"] = 4000, ["type"] = "item", ["image"] = "laptop.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Expensive game right?"}, + ["tablet"] = {["name"] = "tablet", ["label"] = "Tablet", ["weight"] = 2000, ["type"] = "item", ["image"] = "tablet.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Expensive game right?"}, + ["lighter"] = {["name"] = "lighter", ["label"] = "Lighter", ["weight"] = 0, ["type"] = "item", ["image"] = "lighter.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["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, ["combinable"] = nil, ["description"] = "Certificate that proves you own certain stuff"}, + ["nitrous"] = {["name"] = "nitrous", ["label"] = "Nitrous", ["weight"] = 1000, ["type"] = "item", ["image"] = "nitrous.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Speed up, gas pedal! :D"}, + ["walkstick"] = {["name"] = "walkstick", ["label"] = "Walk Stick", ["weight"] = 1000, ["type"] = "item", ["image"] = "walkstick.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Walking stick for ya'll grannies out there.. HAHA"}, + ["harness"] = {["name"] = "harness", ["label"] = "Race Harness", ["weight"] = 1000, ["type"] = "item", ["image"] = "harness.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Racing Harness so no matter what you stay in the caaaaaaaaaaaaaar.."}, + ["markedbills"] = {["name"] = "markedbills", ["label"] = "Marked Money", ["weight"] = 1000, ["type"] = "item", ["image"] = "markedbills.png", ["unique"] = true, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["pistol_suppressor"] = {["name"] = "pistol_suppressor", ["label"] = "Pistol Silencer", ["weight"] = 1000, ["type"] = "item", ["image"] = "pistol_suppressor.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["pistol_extendedclip"] = {["name"] = "pistol_extendedclip", ["label"] = "Pistol EXT Clip", ["weight"] = 1000, ["type"] = "item", ["image"] = "pistol_extendedclip.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["smg_extendedclip"] = {["name"] = "smg_extendedclip", ["label"] = "SMG EXT Clip", ["weight"] = 1000, ["type"] = "item", ["image"] = "smg_extendedclip.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["smg_flashlight"] = {["name"] = "smg_flashlight", ["label"] = "SMG Flashlight", ["weight"] = 1000, ["type"] = "item", ["image"] = "smg_flashlight.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["smg_scope"] = {["name"] = "smg_scope", ["label"] = "SMG Scope", ["weight"] = 1000, ["type"] = "item", ["image"] = "smg_scope.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["smg_suppressor"] = {["name"] = "smg_suppressor", ["label"] = "SMG Silencer", ["weight"] = 1000, ["type"] = "item", ["image"] = "smg_suppressor.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["rifle_extendedclip"] = {["name"] = "rifle_extendedclip", ["label"] = "Rifle EXT Clip", ["weight"] = 1000, ["type"] = "item", ["image"] = "rifle_extendedclip.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["rifle_drummag"] = {["name"] = "rifle_drummag", ["label"] = "Rifle Drummag", ["weight"] = 1000, ["type"] = "item", ["image"] = "rifle_drummag.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["rifle_suppressor"] = {["name"] = "rifle_suppressor", ["label"] = "Rifle Silencer", ["weight"] = 1000, ["type"] = "item", ["image"] = "rifle_suppressor.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Money?"}, + ["labkey"] = {["name"] = "labkey", ["label"] = "Key", ["weight"] = 500, ["type"] = "item", ["image"] = "labkey.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Key for a lock..?"}, + ["pinger"] = {["name"] = "pinger", ["label"] = "Pinger", ["weight"] = 1000, ["type"] = "item", ["image"] = "pinger.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "With a pinger and your phone you can send out your location"}, + ["firstaid"] = {["name"] = "firstaid", ["label"] = "First Aid", ["weight"] = 2500, ["type"] = "item", ["image"] = "firstaid.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "You can use this First Aid kit to get people back on their feet."}, + ["printerdocument"] = {["name"] = "printerdocument", ["label"] = "Document", ["weight"] = 500, ["type"] = "item", ["image"] = "printerdocument.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A nice document"}, +} + +-- // HASH WEAPON ITEMS, NEED SOMETIMES TO GET INFO FOR CLIENT + +QBShared.Weapons = { + -- // WEAPONS + [GetHashKey("weapon_unarmed")] = {["name"] = "weapon_unarmed", ["label"] = "Fists", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_knife")] = {["name"] = "weapon_knife", ["label"] = "Knife", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_nightstick")] = {["name"] = "weapon_nightstick", ["label"] = "Nightstick", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_hammer")] = {["name"] = "weapon_hammer", ["label"] = "Hammer", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_bat")] = {["name"] = "weapon_bat", ["label"] = "Bat", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_golfclub")] = {["name"] = "weapon_golfclub", ["label"] = "Golfclub", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_crowbar")] = {["name"] = "weapon_crowbar", ["label"] = "Crowbar", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_pistol")] = {["name"] = "weapon_pistol", ["label"] = "Walther P99", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_pistol_mk2")] = {["name"] = "weapon_pistol_mk2", ["label"] = "Pistol Mk II", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "pistolmk2.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_combatpistol")] = {["name"] = "weapon_combatpistol", ["label"] = "Combat Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "combatpistol.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_appistol")] = {["name"] = "weapon_appistol", ["label"] = "AP Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_pistol50")] = {["name"] = "weapon_pistol50", ["label"] = "Pistol .50 Cal", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_microsmg")] = {["name"] = "weapon_microsmg", ["label"] = "Micro SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_smg")] = {["name"] = "weapon_smg", ["label"] = "SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_assaultsmg")] = {["name"] = "weapon_assaultsmg", ["label"] = "Assault SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_assaultrifle")] = {["name"] = "weapon_assaultrifle", ["label"] = "Assault Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_carbinerifle")] = {["name"] = "weapon_carbinerifle", ["label"] = "Carbine Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "carbinerifle.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_advancedrifle")] = {["name"] = "weapon_advancedrifle", ["label"] = "Advanced Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_mg")] = {["name"] = "weapon_mg", ["label"] = "Machinegun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_combatmg")] = {["name"] = "weapon_combatmg", ["label"] = "Combat MG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_pumpshotgun")] = {["name"] = "weapon_pumpshotgun", ["label"] = "Pump Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_sawnoffshotgun")] = {["name"] = "weapon_sawnoffshotgun", ["label"] = "Sawn-off Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_assaultshotgun")] = {["name"] = "weapon_assaultshotgun", ["label"] = "Assault Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_bullpupshotgun")] = {["name"] = "weapon_bullpupshotgun", ["label"] = "Bullpup Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_stungun")] = {["name"] = "weapon_stungun", ["label"] = "Taser", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_sniperrifle")] = {["name"] = "weapon_sniperrifle", ["label"] = "Sniper Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_heavysniper")] = {["name"] = "weapon_heavysniper", ["label"] = "Heavy Sniper", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_remotesniper")] = {["name"] = "weapon_remotesniper", ["label"] = "Remote Sniper", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER_REMOTE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_grenadelauncher")] = {["name"] = "weapon_grenadelauncher", ["label"] = "Grenade Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_GRENADELAUNCHER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_grenadelauncher_smoke")] = {["name"] = "weapon_grenadelauncher_smoke", ["label"] = "Smoke Grenade Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_GRENADELAUNCHER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_rpg")] = {["name"] = "weapon_rpg", ["label"] = "RPG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RPG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_minigun")] = {["name"] = "weapon_minigun", ["label"] = "Minigun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MINIGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_grenade")] = {["name"] = "weapon_grenade", ["label"] = "Grenade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_stickybomb")] = {["name"] = "weapon_stickybomb", ["label"] = "C4", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "stickybomb.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_smokegrenade")] = {["name"] = "weapon_smokegrenade", ["label"] = "Smoke Grenade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_bzgas")] = {["name"] = "weapon_bzgas", ["label"] = "BZ Gas", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_molotov")] = {["name"] = "weapon_molotov", ["label"] = "Molotov", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_fireextinguisher")] = {["name"] = "weapon_fireextinguisher", ["label"] = "Fire Extinguisher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_petrolcan")] = {["name"] = "weapon_petrolcan", ["label"] = "Petrol Can", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PETROLCAN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_briefcase")] = {["name"] = "weapon_briefcase", ["label"] = "Briefcase", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_briefcase_02")] = {["name"] = "weapon_briefcase_02", ["label"] = "Briefcase", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_ball")] = {["name"] = "weapon_ball", ["label"] = "Ball", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_BALL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_flare")] = {["name"] = "weapon_flare", ["label"] = "Flare pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_FLARE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_snspistol")] = {["name"] = "weapon_snspistol", ["label"] = "SNS Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_bottle")] = {["name"] = "weapon_bottle", ["label"] = "Broken Bottle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_gusenberg")] = {["name"] = "weapon_gusenberg", ["label"] = "Thompson SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_MG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_specialcarbine")] = {["name"] = "weapon_specialcarbine", ["label"] = "Special Carbine", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_heavypistol")] = {["name"] = "weapon_heavypistol", ["label"] = "Heavy Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_bullpuprifle")] = {["name"] = "weapon_bullpuprifle", ["label"] = "Bullpup Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_dagger")] = {["name"] = "weapon_dagger", ["label"] = "Dagger", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_vintagepistol")] = {["name"] = "weapon_vintagepistol", ["label"] = "Vintage Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "weapon_vintagepistol.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_firework")] = {["name"] = "weapon_firework", ["label"] = "Firework Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_musket")] = {["name"] = "weapon_musket", ["label"] = "Musket", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_heavyshotgun")] = {["name"] = "weapon_heavyshotgun", ["label"] = "Heavy Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_marksmanrifle")] = {["name"] = "weapon_marksmanrifle", ["label"] = "Marksman Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SNIPER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_hominglauncher")] = {["name"] = "weapon_hominglauncher", ["label"] = "Homing Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_STINGER", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_proxmine")] = {["name"] = "weapon_proxmine", ["label"] = "Proxmine Grenade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_snowball")] = {["name"] = "weapon_snowball", ["label"] = "Snowball", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_flaregun")] = {["name"] = "weapon_flaregun", ["label"] = "Flare Gun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_FLARE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_garbagebag")] = {["name"] = "weapon_garbagebag", ["label"] = "Garbage Bag", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_handcuffs")] = {["name"] = "weapon_handcuffs", ["label"] = "Handcuffs", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_combatpdw")] = {["name"] = "weapon_combatpdw", ["label"] = "Combat PDW", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_marksmanpistol")] = {["name"] = "weapon_marksmanpistol", ["label"] = "Marksman Pistol", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_knuckle")] = {["name"] = "weapon_knuckle", ["label"] = "Knuckle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_hatchet")] = {["name"] = "weapon_hatchet", ["label"] = "Hatchet", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_railgun")] = {["name"] = "weapon_railgun", ["label"] = "Railgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_machete")] = {["name"] = "weapon_machete", ["label"] = "Machete", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_machinepistol")] = {["name"] = "weapon_machinepistol", ["label"] = "Tec-9", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_switchblade")] = {["name"] = "weapon_switchblade", ["label"] = "Switchblade", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_revolver")] = {["name"] = "weapon_revolver", ["label"] = "Revolver", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_PISTOL", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_dbshotgun")] = {["name"] = "weapon_dbshotgun", ["label"] = "Double-barrel Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_compactrifle")] = {["name"] = "weapon_compactrifle", ["label"] = "Compact Rifle", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_RIFLE", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_autoshotgun")] = {["name"] = "weapon_autoshotgun", ["label"] = "Auto Shotgun", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_battleaxe")] = {["name"] = "weapon_battleaxe", ["label"] = "Battle Axe", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_compactlauncher")] = {["name"] = "weapon_compactlauncher", ["label"] = "Compact Launcher", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_minismg")] = {["name"] = "weapon_minismg", ["label"] = "Mini SMG", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = "AMMO_SMG", ["image"] = "weapon_minismg.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_pipebomb")] = {["name"] = "weapon_pipebomb", ["label"] = "Pipe bom", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_poolcue")] = {["name"] = "weapon_poolcue", ["label"] = "Poolcue", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_wrench")] = {["name"] = "weapon_wrench", ["label"] = "Wrench", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "placeholder.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_autoshotgun")] = {["name"] = "weapon_autoshotgun", ["label"] = "Sweeper Shotgun", ["weight"] = 3000, ["type"] = "weapon", ["ammotype"] = "AMMO_SHOTGUN", ["image"] = "sweepershotgun.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, + [GetHashKey("weapon_bread")] = {["name"] = "weapon_bread", ["label"] = "Baquette", ["weight"] = 1000, ["type"] = "weapon", ["ammotype"] = nil, ["image"] = "baquette.png", ["unique"] = true, ["useable"] = false, ["description"] = "This is a placeholder description"}, +} + +-- // VEHICLES +QBShared.Vehicles = { + ["revolter"] = { + ["name"] = "Revolter", + ["brand"] = "Ubermacht", + ["model"] = "revolter", + ["price"] = 195000, + ["category"] = "sports", + ["hash"] = "-410205223", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e8/Revolter-GTAO-front.png/revision/latest?cb=20171218203456", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["blade"] = { + ["name"] = "Blade", + ["brand"] = "Vapid", + ["model"] = "blade", + ["price"] = 19000, + ["category"] = "muscle", + ["hash"] = "-1205801634", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f3/Blade-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["buccaneer"] = { + ["name"] = "Buccaneer", + ["brand"] = "Albany", + ["model"] = "buccaneer", + ["price"] = 19500, + ["category"] = "muscle", + ["hash"] = "-682211828", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9f/Buccaneer-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["buccaneer2"] = { + ["name"] = "Buccaneer Rider", + ["brand"] = "Albany", + ["model"] = "buccaneer2", + ["price"] = 22500, + ["category"] = "muscle", + ["hash"] = "-1013450936", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a2/BuccaneerCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["chino"] = { + ["name"] = "Chino", + ["brand"] = "Vapid", + ["model"] = "chino", + ["price"] = 20000, + ["category"] = "muscle", + ["hash"] = "349605904", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/17/Chino-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["chino2"] = { + ["name"] = "Chino Luxe", + ["brand"] = "Vapid", + ["model"] = "chino2", + ["price"] = 35000, + ["category"] = "muscle", + ["hash"] = "-1361687965", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3f/ChinoCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["coquette3"] = { + ["name"] = "Coquette BlackFin", + ["brand"] = "Invetero", + ["model"] = "coquette3", + ["price"] = 45000, + ["category"] = "muscle", + ["hash"] = "784565758", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/df/CoquetteBlackFin-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dominator"] = { + ["name"] = "Dominator", + ["brand"] = "Vapid", + ["model"] = "dominator", + ["price"] = 53000, + ["category"] = "muscle", + ["hash"] = "80636076", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/78/Dominator-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dukes"] = { + ["name"] = "Dukes", + ["brand"] = "Imponte", + ["model"] = "dukes", + ["price"] = 15000, + ["category"] = "muscle", + ["hash"] = "723973206", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/53/Dukes-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["gauntlet"] = { + ["name"] = "Gauntlet", + ["brand"] = "Bravado", + ["model"] = "gauntlet", + ["price"] = 39500, + ["category"] = "muscle", + ["hash"] = "-1800170043", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/dd/Gauntlet-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["hotknife"] = { + ["name"] = "Hotknife", + ["brand"] = "Vapid", + ["model"] = "hotknife", + ["price"] = 95000, + ["category"] = "muscle", + ["hash"] = "37348240", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/Hotknife-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["faction"] = { + ["name"] = "Faction", + ["brand"] = "Willard", + ["model"] = "faction", + ["price"] = 20000, + ["category"] = "muscle", + ["hash"] = "-2119578145", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/Faction-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["faction2"] = { + ["name"] = "Faction Rider", + ["brand"] = "Willard", + ["model"] = "faction2", + ["price"] = 22500, + ["category"] = "muscle", + ["hash"] = "-1790546981", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f0/FactionCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["nightshade"] = { + ["name"] = "Nightshade", + ["brand"] = "Imponte", + ["model"] = "nightshade", + ["price"] = 84000, + ["category"] = "muscle", + ["hash"] = "-1943285540", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3e/Nightshade-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["phoenix"] = { + ["name"] = "Phoenix", + ["brand"] = "Imponte", + ["model"] = "phoenix", + ["price"] = 25000, + ["category"] = "muscle", + ["hash"] = "-2095439403", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/af/Phoenix-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["picador"] = { + ["name"] = "Picador", + ["brand"] = "Cheval", + ["model"] = "picador", + ["price"] = 18000, + ["category"] = "muscle", + ["hash"] = "1507916787", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5a/Picador-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sabregt"] = { + ["name"] = "Sabre Turbo", + ["brand"] = "Declasse", + ["model"] = "sabregt", + ["price"] = 25000, + ["category"] = "muscle", + ["hash"] = "-1685021548", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e6/SabreTurbo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sabregt2"] = { + ["name"] = "Sabre GT", + ["brand"] = "Declasse", + ["model"] = "sabregt2", + ["price"] = 29500, + ["category"] = "muscle", + ["hash"] = "223258115", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/18/SabreTurboCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["slamvan3"] = { + ["name"] = "Slam Van", + ["brand"] = "Vapid", + ["model"] = "slamvan3", + ["price"] = 35000, + ["category"] = "muscle", + ["hash"] = "1119641113", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/96/SlamvanCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["tampa"] = { + ["name"] = "Tampa", + ["brand"] = "Declasse", + ["model"] = "tampa", + ["price"] = 27500, + ["category"] = "muscle", + ["hash"] = "972671128", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d8/Tampa-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["tampa2"] = { + ["name"] = "Drift Tampa", + ["brand"] = "Declasse", + ["model"] = "tampa2", + ["price"] = 50500, + ["category"] = "muscle", + ["hash"] = GetHashKey("tampa2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/51/DriftTampa-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["virgo"] = { + ["name"] = "Virgo", + ["brand"] = "Albany", + ["model"] = "virgo", + ["price"] = 19700, + ["category"] = "muscle", + ["hash"] = "-498054846", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/24/Virgo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["vigero"] = { + ["name"] = "Vigero", + ["brand"] = "Declasse", + ["model"] = "vigero", + ["price"] = 16500, + ["category"] = "muscle", + ["hash"] = "-825837129", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c4/Vigero-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["voodoo"] = { + ["name"] = "Voodoo", + ["brand"] = "Declasse", + ["model"] = "voodoo", + ["price"] = 21000, + ["category"] = "muscle", + ["hash"] = "523724515", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/fc/VoodooCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["blista"] = { + ["name"] = "Blista", + ["brand"] = "Dinka", + ["model"] = "blista", + ["price"] = 8000, + ["category"] = "compacts", + ["hash"] = "-344943009", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c0/Blista-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["brioso"] = { + ["name"] = "Brioso R/A", + ["brand"] = "Grotti", + ["model"] = "brioso", + ["price"] = 14500, + ["category"] = "compacts", + ["hash"] = "1549126457", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/80/BriosoRA-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["issi2"] = { + ["name"] = "Issi", + ["brand"] = "Weeny", + ["model"] = "issi2", + ["price"] = 12000, + ["category"] = "compacts", + ["hash"] = "-1177863319", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9c/IssiDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["panto"] = { + ["name"] = "Panto", + ["brand"] = "Benefactor", + ["model"] = "panto", + ["price"] = 8500, + ["category"] = "compacts", + ["hash"] = "-431692672", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/ad/Panto-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["prairie"] = { + ["name"] = "Prairie", + ["brand"] = "Bollokan", + ["model"] = "prairie", + ["price"] = 15000, + ["category"] = "compacts", + ["hash"] = "-1450650718", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/06/Prairie-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bison"] = { + ["name"] = "Bison", + ["brand"] = "Bravado", + ["model"] = "bison", + ["price"] = 34000, + ["category"] = "vans", + ["hash"] = "-16948145", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/69/Bison-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bobcatxl"] = { + ["name"] = "Bobcat XL Open", + ["brand"] = "Vapid", + ["model"] = "bobcatxl", + ["price"] = 23000, + ["category"] = "vans", + ["hash"] = "1069929536", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/37/BobcatXL-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bobcatxl2"] = { + ["name"] = "Bobcat XL Closed", + ["brand"] = "Vapid", + ["model"] = "bobcatxl2", + ["price"] = 23000, + ["category"] = "vans", + ["hash"] = "1712326151", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/37/BobcatXL-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["burrito3"] = { + ["name"] = "Burrito", + ["brand"] = "Declasse", + ["model"] = "burrito3", + ["price"] = 38500, + ["category"] = "vans", + ["hash"] = "-1743316013", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/80/Burrito3-GTAV-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["gburrito2"] = { + ["name"] = "Burrito Custom", + ["brand"] = "Declasse", + ["model"] = "gburrito2", + ["price"] = 65000, + ["category"] = "vans", + ["hash"] = "296357396", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4f/GangBurrito2-GTAO-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["moonbeam"] = { + ["name"] = "Moonbeam", + ["brand"] = "Declasse", + ["model"] = "moonbeam", + ["price"] = 29500, + ["category"] = "vans", + ["hash"] = "525509695", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b3/Moonbeam-GTAO-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rumpo"] = { + ["name"] = "Rumpo", + ["brand"] = "Bravado", + ["model"] = "rumpo", + ["price"] = 30000, + ["category"] = "vans", + ["hash"] = "1162065741", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d3/Rumpo-GTAV-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["asea"] = { + ["name"] = "Asea", + ["brand"] = "Declasse", + ["model"] = "asea", + ["price"] = 13000, + ["category"] = "sedans", + ["hash"] = "-1809822327", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/58/Asea-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["cognoscenti"] = { + ["name"] = "Cognoscenti", + ["brand"] = "Enus", + ["model"] = "cognoscenti", + ["price"] = 40000, + ["category"] = "sedans", + ["hash"] = "-2030171296", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/ff/Cognoscenti-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["emperor"] = { + ["name"] = "Emperor", + ["brand"] = "Albany", + ["model"] = "emperor", + ["price"] = 14500, + ["category"] = "sedans", + ["hash"] = "-685276541", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4c/Emperor-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["fugitive"] = { + ["name"] = "Fugitive", + ["brand"] = "Cheval", + ["model"] = "fugitive", + ["price"] = 22500, + ["category"] = "sedans", + ["hash"] = "1909141499", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5c/Fugitive-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["glendale"] = { + ["name"] = "Glendale", + ["brand"] = "Benefactor", + ["model"] = "glendale", + ["price"] = 11500, + ["category"] = "sedans", + ["hash"] = "75131841", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Glendale-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["intruder"] = { + ["name"] = "Intruder", + ["brand"] = "Karin", + ["model"] = "intruder", + ["price"] = 15000, + ["category"] = "sedans", + ["hash"] = "886934177", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7c/Intruder-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["premier"] = { + ["name"] = "Premier", + ["brand"] = "Declasse", + ["model"] = "premier", + ["price"] = 16500, + ["category"] = "sedans", + ["hash"] = "-1883869285", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/ca/Premier-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["primo2"] = { + ["name"] = "Primo Custom", + ["brand"] = "Albany", + ["model"] = "primo2", + ["price"] = 14500, + ["category"] = "sedans", + ["hash"] = "-2040426790", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/ca/PrimoCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["regina"] = { + ["name"] = "Regina", + ["brand"] = "Dundreary", + ["model"] = "regina", + ["price"] = 10000, + ["category"] = "sedans", + ["hash"] = "-14495224", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/71/Regina-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["schafter2"] = { + ["name"] = "Schafter", + ["brand"] = "Benefactor", + ["model"] = "schafter2", + ["price"] = 32000, + ["category"] = "sedans", + ["hash"] = "-1255452397", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/57/Schafter-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["superd"] = { + ["name"] = "Super Diamond", + ["brand"] = "Enus", + ["model"] = "superd", + ["price"] = 108000, + ["category"] = "sedans", + ["hash"] = "1123216662", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d8/SuperDiamond-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["tailgater"] = { + ["name"] = "Tailgater", + ["brand"] = "Obey", + ["model"] = "tailgater", + ["price"] = 45000, + ["category"] = "sedans", + ["hash"] = "-1008861746", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e1/Tailgater-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["washington"] = { + ["name"] = "Washington", + ["brand"] = "Albany", + ["model"] = "washington", + ["price"] = 19000, + ["category"] = "sedans", + ["hash"] = "1777363799", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/12/Washington-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["baller2"] = { + ["name"] = "Baller", + ["brand"] = "Gallivanter", + ["model"] = "baller2", + ["price"] = 79000, + ["category"] = "suvs", + ["hash"] = "142944341", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/ef/Baller2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["baller3"] = { + ["name"] = "Baller LE", + ["brand"] = "Gallivanter", + ["model"] = "baller3", + ["price"] = 90000, + ["category"] = "suvs", + ["hash"] = "1878062887", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/71/BallerLE-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["cavalcade2"] = { + ["name"] = "Cavalcade", + ["brand"] = "Albany", + ["model"] = "cavalcade2", + ["price"] = 45000, + ["category"] = "suvs", + ["hash"] = "-789894171", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/08/Cavalcade2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dubsta2"] = { + ["name"] = "Dubsta Luxuary", + ["brand"] = "Benefactor", + ["model"] = "dubsta2", + ["price"] = 165000, + ["category"] = "suvs", + ["hash"] = "-394074634", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/fa/Dubsta2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["fq2"] = { + ["name"] = "FQ2", + ["brand"] = "Fathom", + ["model"] = "fq2", + ["price"] = 38000, + ["category"] = "suvs", + ["hash"] = "-1137532101", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6e/FQ2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["granger"] = { + ["name"] = "Granger", + ["brand"] = "Declasse", + ["model"] = "granger", + ["price"] = 43500, + ["category"] = "suvs", + ["hash"] = "-1775728740", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/de/Granger-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["gresley"] = { + ["name"] = "Gresley", + ["brand"] = "Bravado", + ["model"] = "gresley", + ["price"] = 47000, + ["category"] = "suvs", + ["hash"] = "-1543762099", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/ff/Gresley-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["huntley"] = { + ["name"] = "Huntley S", + ["brand"] = "Enus", + ["model"] = "huntley", + ["price"] = 85000, + ["category"] = "suvs", + ["hash"] = "486987393", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2f/HuntleyS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["landstalker"] = { + ["name"] = "Landstalker", + ["brand"] = "Dundreary", + ["model"] = "landstalker", + ["price"] = 27000, + ["category"] = "suvs", + ["hash"] = "1269098716", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/77/Landstalker-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["patriot"] = { + ["name"] = "Patriot", + ["brand"] = "Mammoth", + ["model"] = "patriot", + ["price"] = 32000, + ["category"] = "suvs", + ["hash"] = "-808457413", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/90/Patriot-GTAV-front.PNG" + }, + ["radi"] = { + ["name"] = "Radius", + ["brand"] = "Vapid", + ["model"] = "radi", + ["price"] = 24000, + ["category"] = "suvs", + ["hash"] = "-1651067813", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b6/Radius-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rocoto"] = { + ["name"] = "Rocoto", + ["brand"] = "Obey", + ["model"] = "rocoto", + ["price"] = 48500, + ["category"] = "suvs", + ["hash"] = "2136773105", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/28/Rocoto-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["seminole"] = { + ["name"] = "Seminole", + ["brand"] = "Canis", + ["model"] = "seminole", + ["price"] = 29500, + ["category"] = "suvs", + ["hash"] = "1221512915", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a0/Seminole-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["xls"] = { + ["name"] = "XLS", + ["brand"] = "Benefactor", + ["model"] = "xls", + ["price"] = 75000, + ["category"] = "suvs", + ["hash"] = "1203490606", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8c/XLS-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["btype"] = { + ["name"] = "Roosevelt", + ["brand"] = "Albany", + ["model"] = "btype", + ["price"] = 325000, + ["category"] = "sportsclassics", + ["hash"] = "117401876", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b4/Roosevelt-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["btype3"] = { + ["name"] = "Roosevelt Valor", + ["brand"] = "Albany", + ["model"] = "btype3", + ["price"] = 375000, + ["category"] = "sportsclassics", + ["hash"] = "-602287871", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2a/RooseveltValor-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["btype2"] = { + ["name"] = "Franken Stange", + ["brand"] = "Albany", + ["model"] = "btype2", + ["price"] = 350000, + ["category"] = "sportsclassics", + ["hash"] = "-831834716", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/63/FränkenStange-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["casco"] = { + ["name"] = "Casco", + ["brand"] = "Lampadati", + ["model"] = "casco", + ["price"] = 102000, + ["category"] = "sportsclassics", + ["hash"] = "941800958", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/86/Casco-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["coquette2"] = { + ["name"] = "Coquette Classic", + ["brand"] = "Invetero", + ["model"] = "coquette2", + ["price"] = 125000, + ["category"] = "sportsclassics", + ["hash"] = "1011753235", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0b/CoquetteClassic-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["monroe"] = { + ["name"] = "Monroe", + ["brand"] = "Pegassi", + ["model"] = "monroe", + ["price"] = 98500, + ["category"] = "sportsclassics", + ["hash"] = "-433375717", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/44/Monroe-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["pigalle"] = { + ["name"] = "Pigalle", + ["brand"] = "Lampadati", + ["model"] = "pigalle", + ["price"] = 135000, + ["category"] = "sportsclassics", + ["hash"] = "1078682497", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d4/Pigalle-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["stingergt"] = { + ["name"] = "Stinger GT", + ["brand"] = "Grotti", + ["model"] = "stingergt", + ["price"] = 184000, + ["category"] = "sportsclassics", + ["hash"] = "-2098947590", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c5/StingerGT-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["feltzer3"] = { + ["name"] = "Stirling GT", + ["brand"] = "Benefactor", + ["model"] = "feltzer3", + ["price"] = 195000, + ["category"] = "sportsclassics", + ["hash"] = "-1566741232", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d2/StirlingGT-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["ztype"] = { + ["name"] = "Z-Type", + ["brand"] = "Truffade", + ["model"] = "ztype", + ["price"] = 2500000, + ["category"] = "sportsclassics", + ["hash"] = "758895617", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9d/Z-Type-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["cogcabrio"] = { + ["name"] = "Cognoscenti Cabrio", + ["brand"] = "Enus", + ["model"] = "cogcabrio", + ["price"] = 45500, + ["category"] = "coupes", + ["hash"] = "330661258", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/28/CognoscentiCabrioUp-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["exemplar"] = { + ["name"] = "Exemplar", + ["brand"] = "Dewbauchee", + ["model"] = "exemplar", + ["price"] = 65000, + ["category"] = "coupes", + ["hash"] = "-5153954", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/de/Exemplar-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["f620"] = { + ["name"] = "F620", + ["brand"] = "Ocelot", + ["model"] = "f620", + ["price"] = 37500, + ["category"] = "coupes", + ["hash"] = "-591610296", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f8/F620-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["felon"] = { + ["name"] = "Felon", + ["brand"] = "Lampadati", + ["model"] = "felon", + ["price"] = 31000, + ["category"] = "coupes", + ["hash"] = "-391594584", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/de/Felon-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["felon2"] = { + ["name"] = "Felon GT", + ["brand"] = "Lampadati", + ["model"] = "felon2", + ["price"] = 37000, + ["category"] = "coupes", + ["hash"] = "-89291282", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0f/FelonGTDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["jackal"] = { + ["name"] = "Jackal", + ["brand"] = "Ocelot", + ["model"] = "jackal", + ["price"] = 29000, + ["category"] = "coupes", + ["hash"] = "-624529134", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/48/Jackal-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["oracle2"] = { + ["name"] = "Oracle XS", + ["brand"] = "Übermacht", + ["model"] = "oracle2", + ["price"] = 28000, + ["category"] = "coupes", + ["hash"] = "-511601230", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/22/OracleXS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sentinel"] = { + ["name"] = "Sentinel", + ["brand"] = "Übermacht", + ["model"] = "sentinel", + ["price"] = 30000, + ["category"] = "coupes", + ["hash"] = "1349725314", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/75/SentinelUp-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sentinel2"] = { + ["name"] = "Sentinel XS", + ["brand"] = " Übermacht", + ["model"] = "sentinel2", + ["price"] = 36500, + ["category"] = "coupes", + ["hash"] = "873639469", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d0/SentinelXS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["windsor"] = { + ["name"] = "Windsor", + ["brand"] = "Enus", + ["model"] = "windsor", + ["price"] = 325000, + ["category"] = "coupes", + ["hash"] = "1581459400", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/26/Windsor-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["windsor2"] = { + ["name"] = "Windsor Drop", + ["brand"] = "Enus", + ["model"] = "windsor2", + ["price"] = 355000, + ["category"] = "coupes", + ["hash"] = "-1930048799", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/31/WindsorDropUp-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["zion"] = { + ["name"] = "Zion", + ["brand"] = "Übermacht", + ["model"] = "zion", + ["price"] = 25500, + ["category"] = "coupes", + ["hash"] = "-1122289213", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/cc/Zion-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["zion2"] = { + ["name"] = "Zion Cabrio", + ["brand"] = "Übermacht", + ["model"] = "zion2", + ["price"] = 27000, + ["category"] = "coupes", + ["hash"] = "-1193103848", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/cb/ZionCabrioDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["futo"] = { + ["name"] = "Futo", + ["brand"] = "Karin", + ["model"] = "futo", + ["price"] = 20000, + ["category"] = "coupes", + ["hash"] = "2016857647", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/67/Futo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["ninef"] = { + ["name"] = "9F", + ["brand"] = "Obey", + ["model"] = "ninef", + ["price"] = 135000, + ["category"] = "sports", + ["hash"] = "1032823388", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2d/9F-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["ninef2"] = { + ["name"] = "9F Cabrio", + ["brand"] = "Obey", + ["model"] = "ninef2", + ["price"] = 142000, + ["category"] = "sports", + ["hash"] = "-1461482751", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a1/9FCabrio-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["alpha"] = { + ["name"] = "Alpha", + ["brand"] = "Albany", + ["model"] = "alpha", + ["price"] = 38000, + ["category"] = "sports", + ["hash"] = "767087018", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/94/Alpha-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["banshee"] = { + ["name"] = "Banshee", + ["brand"] = "Bravado", + ["model"] = "banshee", + ["price"] = 98000, + ["category"] = "sports", + ["hash"] = "-1041692462", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/82/Banshee-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bestiagts"] = { + ["name"] = "Bestia GTS", + ["brand"] = "Grotti", + ["model"] = "bestiagts", + ["price"] = 197000, + ["category"] = "sports", + ["hash"] = "1274868363", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a5/BestiaGTS-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["buffalo"] = { + ["name"] = "Buffalo", + ["brand"] = "Bravado", + ["model"] = "buffalo", + ["price"] = 32000, + ["category"] = "sports", + ["hash"] = "-304802106", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7d/Buffalo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["buffalo2"] = { + ["name"] = "Buffalo S", + ["brand"] = "Bravado", + ["model"] = "buffalo2", + ["price"] = 39500, + ["category"] = "sports", + ["hash"] = "736902334", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e1/BuffaloS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["carbonizzare"] = { + ["name"] = "Carbonizzare", + ["brand"] = "Grotti", + ["model"] = "carbonizzare", + ["price"] = 219000, + ["category"] = "sports", + ["hash"] = "2072687711", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7b/CarbonizzareDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["comet2"] = { + ["name"] = "Comet", + ["brand"] = "Pfister", + ["model"] = "comet2", + ["price"] = 142000, + ["category"] = "sports", + ["hash"] = "-1045541610", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d2/Comet-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["coquette"] = { + ["name"] = "Coquette", + ["brand"] = "Invetero", + ["model"] = "coquette", + ["price"] = 97000, + ["category"] = "sports", + ["hash"] = "108773431", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/08/Coquette-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["elegy2"] = { + ["name"] = "Elegy RH8", + ["brand"] = "Annis", + ["model"] = "elegy2", + ["price"] = 68500, + ["category"] = "sports", + ["hash"] = "-566387422", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4f/ElegyRH8-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["feltzer2"] = { + ["name"] = "Feltzer", + ["brand"] = "Benefactor", + ["model"] = "feltzer2", + ["price"] = 83500, + ["category"] = "sports", + ["hash"] = "-1995326987", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8f/Feltzer-GTAVPC-Front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["furoregt"] = { + ["name"] = "Furore GT", + ["brand"] = "Lampadati", + ["model"] = "furoregt", + ["price"] = 115000, + ["category"] = "sports", + ["hash"] = "-1089039904", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/56/FuroreGT-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["fusilade"] = { + ["name"] = "Fusilade", + ["brand"] = "Schyster", + ["model"] = "fusilade", + ["price"] = 50000, + ["category"] = "sports", + ["hash"] = "499169875", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a0/Fusilade-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["jester"] = { + ["name"] = "Jester", + ["brand"] = "Dinka", + ["model"] = "jester", + ["price"] = 265000, + ["category"] = "sports", + ["hash"] = "-1297672541", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/af/Jester-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["khamelion"] = { + ["name"] = "Khamelion", + ["brand"] = "Hijak", + ["model"] = "khamelion", + ["price"] = 102000, + ["category"] = "sports", + ["hash"] = "544021352", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1f/Khamelion-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["kuruma"] = { + ["name"] = "Kuruma", + ["brand"] = "Karin", + ["model"] = "kuruma", + ["price"] = 59500, + ["category"] = "sports", + ["hash"] = "-1372848492", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/53/Kuruma-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["lynx"] = { + ["name"] = "Lynx", + ["brand"] = "Ocelot", + ["model"] = "lynx", + ["price"] = 68500, + ["category"] = "sports", + ["hash"] = "482197771", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a7/Lynx-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["mamba"] = { + ["name"] = "Mamba", + ["brand"] = "Declasse", + ["model"] = "mamba", + ["price"] = 86000, + ["category"] = "sportsclassics", + ["hash"] = "-1660945322", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d4/Mamba-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["massacro"] = { + ["name"] = "Massacro", + ["brand"] = "Dewbauchee", + ["model"] = "massacro", + ["price"] = 165000, + ["category"] = "sports", + ["hash"] = "-142942670", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/12/Massacro-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rapidgt"] = { + ["name"] = "Rapid GT", + ["brand"] = "Dewbauchee", + ["model"] = "rapidgt", + ["price"] = 60000, + ["category"] = "sports", + ["hash"] = "-1934452204", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/42/RapidGT-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rapidgt2"] = { + ["name"] = "Rapid GT Convertible", + ["brand"] = "Dewbauchee", + ["model"] = "rapidgt2", + ["price"] = 65000, + ["category"] = "sports", + ["hash"] = "1737773231", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f8/RapidGT2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["schafter3"] = { + ["name"] = "Schafter V12", + ["brand"] = "Benefactor", + ["model"] = "schafter3", + ["price"] = 69000, + ["category"] = "sports", + ["hash"] = "-1485523546", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a6/SchafterV12-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["seven70"] = { + ["name"] = "Seven-70", + ["brand"] = "Dewbauchee", + ["model"] = "seven70", + ["price"] = 85000, + ["category"] = "sports", + ["hash"] = "-1757836725", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/21/Seven70-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sultan"] = { + ["name"] = "Sultan", + ["brand"] = "Karin", + ["model"] = "sultan", + ["price"] = 56500, + ["category"] = "sports", + ["hash"] = "970598228", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/bb/Sultan-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["surano"] = { + ["name"] = "Surano", + ["brand"] = " Benefactor", + ["model"] = "surano", + ["price"] = 89000, + ["category"] = "sports", + ["hash"] = "384071873", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/fd/SuranoDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["verlierer2"] = { + ["name"] = "Verlierer", + ["brand"] = "Bravado", + ["model"] = "verlierer2", + ["price"] = 90500, + ["category"] = "sports", + ["hash"] = "1102544804", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8c/Verlierer-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["adder"] = { + ["name"] = "Adder", + ["brand"] = "Truffade", + ["model"] = "adder", + ["price"] = 1000000, + ["category"] = "super", + ["hash"] = "-1216765807", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9e/Adder-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["banshee2"] = { + ["name"] = "Banshee 900R", + ["brand"] = "Bravado", + ["model"] = "banshee2", + ["price"] = 178000, + ["category"] = "super", + ["hash"] = "633712403", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e2/Banshee900RTopless-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bullet"] = { + ["name"] = "Bullet", + ["brand"] = "Vapid", + ["model"] = "bullet", + ["price"] = 190000, + ["category"] = "super", + ["hash"] = "-1696146015", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3d/Bullet-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["cheetah"] = { + ["name"] = "Cheetah", + ["brand"] = "Grotti", + ["model"] = "cheetah", + ["price"] = 395000, + ["category"] = "super", + ["hash"] = "-1311154784", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1e/Cheetah-GTAV-Front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["entityxf"] = { + ["name"] = "Entity XF", + ["brand"] = "Överflöd", + ["model"] = "entityxf", + ["price"] = 825000, + ["category"] = "super", + ["hash"] = "-1291952903", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/95/EntityXF-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["fmj"] = { + ["name"] = "FMJ", + ["brand"] = "Vapid", + ["model"] = "fmj", + ["price"] = 335000, + ["category"] = "super", + ["hash"] = "1426219628", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8c/FMJ-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["infernus"] = { + ["name"] = "Infernus", + ["brand"] = "Pegassi", + ["model"] = "infernus", + ["price"] = 285000, + ["category"] = "super", + ["hash"] = "418536135", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0e/Infernus-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["pfister811"] = { + ["name"] = "811", + ["brand"] = "Pfister", + ["model"] = "pfister811", + ["price"] = 583000, + ["category"] = "super", + ["hash"] = "-1829802492", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c7/811A-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["reaper"] = { + ["name"] = "Reaper", + ["brand"] = "Pegassi", + ["model"] = "reaper", + ["price"] = 365000, + ["category"] = "super", + ["hash"] = "234062309", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5f/Reaper-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["t20"] = { + ["name"] = "T20", + ["brand"] = "Progen", + ["model"] = "t20", + ["price"] = 1680000, + ["category"] = "super", + ["hash"] = "1663218586", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/20/T20-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["turismor"] = { + ["name"] = "Turismo R", + ["brand"] = "Grotti", + ["model"] = "turismor", + ["price"] = 750000, + ["category"] = "super", + ["hash"] = "408192225", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/61/TurismoR-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["vacca"] = { + ["name"] = "Vacca", + ["brand"] = "Pegassi", + ["model"] = "vacca", + ["price"] = 255000, + ["category"] = "super", + ["hash"] = "338562499", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b4/Vacca-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["voltic"] = { + ["name"] = "Voltic", + ["brand"] = "Coil", + ["model"] = "voltic", + ["price"] = 120000, + ["category"] = "super", + ["hash"] = "-1622444098", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/87/Voltic-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["prototipo"] = { + ["name"] = "X80 Proto", + ["brand"] = "Grotti", + ["model"] = "prototipo", + ["price"] = 1430000, + ["category"] = "super", + ["hash"] = "2123327359", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b3/X80Proto-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["zentorno"] = { + ["name"] = "Zentorno", + ["brand"] = "Pegassi", + ["model"] = "zentorno", + ["price"] = 1250000, + ["category"] = "super", + ["hash"] = "-1403128555", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/60/Zentorno-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sultanrs"] = { + ["name"] = "Sultan RS", + ["brand"] = "Karin", + ["model"] = "sultanrs", + ["price"] = 76500, + ["category"] = "sports", + ["hash"] = "-295689028", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c1/SultanRS-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["avarus"] = { + ["name"] = "Avarus", + ["brand"] = "LCC", + ["model"] = "avarus", + ["price"] = 6500, + ["category"] = "motorcycles", + ["hash"] = "-2115793025", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1a/Avarus-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bagger"] = { + ["name"] = "Bagger", + ["brand"] = "WMC", + ["model"] = "bagger", + ["price"] = 7000, + ["category"] = "motorcycles", + ["hash"] = "-2140431165", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/10/Bagger-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sovereign"] = { + ["name"] = "Sovereign", + ["brand"] = "WMC", + ["model"] = "sovereign", + ["price"] = 27000, + ["category"] = "motorcycles", + ["hash"] = "743478836", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/98/Sovereign-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bati"] = { + ["name"] = "Bati 801", + ["brand"] = "Pegassi", + ["model"] = "bati", + ["price"] = 17500, + ["category"] = "motorcycles", + ["hash"] = "-114291515", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/65/Bati801-GTAV-FrontQuarter.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["carbonrs"] = { + ["name"] = "Carbon RS", + ["brand"] = "Nagasaki", + ["model"] = "carbonrs", + ["price"] = 14500, + ["category"] = "motorcycles", + ["hash"] = "11251904", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2d/CarbonRS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["chimera"] = { + ["name"] = "Chimera", + ["brand"] = "Nagasaki", + ["model"] = "chimera", + ["price"] = 15000, + ["category"] = "motorcycles", + ["hash"] = "6774487", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8a/Chimera-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["daemon"] = { + ["name"] = "Daemon", + ["brand"] = "WMC", + ["model"] = "daemon", + ["price"] = 12500, + ["category"] = "motorcycles", + ["hash"] = "2006142190", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6b/Daemon2-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["defiler"] = { + ["name"] = "Defiler", + ["brand"] = "Shitzu", + ["model"] = "defiler", + ["price"] = 13500, + ["category"] = "motorcycles", + ["hash"] = "822018448", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f5/Defiler-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["esskey"] = { + ["name"] = "Esskey", + ["brand"] = "Pegassi", + ["model"] = "esskey", + ["price"] = 6000, + ["category"] = "motorcycles", + ["hash"] = "2035069708", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4e/Esskey-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["faggio"] = { + ["name"] = "Faggio Sport", + ["brand"] = "Pegassi", + ["model"] = "faggio", + ["price"] = 750, + ["category"] = "motorcycles", + ["hash"] = "55628203", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/50/FaggioSport-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["hakuchou"] = { + ["name"] = "Hakuchou", + ["brand"] = "Shitzu", + ["model"] = "hakuchou", + ["price"] = 16000, + ["category"] = "motorcycles", + ["hash"] = "1265391242", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/ab/Hakuchou-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["hexer"] = { + ["name"] = "Hexer", + ["brand"] = "LCC", + ["model"] = "hexer", + ["price"] = 7500, + ["category"] = "motorcycles", + ["hash"] = "301427732", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/64/Hexer-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["nemesis"] = { + ["name"] = "Nemesis", + ["brand"] = "Principe", + ["model"] = "nemesis", + ["price"] = 12000, + ["category"] = "motorcycles", + ["hash"] = "-634879114", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4b/Nemesis-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["nightblade"] = { + ["name"] = "Nightblade", + ["brand"] = "WMC", + ["model"] = "nightblade", + ["price"] = 14500, + ["category"] = "motorcycles", + ["hash"] = "-1606187161", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6b/Nightblade-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["pcj"] = { + ["name"] = "PCJ-600", + ["brand"] = "Shitzu", + ["model"] = "pcj", + ["price"] = 13500, + ["category"] = "motorcycles", + ["hash"] = "-909201658", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/74/PCJ600-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["ruffian"] = { + ["name"] = "Ruffian", + ["brand"] = "Pegassi", + ["model"] = "ruffian", + ["price"] = 14000, + ["category"] = "motorcycles", + ["hash"] = "-893578776", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/70/Ruffian-GTAV-front-variant2.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["thrust"] = { + ["name"] = "Thrust", + ["brand"] = "Dinka", + ["model"] = "thrust", + ["price"] = 16000, + ["category"] = "motorcycles", + ["hash"] = "1836027715", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4e/Thrust-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["visione"] = { + ["name"] = "Visione", + ["brand"] = "Grotti", + ["model"] = "visione", + ["price"] = 1750000, + ["category"] = "sports", + ["hash"] = "-998177792", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/57/Visione-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["gt500"] = { + ["name"] = "GT500", + ["brand"] = "Grotti", + ["model"] = "gt500", + ["price"] = 255000, + ["category"] = "sportsclassics", + ["hash"] = "-2079788230", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/25/GT500-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["cyclone"] = { + ["name"] = "Cyclone", + ["brand"] = "Coil", + ["model"] = "cyclone", + ["price"] = 1200000, + ["category"] = "super", + ["hash"] = "1392481335", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/Cyclone-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["comet5"] = { + ["name"] = "Comet SR", + ["brand"] = "Pfister", + ["model"] = "comet5", + ["price"] = 252000, + ["category"] = "sports", + ["hash"] = "661493923", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0f/CometSR-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rapidgt3"] = { + ["name"] = "Rapid GT", + ["brand"] = "Dewbauchee", + ["model"] = "rapidgt3", + ["price"] = 445000, + ["category"] = "sportsclassics", + ["hash"] = "2049897956", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/13/RapidGTClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["streiter"] = { + ["name"] = "Streiter", + ["brand"] = "Benefactor", + ["model"] = "streiter", + ["price"] = 98000, + ["category"] = "sports", + ["hash"] = "1741861769", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/38/Streiter-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["pariah"] = { + ["name"] = "Pariah", + ["brand"] = "Ocelot", + ["model"] = "pariah", + ["price"] = 395000, + ["category"] = "sports", + ["hash"] = "867799010", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/ff/Pariah-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["raiden"] = { + ["name"] = "Raiden", + ["brand"] = "Coil", + ["model"] = "raiden", + ["price"] = 150000, + ["category"] = "sports", + ["hash"] = "-1529242755", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b5/Raiden-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["hustler"] = { + ["name"] = "Hustler", + ["brand"] = "Vapid", + ["model"] = "hustler", + ["price"] = 75500, + ["category"] = "muscle", + ["hash"] = "600450546", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f1/Hustler-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["yosemite"] = { + ["name"] = "Yosemite", + ["brand"] = "Declasse", + ["model"] = "yosemite", + ["price"] = 19500, + ["category"] = "muscle", + ["hash"] = "1871995513", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/09/Yosemite-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sc1"] = { + ["name"] = "SC1", + ["brand"] = "Übermacht", + ["model"] = "sc1", + ["price"] = 750000, + ["category"] = "super", + ["hash"] = "1352136073", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3a/SC1-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["z190"] = { + ["name"] = "190Z", + ["brand"] = "Karin", + ["model"] = "z190", + ["price"] = 330000, + ["category"] = "sportsclassics", + ["hash"] = "838982985", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/be/190z-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["neon"] = { + ["name"] = "Neon", + ["brand"] = "Pfister", + ["model"] = "neon", + ["price"] = 185000, + ["category"] = "sports", + ["hash"] = "-1848994066", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c0/Neon-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["autarch"] = { + ["name"] = "Autarch", + ["brand"] = "Överflöd", + ["model"] = "autarch", + ["price"] = 1800000, + ["category"] = "super", + ["hash"] = "-313185164", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6c/Autarch-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["blista2"] = { + ["name"] = "Blista Compact", + ["brand"] = "Dinka", + ["model"] = "blista2", + ["price"] = 12500, + ["category"] = "compacts", + ["hash"] = "1039032026", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/06/BlistaCompact-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["issi3"] = { + ["name"] = "Issi Classic", + ["brand"] = "Weeny", + ["model"] = "issi3", + ["price"] = 10000, + ["category"] = "compacts", + ["hash"] = "931280609", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9f/IssiClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dilettante"] = { + ["name"] = "Dilettante", + ["brand"] = "Karin", + ["model"] = "dilettante", + ["price"] = 13000, + ["category"] = "compacts", + ["hash"] = "-1130810103", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/80/Dilettante-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rhapsody"] = { + ["name"] = "Rhapsody", + ["brand"] = "Declasse", + ["model"] = "rhapsody", + ["price"] = 10000, + ["category"] = "compacts", + ["hash"] = "841808271", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/cc/Rhapsody-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["stalion"] = { + ["name"] = "Stallion", + ["brand"] = "Declasse", + ["model"] = "stalion", + ["price"] = 23500, + ["category"] = "muscle", + ["hash"] = "1923400478", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/00/Stallion-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["infernus2"] = { + ["name"] = "Infernus Classic", + ["brand"] = "Pegassi", + ["model"] = "infernus2", + ["price"] = 200000, + ["category"] = "sportsclassics", + ["hash"] = "-1405937764", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/73/InfernusClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["ruston"] = { + ["name"] = "Ruston", + ["brand"] = "Hijak", + ["model"] = "ruston", + ["price"] = 165000, + ["category"] = "sports", + ["hash"] = "719660200", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2c/Ruston-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["specter"] = { + ["name"] = "Specter", + ["brand"] = "Dewbauchee", + ["model"] = "specter", + ["price"] = 155000, + ["category"] = "sports", + ["hash"] = "1886268224", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7b/Specter-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["cheetah2"] = { + ["name"] = "Cheetah Classic", + ["brand"] = "Grotti", + ["model"] = "cheetah2", + ["price"] = 220000, + ["category"] = "sports", + ["hash"] = "223240013", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/38/CheetahClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["torero"] = { + ["name"] = "Torero", + ["brand"] = "Pegassi", + ["model"] = "torero", + ["price"] = 285500, + ["category"] = "sportsclassics", + ["hash"] = "1504306544", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Torero-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["gp1"] = { + ["name"] = "GP1", + ["brand"] = "Progen", + ["model"] = "gp1", + ["price"] = 462000, + ["category"] = "super", + ["hash"] = "1234311532", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8a/GP1-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["penetrator"] = { + ["name"] = "Penetrator", + ["brand"] = "Ocelot", + ["model"] = "penetrator", + ["price"] = 567000, + ["category"] = "super", + ["hash"] = "-1758137366", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9c/Penetrator-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["tempesta"] = { + ["name"] = "Tempesta", + ["brand"] = "Pegassi", + ["model"] = "tempesta", + ["price"] = 400000, + ["category"] = "super", + ["hash"] = "272929391", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/35/Tempesta-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["vagner"] = { + ["name"] = "Vagner", + ["brand"] = "Dewbauchee", + ["model"] = "vagner", + ["price"] = 1460000, + ["category"] = "super", + ["hash"] = "1939284556", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/14/Vagner-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["italigtb"] = { + ["name"] = "Itali GTB", + ["brand"] = "Progen", + ["model"] = "italigtb", + ["price"] = 1200000, + ["category"] = "super", + ["hash"] = "-482719877", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/44/ItaliGTB-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["xa21"] = { + ["name"] = "XA-21", + ["brand"] = "Ocelot", + ["model"] = "xa21", + ["price"] = 2150000, + ["category"] = "super", + ["hash"] = "917809321", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/69/XA21-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["jester3"] = { + ["name"] = "Jester Classic", + ["brand"] = "Dinka", + ["model"] = "jester3", + ["price"] = 70000, + ["category"] = "sports", + ["hash"] = "-214906006", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1a/JesterClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["elegy"] = { + ["name"] = "Elegy Retro Custom", + ["brand"] = "Annis", + ["model"] = "elegy", + ["price"] = 60000, + ["category"] = "sports", + ["hash"] = "196747873 ", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/68/ElegyRetroCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dominator3"] = { + ["name"] = "Dominator GTX", + ["brand"] = "Vapid", + ["model"] = "dominator3", + ["price"] = 87500, + ["category"] = "muscle", + ["hash"] = "-986944621", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8b/DominatorGTX-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["tezeract"] = { + ["name"] = "Tezeract", + ["brand"] = "Pegassi", + ["model"] = "tezeract", + ["price"] = 2350000, + ["category"] = "super", + ["hash"] = "1031562256", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/ca/Tezeract-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["entity2"] = { + ["name"] = "Entity XXR", + ["brand"] = "Överflöd", + ["model"] = "entity2", + ["price"] = 1532000, + ["category"] = "super", + ["hash"] = "-2120700196", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9a/EntityXXR-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["nero"] = { + ["name"] = "Nero", + ["brand"] = "Truffade", + ["model"] = "nero", + ["price"] = 2352000, + ["category"] = "super", + ["hash"] = "1034187331", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5e/Nero-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["comet3"] = { + ["name"] = "Comet Retro Custom", + ["brand"] = "Pfister", + ["model"] = "comet3", + ["price"] = 125000, + ["category"] = "sports", + ["hash"] = "-2022483795", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a0/CometRetroCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["taipan"] = { + ["name"] = "Taipan", + ["brand"] = "Cheval", + ["model"] = "taipan", + ["price"] = 1650000, + ["category"] = "super", + ["hash"] = "-1134706562", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4c/Taipan-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["tyrant"] = { + ["name"] = "Tyrant", + ["brand"] = " Överflöd", + ["model"] = "tyrant", + ["price"] = 2100000, + ["category"] = "super", + ["hash"] = "-376434238", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f7/Tyrant-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["osiris"] = { + ["name"] = "Osiris", + ["brand"] = "Pegassi", + ["model"] = "osiris", + ["price"] = 1400000, + ["category"] = "super", + ["hash"] = "1987142870", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/53/Osiris-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["flashgt"] = { + ["name"] = "Flash GT", + ["brand"] = "Vapid", + ["model"] = "flashgt", + ["price"] = 111000, + ["category"] = "sports", + ["hash"] = "-1259134696", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3b/FlashGT-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["specter2"] = { + ["name"] = "Specter Custom", + ["brand"] = "Dewbauchee", + ["model"] = "specter2", + ["price"] = 178000, + ["category"] = "sports", + ["hash"] = "1074745671", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/01/SpecterCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["surge"] = { + ["name"] = "Surge", + ["brand"] = "Cheval", + ["model"] = "surge", + ["price"] = 28500, + ["category"] = "sedans", + ["hash"] = "-1894894188", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c2/Surge-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["ellie"] = { + ["name"] = "Ellie", + ["brand"] = "Vapid", + ["model"] = "ellie", + ["price"] = 50000, + ["category"] = "muscle", + ["hash"] = "-1267543371", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6b/Ellie-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bjxl"] = { + ["name"] = "BeeJay XL", + ["brand"] = "Karin", + ["model"] = "bjxl", + ["price"] = 47000, + ["category"] = "suvs", + ["hash"] = "850565707", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/da/BeeJayXL-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["faggio3"] = { + ["name"] = "Faggio Mod", + ["brand"] = "Pegassi", + ["model"] = "faggio3", + ["price"] = 900, + ["category"] = "motorcycles", + ["hash"] = "-1289178744", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sentinelc1"] = { + ["name"] = "Sentinel Custom XR", + ["brand"] = "Ubermach", + ["model"] = "sentinelc1", + ["price"] = 250000, + ["category"] = "tuner", + ["hash"] = GetHashKey("sentinelc1"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bifta"] = { + ["name"] = 'Bifta', + ["brand"] = "Annis", + ["price"] = 12000, + ["category"] = "offroad", + ["model"] = "bifta", + ["hash"] = GetHashKey("bifta"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["bfinjection"] = { + ["name"] = 'Bf Injection', + ["brand"] = "Annis", + ["price"] = 16000, + ["category"] = "offroad", + ["model"] = "bfinjection", + ["hash"] = GetHashKey("bfinjection"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["blazer"] = { + ["name"] = 'Blazer', + ["price"] = 6500, + ["category"] = "offroad", + ["model"] = "blazer", + ["hash"] = GetHashKey("blazer"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["blazer4"] = { + ["name"] = 'Blazer Sport', + ["brand"] = "Annis", + ["price"] = 8500, + ["category"] = "offroad", + ["model"] = "blazer4", + ["hash"] = GetHashKey("blazer4"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["brawler"] = { + ["name"] = 'Brawler', + ["brand"] = "Annis", + ["price"] = 45000, + ["category"] = "offroad", + ["model"] = "brawler", + ["hash"] = GetHashKey("brawler"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dubsta3"] = { + ["name"] = 'Bubsta 6x6', + ["brand"] = "Annis", + ["price"] = 120000, + ["category"] = "offroad", + ["model"] = "dubsta3", + ["hash"] = GetHashKey("dubsta3"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["dune"] = { + ["name"] = 'Dune Buggy', + ["brand"] = "Annis", + ["price"] = 8000, + ["category"] = "offroad", + ["model"] = "dune", + ["hash"] = GetHashKey("dune"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["guardian"] = { + ["name"] = 'Guardian', + ["brand"] = "Annis", + ["price"] = 45000, + ["category"] = "offroad", + ["model"] = "guardian", + ["hash"] = GetHashKey("guardian"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["rebel2"] = { + ["name"] = 'Rebel', + ["brand"] = "Annis", + ["price"] = 35000, + ["category"] = "offroad", + ["model"] = "rebel2", + ["hash"] = GetHashKey("rebel2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["sandking"] = { + ["name"] = 'Sandking', + ["brand"] = "Annis", + ["price"] = 55000, + ["category"] = "offroad", + ["model"] = "sandking", + ["hash"] = GetHashKey("sandking"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["trophytruck"] = { + ["name"] = 'Trophy Truck', + ["brand"] = "Annis", + ["price"] = 60000, + ["category"] = "offroad", + ["model"] = "trophytruck", + ["hash"] = GetHashKey("trophytruck"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["trophytruck2"] = { + ["name"] = 'Trophy Truck Limited', + ["price"] = 80000, + ["category"] = "offroad", + ["model"] = "trophytruck2", + ["hash"] = GetHashKey("trophytruck2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["kamacho"] = { + ["name"] = 'Kamacho', + ["price"] = 200000, + ["category"] = "offroad", + ["model"] = "kamacho", + ["hash"] = GetHashKey("kamacho"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + ["911r"] = { + ["name"] = "911", + ["brand"] = "Porsche", + ["model"] = "911r", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("911r"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 30, + ["shop"] = "custom", + }, + ["bmci"] = { + ["name"] = "M5", + ["brand"] = "BMW", + ["model"] = "bmci", + ["price"] = 280000, + ["category"] = "coupes", + ["hash"] = GetHashKey("bmci"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "nfs", + }, + ["db11"] = { + ["name"] = "DB11", + ["brand"] = "Aston Martin", + ["model"] = "db11", + ["price"] = 310000, + ["category"] = "coupes", + ["hash"] = GetHashKey("db11"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "custom", + }, + ["lwgtr"] = { + ["name"] = "GTR Liberty Walk", + ["brand"] = "Nissan", + ["model"] = "lwgtr", + ["price"] = 300000, + ["category"] = "coupes", + ["hash"] = GetHashKey("lwgtr"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + ["tempesta2"] = { + ["name"] = "Pegassi Tempesta", + ["brand"] = "Pegassi", + ["model"] = "tempesta2", + ["price"] = 320000, + ["category"] = "coupes", + ["hash"] = GetHashKey("tempesta2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 20, + ["shop"] = "custom", + }, + ["urus"] = { + ["name"] = "Urus", + ["brand"] = "Lamborghini", + ["model"] = "urus", + ["price"] = 350000, + ["category"] = "coupes", + ["hash"] = GetHashKey("urus"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "nfs", + }, + ["f82"] = { + ["name"] = "M4 F82 GTS", + ["brand"] = "BMW", + ["model"] = "f82", + ["price"] = 250000, + ["category"] = "coupes", + ["hash"] = GetHashKey("f82"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 80000, + ["trunkslots"] = 50, + ["shop"] = "custom", + }, + ["16challenger"] = { + ["name"] = "Challenger", + ["brand"] = "Dodge", + ["model"] = "16challenger", + ["price"] = 195000, + ["category"] = "coupes", + ["hash"] = GetHashKey("16challenger"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["mustang19"] = { + ["name"] = "Mustang GT", + ["brand"] = "Ford", + ["model"] = "mustang19", + ["price"] = 230000, + ["category"] = "coupes", + ["hash"] = GetHashKey("mustang19"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "notforsale", + }, + ["schwarzer2"] = { + ["name"] = "Schwarzer Wide Body", + ["brand"] = "Schwarzer", + ["model"] = "schwarzer2", + ["price"] = 270000, + ["category"] = "coupes", + ["hash"] = GetHashKey("schwarzer2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["rijschooldimi"] = { + ["name"] = "Q5 DimiDriving", + ["brand"] = "Qbus", + ["model"] = "rijschooldimi", + ["price"] = 1, + ["category"] = "coupes", + ["hash"] = GetHashKey("rijschooldimi"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["rijschooljaapballer"] = { + ["name"] = "Q5 Jaap Baller", + ["brand"] = "Qbus", + ["model"] = "rijschooljaapballer", + ["price"] = 1, + ["category"] = "coupes", + ["hash"] = GetHashKey("rijschooljaapballer"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["rijschoolsacrebleu"] = { + ["name"] = "Q5 Sacre Bleu", + ["brand"] = "Qbus", + ["model"] = "rijschoolsacrebleu", + ["price"] = 1, + ["category"] = "coupes", + ["hash"] = GetHashKey("rijschoolsacrebleu"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["rijschoolyeahletsco"] = { + ["name"] = "Q5 Yeah Let's Co", + ["brand"] = "Qbus", + ["model"] = "rijschoolyeahletsco", + ["price"] = 1, + ["category"] = "coupes", + ["hash"] = GetHashKey("rijschoolyeahletsco"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["sentinel3"] = { + ["name"] = "Sentinel Classic", + ["brand"] = "Ubermacht", + ["model"] = "sentinel3", + ["price"] = 40000, + ["category"] = "coupes", + ["hash"] = GetHashKey("sentinel3"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + ["oracle"] = { + ["name"] = "Oracle", + ["brand"] = "Ubermacht", + ["model"] = "oracle", + ["price"] = 25000, + ["category"] = "sedans", + ["hash"] = GetHashKey("oracle"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + ["ardent"] = { + ["name"] = "Ardent", + ["brand"] = "Ocelot", + ["model"] = "ardent", + ["price"] = 100000, + ["category"] = "sportsclassics", + ["hash"] = GetHashKey("ardent"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 30, + ["shop"] = "pdm", + }, + ["fagaloa"] = { + ["name"] = "Fagaloa", + ["brand"] = "Vulcar", + ["model"] = "fagaloa", + ["price"] = 35000, + ["category"] = "sportsclassics", + ["hash"] = GetHashKey("fagaloa"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 80000, + ["trunkslots"] = 60, + ["shop"] = "pdm", + }, + ["stafford"] = { + ["name"] = "Stafford", + ["brand"] = "Enus", + ["model"] = "stafford", + ["price"] = 45000, + ["category"] = "sedans", + ["hash"] = GetHashKey("stafford"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + ["stafford"] = { + ["name"] = "Stafford", + ["brand"] = "Enus", + ["model"] = "stafford", + ["price"] = 45000, + ["category"] = "sedans", + ["hash"] = GetHashKey("stafford"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + ["camper"] = { + ["name"] = "Stafford", + ["brand"] = "Brute", + ["model"] = "camper", + ["price"] = 1, + ["category"] = "coupes", + ["hash"] = GetHashKey("camper"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["zombieb"] = { + ["name"] = "Zombie Chopper", + ["brand"] = "Steel Horse", + ["model"] = "zombieb", + ["price"] = 17000, + ["category"] = "motorcycles", + ["hash"] = GetHashKey("zombieb"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 20000, + ["trunkslots"] = 20, + ["shop"] = "pdm", + }, + ["subwrx"] = { + ["name"] = "Impreza WRX STI", + ["brand"] = "Subaru", + ["model"] = "subwrx", + ["price"] = 130000, + ["category"] = "coupes", + ["hash"] = GetHashKey("subwrx"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["rx7rb"] = { + ["name"] = "RX7", + ["brand"] = "Mazda", + ["model"] = "rx7rb", + ["price"] = 110000, + ["category"] = "coupes", + ["hash"] = GetHashKey("rx7rb"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 20000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["ram2500"] = { + ["name"] = "RAM 2500", + ["brand"] = "Dodge", + ["model"] = "ram2500", + ["price"] = 140000, + ["category"] = "coupes", + ["hash"] = GetHashKey("ram2500"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 80000, + ["trunkslots"] = 80, + ["shop"] = "notforsale", + }, + ["evo9"] = { + ["name"] = "Lancer Evo", + ["brand"] = "Mitsubishi", + ["model"] = "evo9", + ["price"] = 125000, + ["category"] = "coupes", + ["hash"] = GetHashKey("evo9"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "nfs", + }, + ["omnis"] = { + ["name"] = "Omnis", + ["brand"] = "Wow", + ["model"] = "omnis", + ["price"] = 120000, + ["category"] = "sports", + ["hash"] = GetHashKey("omnis"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + ["a80"] = { + ["name"] = "Supra", + ["brand"] = "Toyota", + ["model"] = "a80", + ["price"] = 160000, + ["category"] = "coupes", + ["hash"] = GetHashKey("a80"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["fd"] = { + ["name"] = "RX7 Tuning", + ["brand"] = "Mazda", + ["model"] = "fd", + ["price"] = 145000, + ["category"] = "coupes", + ["hash"] = GetHashKey("fd"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 30000, + ["trunkslots"] = 30, + ["shop"] = "custom", + }, + ["r35"] = { + ["name"] = "GTR R35", + ["brand"] = "Nissan", + ["model"] = "r35", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("r35"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + ["tampa3"] = { + ["name"] = "G", + ["brand"] = "Tampa Drifting", + ["model"] = "tampa3", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("tampa3"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + ["yosemite6str"] = { + ["name"] = "G", + ["brand"] = "Yosemite 6STR", + ["model"] = "yosemite6str", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("yosemite6str"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + ["c7"] = { + ["name"] = "Chevrolet", + ["brand"] = "Corvette C7 Stingray", + ["model"] = "c7", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("c7"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["m3e46"] = { + ["name"] = "BMW", + ["brand"] = "M3 E46", + ["model"] = "m3e46", + ["price"] = 160000, + ["category"] = "coupes", + ["hash"] = GetHashKey("m3e46"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 50000, + ["trunkslots"] = 50, + ["shop"] = "custom", + }, + ["mgt"] = { + ["name"] = "Ford", + ["brand"] = "Mustang GT", + ["model"] = "mgt", + ["price"] = 210000, + ["category"] = "coupes", + ["hash"] = GetHashKey("mgt"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["na1"] = { + ["name"] = "Honda", + ["brand"] = "NSX", + ["model"] = "na1", + ["price"] = 175000, + ["category"] = "coupes", + ["hash"] = GetHashKey("na1"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + ["rmodgt63"] = { + ["name"] = "Mercedes-AMG", + ["brand"] = "GT63 S Coupe", + ["model"] = "rmodgt63", + ["price"] = 410000, + ["category"] = "coupes", + ["hash"] = GetHashKey("rmodgt63"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + ["skyline"] = { + ["name"] = "Nissan", + ["brand"] = "Skyline R34", + ["model"] = "skyline", + ["price"] = 230000, + ["category"] = "coupes", + ["hash"] = GetHashKey("skyline"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 50000, + ["trunkslots"] = 50, + ["shop"] = "custom", + }, + ["yFiat595ssB"] = { + ["name"] = "", + ["brand"] = "Sidney Mobile", + ["model"] = "yFiat595ssB", + ["price"] = 0, + ["category"] = "coupes", + ["hash"] = GetHashKey("yFiat595ssB"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "nfs", + }, +} + +QBShared.VehicleModels = { + [GetHashKey("yFiat595ssB")] = { + ["name"] = "", + ["brand"] = "Sidney Mobile", + ["model"] = "yFiat595ssB", + ["price"] = 0, + ["category"] = "coupes", + ["hash"] = GetHashKey("yFiat595ssB"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "nfs", + }, + [GetHashKey("c7")] = { + ["name"] = "Chevrolet", + ["brand"] = "Corvette C7 Stingray", + ["model"] = "c7", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("c7"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("m3e46")] = { + ["name"] = "BMW", + ["brand"] = "M3 E46", + ["model"] = "m3e46", + ["price"] = 160000, + ["category"] = "coupes", + ["hash"] = GetHashKey("m3e46"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 50000, + ["trunkslots"] = 50, + ["shop"] = "custom", + }, + [GetHashKey("mgt")] = { + ["name"] = "Ford", + ["brand"] = "Mustang GT", + ["model"] = "mgt", + ["price"] = 210000, + ["category"] = "coupes", + ["hash"] = GetHashKey("mgt"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + [GetHashKey("na1")] = { + ["name"] = "Honda", + ["brand"] = "NSX", + ["model"] = "na1", + ["price"] = 175000, + ["category"] = "coupes", + ["hash"] = GetHashKey("na1"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("rmodgt63")] = { + ["name"] = "Mercedes-AMG", + ["brand"] = "GT63 S Coupe", + ["model"] = "rmodgt63", + ["price"] = 410000, + ["category"] = "coupes", + ["hash"] = GetHashKey("rmodgt63"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + [GetHashKey("skyline")] = { + ["name"] = "Nissan", + ["brand"] = "Skyline R34", + ["model"] = "skyline", + ["price"] = 230000, + ["category"] = "coupes", + ["hash"] = GetHashKey("skyline"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 50000, + ["trunkslots"] = 50, + ["shop"] = "custom", + }, + [GetHashKey("tampa3")] = { + ["name"] = "G", + ["brand"] = "Tampa Drifting", + ["model"] = "tampa3", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("tampa3"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + [GetHashKey("yosemite6str")] = { + ["name"] = "G", + ["brand"] = "Yosemite 6STR", + ["model"] = "yosemite6str", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("yosemite6str"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + [GetHashKey("r35")] = { + ["name"] = "GTR R35", + ["brand"] = "Nissan", + ["model"] = "r35", + ["price"] = 340000, + ["category"] = "coupes", + ["hash"] = GetHashKey("r35"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + [GetHashKey("fd")] = { + ["name"] = "RX7 Tuning", + ["brand"] = "Mazda", + ["model"] = "fd", + ["price"] = 145000, + ["category"] = "coupes", + ["hash"] = GetHashKey("fd"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 30000, + ["trunkslots"] = 30, + ["shop"] = "custom", + }, + [GetHashKey("a80")] = { + ["name"] = "Supra", + ["brand"] = "Toyota", + ["model"] = "a80", + ["price"] = 160000, + ["category"] = "coupes", + ["hash"] = GetHashKey("a80"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("urus")] = { + ["name"] = "Urus", + ["brand"] = "Lamborghini", + ["model"] = "urus", + ["price"] = 350000, + ["category"] = "coupes", + ["hash"] = GetHashKey("urus"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "nfs", + }, + [GetHashKey("f82")] = { + ["name"] = "M4 F82 GTS", + ["brand"] = "BMW", + ["model"] = "f82", + ["price"] = 250000, + ["category"] = "coupes", + ["hash"] = GetHashKey("f82"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 80000, + ["trunkslots"] = 50, + ["shop"] = "custom", + }, + [GetHashKey("16challenger")] = { + ["name"] = "Challenger", + ["brand"] = "Dodge", + ["model"] = "16challenger", + ["price"] = 195000, + ["category"] = "coupes", + ["hash"] = GetHashKey("16challenger"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("subwrx")] = { + ["name"] = "Impreza WRX STI", + ["price"] = 130000, + ["category"] = "coupes", + ["model"] = "subwrx", + ["hash"] = GetHashKey("subwrx"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("rx7rb")] = { + ["name"] = "RX7", + ["price"] = 110000, + ["category"] = "coupes", + ["model"] = "rx7rb", + ["hash"] = GetHashKey("rx7rb"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 20000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("ram2500")] = { + ["name"] = "RAM 2500", + ["price"] = 140000, + ["category"] = "coupes", + ["model"] = "ram2500", + ["hash"] = GetHashKey("ram2500"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 80000, + ["trunkslots"] = 80, + ["shop"] = "custom", + }, + [GetHashKey("evo9")] = { + ["name"] = "Lancer Evo", + ["price"] = 125000, + ["category"] = "coupes", + ["model"] = "evo9", + ["hash"] = GetHashKey("evo9"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "nfs", + }, + [GetHashKey("sentinel3")] = { + ["name"] = "Sentinel Classic", + ["price"] = 40000, + ["category"] = "coupes", + ["model"] = "sentinel3", + ["hash"] = GetHashKey("sentinel3"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + [GetHashKey("oracle")] = { + ["name"] = "Oracle", + ["price"] = 25000, + ["category"] = "sedans", + ["model"] = "oracle", + ["hash"] = GetHashKey("oracle"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + [GetHashKey("ardent")] = { + ["name"] = "Ardent", + ["price"] = 100000, + ["category"] = "sportsclassics", + ["model"] = "ardent", + ["hash"] = GetHashKey("ardent"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 30, + ["shop"] = "pdm", + }, + [GetHashKey("fagaloa")] = { + ["name"] = "Fagaloa", + ["price"] = 35000, + ["category"] = "sportsclassics", + ["model"] = "fagaloa", + ["hash"] = GetHashKey("fagaloa"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 80000, + ["trunkslots"] = 60, + ["shop"] = "pdm", + }, + [GetHashKey("stafford")] = { + ["name"] = "Stafford", + ["price"] = 45000, + ["category"] = "sedans", + ["model"] = "stafford", + ["hash"] = GetHashKey("stafford"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + [GetHashKey("stafford")] = { + ["name"] = "Stafford", + ["price"] = 45000, + ["category"] = "sedans", + ["model"] = "stafford", + ["hash"] = GetHashKey("stafford"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, + [GetHashKey("camper")] = { + ["name"] = "Stafford", + ["price"] = 1, + ["category"] = "coupes", + ["model"] = "camper", + ["hash"] = GetHashKey("camper"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 60000, + ["trunkslots"] = 40, + ["shop"] = "custom", + }, + [GetHashKey("zombieb")] = { + ["name"] = "Zombie Chopper", + ["price"] = 17000, + ["category"] = "motorcycles", + ["model"] = "zombieb", + ["hash"] = GetHashKey("zombieb"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 20000, + ["trunkslots"] = 20, + ["shop"] = "pdm", + }, + [GetHashKey("911r")] = { + ["name"] = '911', + ["price"] = 340000, + ["category"] = "coupes", + ["model"] = "911r", + ["hash"] = GetHashKey("911r"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 30, + ["shop"] = "custom", + }, + [GetHashKey("bmci")] = { + ["name"] = 'M5', + ["price"] = 280000, + ["category"] = "coupes", + ["model"] = "bmci", + ["hash"] = GetHashKey("bmci"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "nfs", + }, + [GetHashKey("db11")] = { + ["name"] = 'DB11', + ["price"] = 310000, + ["category"] = "coupes", + ["model"] = "db11", + ["hash"] = GetHashKey("db11"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + [GetHashKey("lwgtr")] = { + ["name"] = 'GTR Liberty Walk', + ["price"] = 300000, + ["category"] = "coupes", + ["model"] = "lwgtr", + ["hash"] = GetHashKey("lwgtr"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "nfs", + }, + [GetHashKey("tempesta2")] = { + ["name"] = 'Tempesta', + ["price"] = 320000, + ["category"] = "coupes", + ["model"] = "tempesta2", + ["hash"] = GetHashKey("tempesta2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 30, + ["shop"] = "custom", + }, + [GetHashKey("mustang19")] = { + ["name"] = 'Mustang GT', + ["price"] = 230000, + ["category"] = "coupes", + ["model"] = "mustang19", + ["hash"] = GetHashKey("mustang19"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + [GetHashKey("schwarzer2")] = { + ["name"] = 'Schwarzer', + ["price"] = 270000, + ["category"] = "coupes", + ["model"] = "schwarzer2", + ["hash"] = GetHashKey("schwarzer2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 60, + ["shop"] = "custom", + }, + [GetHashKey("kamacho")] = { + ["name"] = 'Kamacho', + ["price"] = 200000, + ["category"] = "offroad", + ["model"] = "kamacho", + ["hash"] = GetHashKey("kamacho"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Kamacho-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bifta")] = { + ["name"] = 'Bifta', + ["brand"] = "Annis", + ["price"] = 12000, + ["category"] = "offroad", + ["model"] = "bifta", + ["hash"] = GetHashKey("bifta"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bfinjection")] = { + ["name"] = 'Bf Injection', + ["brand"] = "Annis", + ["price"] = 16000, + ["category"] = "offroad", + ["model"] = "bfinjection", + ["hash"] = GetHashKey("bfinjection"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("blazer")] = { + ["name"] = 'Blazer', + ["price"] = 6500, + ["category"] = "offroad", + ["model"] = "blazer", + ["hash"] = GetHashKey("blazer"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("blazer4")] = { + ["name"] = 'Blazer Sport', + ["brand"] = "Annis", + ["price"] = 8500, + ["category"] = "offroad", + ["model"] = "blazer4", + ["hash"] = GetHashKey("blazer4"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("brawler")] = { + ["name"] = 'Brawler', + ["brand"] = "Annis", + ["price"] = 45000, + ["category"] = "offroad", + ["model"] = "brawler", + ["hash"] = GetHashKey("brawler"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dubsta3")] = { + ["name"] = 'Bubsta 6x6', + ["brand"] = "Annis", + ["price"] = 120000, + ["category"] = "offroad", + ["model"] = "dubsta3", + ["hash"] = GetHashKey("dubsta3"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dune")] = { + ["name"] = 'Dune Buggy', + ["brand"] = "Annis", + ["price"] = 8000, + ["category"] = "offroad", + ["model"] = "dune", + ["hash"] = GetHashKey("dune"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("guardian")] = { + ["name"] = 'Guardian', + ["brand"] = "Annis", + ["price"] = 45000, + ["category"] = "offroad", + ["model"] = "guardian", + ["hash"] = GetHashKey("guardian"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rebel2")] = { + ["name"] = 'Rebel', + ["brand"] = "Annis", + ["price"] = 35000, + ["category"] = "offroad", + ["model"] = "rebel2", + ["hash"] = GetHashKey("rebel2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sandking")] = { + ["name"] = 'Sandking', + ["brand"] = "Annis", + ["price"] = 55000, + ["category"] = "offroad", + ["model"] = "sandking", + ["hash"] = GetHashKey("sandking"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("trophytruck")] = { + ["name"] = 'Trophy Truck', + ["brand"] = "Annis", + ["price"] = 60000, + ["category"] = "offroad", + ["model"] = "trophytruck", + ["hash"] = GetHashKey("trophytruck"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("trophytruck2")] = { + ["name"] = 'Trophy Truck Limited', + ["price"] = 80000, + ["category"] = "offroad", + ["model"] = "trophytruck2", + ["hash"] = GetHashKey("trophytruck2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("revolter")] = { + ["name"] = "Revolter", + ["brand"] = "Ubermacht", + ["model"] = "revolter", + ["price"] = 195000, + ["category"] = "sports", + ["hash"] = "-410205223", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e8/Revolter-GTAO-front.png/revision/latest?cb=20171218203456", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("blade")] = { + ["name"] = "Blade", + ["brand"] = "Vapid", + ["model"] = "blade", + ["price"] = 19000, + ["category"] = "muscle", + ["hash"] = "-1205801634", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f3/Blade-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("buccaneer")] = { + ["name"] = "Buccaneer", + ["brand"] = "Albany", + ["model"] = "buccaneer", + ["price"] = 19500, + ["category"] = "muscle", + ["hash"] = "-682211828", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9f/Buccaneer-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("buccaneer2")] = { + ["name"] = "Buccaneer Rider", + ["brand"] = "Albany", + ["model"] = "buccaneer2", + ["price"] = 22500, + ["category"] = "muscle", + ["hash"] = "-1013450936", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a2/BuccaneerCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("chino")] = { + ["name"] = "Chino", + ["brand"] = "Vapid", + ["model"] = "chino", + ["price"] = 20000, + ["category"] = "muscle", + ["hash"] = "349605904", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/17/Chino-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("chino2")] = { + ["name"] = "Chino Luxe", + ["brand"] = "Vapid", + ["model"] = "chino2", + ["price"] = 35000, + ["category"] = "muscle", + ["hash"] = "-1361687965", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3f/ChinoCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("coquette3")] = { + ["name"] = "Coquette BlackFin", + ["brand"] = "Invetero", + ["model"] = "coquette3", + ["price"] = 45000, + ["category"] = "muscle", + ["hash"] = "784565758", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/df/CoquetteBlackFin-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dominator")] = { + ["name"] = "Dominator", + ["brand"] = "Vapid", + ["model"] = "dominator", + ["price"] = 53000, + ["category"] = "muscle", + ["hash"] = "80636076", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/78/Dominator-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dukes")] = { + ["name"] = "Dukes", + ["brand"] = "Imponte", + ["model"] = "dukes", + ["price"] = 15000, + ["category"] = "muscle", + ["hash"] = "723973206", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/53/Dukes-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("gauntlet")] = { + ["name"] = "Gauntlet", + ["brand"] = "Bravado", + ["model"] = "gauntlet", + ["price"] = 39500, + ["category"] = "muscle", + ["hash"] = "-1800170043", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/dd/Gauntlet-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("muscle")] = { + ["name"] = "Hotknife", + ["brand"] = "Vapid", + ["model"] = "hotknife", + ["price"] = 95000, + ["category"] = "muscle", + ["hash"] = "37348240", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/Hotknife-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("faction")] = { + ["name"] = "Faction", + ["brand"] = "Willard", + ["model"] = "faction", + ["price"] = 20000, + ["category"] = "muscle", + ["hash"] = "-2119578145", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/Faction-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("faction2")] = { + ["name"] = "Faction Rider", + ["brand"] = "Willard", + ["model"] = "faction2", + ["price"] = 22500, + ["category"] = "muscle", + ["hash"] = "-1790546981", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f0/FactionCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("nightshade")] = { + ["name"] = "Nightshade", + ["brand"] = "Imponte", + ["model"] = "nightshade", + ["price"] = 84000, + ["category"] = "muscle", + ["hash"] = "-1943285540", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3e/Nightshade-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("phoenix")] = { + ["name"] = "Phoenix", + ["brand"] = "Imponte", + ["model"] = "phoenix", + ["price"] = 25000, + ["category"] = "muscle", + ["hash"] = "-2095439403", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/af/Phoenix-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("picador")] = { + ["name"] = "Picador", + ["brand"] = "Cheval", + ["model"] = "picador", + ["price"] = 18000, + ["category"] = "muscle", + ["hash"] = "1507916787", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5a/Picador-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sabregt")] = { + ["name"] = "Sabre Turbo", + ["brand"] = "Declasse", + ["model"] = "sabregt", + ["price"] = 25000, + ["category"] = "muscle", + ["hash"] = "-1685021548", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e6/SabreTurbo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sabregt2")] = { + ["name"] = "Sabre GT", + ["brand"] = "Declasse", + ["model"] = "sabregt2", + ["price"] = 29500, + ["category"] = "muscle", + ["hash"] = "223258115", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/18/SabreTurboCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("slamvan3")] = { + ["name"] = "Slam Van", + ["brand"] = "Vapid", + ["model"] = "slamvan3", + ["price"] = 35000, + ["category"] = "muscle", + ["hash"] = "1119641113", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/96/SlamvanCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("tampa")] = { + ["name"] = "Tampa", + ["brand"] = "Declasse", + ["model"] = "tampa", + ["price"] = 27500, + ["category"] = "muscle", + ["hash"] = "972671128", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d8/Tampa-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("tampa2")] = { + ["name"] = "Drift Tampa", + ["brand"] = "Declasse", + ["model"] = "tampa2", + ["price"] = 50500, + ["category"] = "muscle", + ["hash"] = GetHashKey("tampa2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/51/DriftTampa-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("virgo")] = { + ["name"] = "Virgo", + ["brand"] = "Albany", + ["model"] = "virgo", + ["price"] = 19700, + ["category"] = "muscle", + ["hash"] = "-498054846", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/24/Virgo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("vigero")] = { + ["name"] = "Vigero", + ["brand"] = "Declasse", + ["model"] = "vigero", + ["price"] = 16500, + ["category"] = "muscle", + ["hash"] = "-825837129", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c4/Vigero-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("voodoo")] = { + ["name"] = "Voodoo", + ["brand"] = "Declasse", + ["model"] = "voodoo", + ["price"] = 21000, + ["category"] = "muscle", + ["hash"] = "523724515", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/fc/VoodooCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("blista")] = { + ["name"] = "Blista", + ["brand"] = "Dinka", + ["model"] = "blista", + ["price"] = 8000, + ["category"] = "compacts", + ["hash"] = "-344943009", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c0/Blista-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("brioso")] = { + ["name"] = "Brioso R/A", + ["brand"] = "Grotti", + ["model"] = "brioso", + ["price"] = 14500, + ["category"] = "compacts", + ["hash"] = "1549126457", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/80/BriosoRA-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("issi2")] = { + ["name"] = "Issi", + ["brand"] = "Weeny", + ["model"] = "issi2", + ["price"] = 12000, + ["category"] = "compacts", + ["hash"] = "-1177863319", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9c/IssiDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("panto")] = { + ["name"] = "Panto", + ["brand"] = "Benefactor", + ["model"] = "panto", + ["price"] = 8500, + ["category"] = "compacts", + ["hash"] = "-431692672", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/ad/Panto-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("prairie")] = { + ["name"] = "Prairie", + ["brand"] = "Bollokan", + ["model"] = "prairie", + ["price"] = 15000, + ["category"] = "compacts", + ["hash"] = "-1450650718", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/06/Prairie-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bison")] = { + ["name"] = "Bison", + ["brand"] = "Bravado", + ["model"] = "bison", + ["price"] = 34000, + ["category"] = "vans", + ["hash"] = "-16948145", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/69/Bison-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bobcatxl")] = { + ["name"] = "Bobcat XL", + ["brand"] = "Vapid", + ["model"] = "bobcatxl", + ["price"] = 23000, + ["category"] = "vans", + ["hash"] = "1069929536", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/37/BobcatXL-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("burrito3")] = { + ["name"] = "Burrito", + ["brand"] = "Declasse", + ["model"] = "burrito3", + ["price"] = 38500, + ["category"] = "vans", + ["hash"] = "-1743316013", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/80/Burrito3-GTAV-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("gburrito2")] = { + ["name"] = "Burrito Custom", + ["brand"] = "Declasse", + ["model"] = "gburrito2", + ["price"] = 65000, + ["category"] = "vans", + ["hash"] = "296357396", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4f/GangBurrito2-GTAO-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("moonbeam")] = { + ["name"] = "Moonbeam", + ["brand"] = "Declasse", + ["model"] = "moonbeam", + ["price"] = 29500, + ["category"] = "vans", + ["hash"] = "525509695", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b3/Moonbeam-GTAO-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rumpo")] = { + ["name"] = "Rumpo", + ["brand"] = "Bravado", + ["model"] = "rumpo", + ["price"] = 30000, + ["category"] = "vans", + ["hash"] = "1162065741", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d3/Rumpo-GTAV-front.png", + ["trunkspace"] = 150000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("asea")] = { + ["name"] = "Asea", + ["brand"] = "Declasse", + ["model"] = "asea", + ["price"] = 13000, + ["category"] = "sedans", + ["hash"] = "-1809822327", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/58/Asea-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("cognoscenti")] = { + ["name"] = "Cognoscenti", + ["brand"] = "Enus", + ["model"] = "cognoscenti", + ["price"] = 40000, + ["category"] = "sedans", + ["hash"] = "-2030171296", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/ff/Cognoscenti-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("emperor")] = { + ["name"] = "Emperor", + ["brand"] = "Albany", + ["model"] = "emperor", + ["price"] = 14500, + ["category"] = "sedans", + ["hash"] = "-685276541", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4c/Emperor-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("fugitive")] = { + ["name"] = "Fugitive", + ["brand"] = "Cheval", + ["model"] = "fugitive", + ["price"] = 22500, + ["category"] = "sedans", + ["hash"] = "1909141499", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5c/Fugitive-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("glendale")] = { + ["name"] = "Glendale", + ["brand"] = "Benefactor", + ["model"] = "glendale", + ["price"] = 11500, + ["category"] = "sedans", + ["hash"] = "75131841", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Glendale-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("intruder")] = { + ["name"] = "Intruder", + ["brand"] = "Karin", + ["model"] = "intruder", + ["price"] = 15000, + ["category"] = "sedans", + ["hash"] = "886934177", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7c/Intruder-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("premier")] = { + ["name"] = "Premier", + ["brand"] = "Declasse", + ["model"] = "premier", + ["price"] = 16500, + ["category"] = "sedans", + ["hash"] = "-1883869285", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/ca/Premier-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("primo2")] = { + ["name"] = "Primo Custom", + ["brand"] = "Albany", + ["model"] = "primo2", + ["price"] = 14500, + ["category"] = "sedans", + ["hash"] = "-2040426790", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/ca/PrimoCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("regina")] = { + ["name"] = "Regina", + ["brand"] = "Dundreary", + ["model"] = "regina", + ["price"] = 10000, + ["category"] = "sedans", + ["hash"] = "-14495224", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/71/Regina-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("schafter2")] = { + ["name"] = "Schafter", + ["brand"] = "Benefactor", + ["model"] = "schafter2", + ["price"] = 32000, + ["category"] = "sedans", + ["hash"] = "-1255452397", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/57/Schafter-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("superd")] = { + ["name"] = "Super Diamond", + ["brand"] = "Enus", + ["model"] = "superd", + ["price"] = 108000, + ["category"] = "sedans", + ["hash"] = "1123216662", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d8/SuperDiamond-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("tailgater")] = { + ["name"] = "Tailgater", + ["brand"] = "Obey", + ["model"] = "tailgater", + ["price"] = 45000, + ["category"] = "sedans", + ["hash"] = "-1008861746", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e1/Tailgater-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("washington")] = { + ["name"] = "Washington", + ["brand"] = "Albany", + ["model"] = "washington", + ["price"] = 19000, + ["category"] = "sedans", + ["hash"] = "1777363799", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/12/Washington-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("baller2")] = { + ["name"] = "Baller", + ["brand"] = "Gallivanter", + ["model"] = "baller2", + ["price"] = 79000, + ["category"] = "suvs", + ["hash"] = "142944341", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/ef/Baller2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("baller3")] = { + ["name"] = "Baller LE", + ["brand"] = "Gallivanter", + ["model"] = "baller3", + ["price"] = 90000, + ["category"] = "suvs", + ["hash"] = "1878062887", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/71/BallerLE-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("cavalcade2")] = { + ["name"] = "Cavalcade", + ["brand"] = "Albany", + ["model"] = "cavalcade2", + ["price"] = 45000, + ["category"] = "suvs", + ["hash"] = "-789894171", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/08/Cavalcade2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dubsta2")] = { + ["name"] = "Dubsta Luxuary", + ["brand"] = "Benefactor", + ["model"] = "dubsta2", + ["price"] = 165000, + ["category"] = "suvs", + ["hash"] = "-394074634", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/fa/Dubsta2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("fq2")] = { + ["name"] = "FQ2", + ["brand"] = "Fathom", + ["model"] = "fq2", + ["price"] = 38000, + ["category"] = "suvs", + ["hash"] = "-1137532101", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6e/FQ2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("granger")] = { + ["name"] = "Granger", + ["brand"] = "Declasse", + ["model"] = "granger", + ["price"] = 43500, + ["category"] = "suvs", + ["hash"] = "-1775728740", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/de/Granger-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("gresley")] = { + ["name"] = "Gresley", + ["brand"] = "Bravado", + ["model"] = "gresley", + ["price"] = 47000, + ["category"] = "suvs", + ["hash"] = "-1543762099", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/ff/Gresley-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("huntley")] = { + ["name"] = "Huntley S", + ["brand"] = "Enus", + ["model"] = "huntley", + ["price"] = 85000, + ["category"] = "suvs", + ["hash"] = "486987393", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2f/HuntleyS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("landstalker")] = { + ["name"] = "Landstalker", + ["brand"] = "Dundreary", + ["model"] = "landstalker", + ["price"] = 27000, + ["category"] = "suvs", + ["hash"] = "1269098716", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/77/Landstalker-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("patriot")] = { + ["name"] = "Patriot", + ["brand"] = "Mammoth", + ["model"] = "patriot", + ["price"] = 32000, + ["category"] = "suvs", + ["hash"] = "-808457413", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/90/Patriot-GTAV-front.PNG" + }, + [GetHashKey("radi")] = { + ["name"] = "Radius", + ["brand"] = "Vapid", + ["model"] = "radi", + ["price"] = 24000, + ["category"] = "suvs", + ["hash"] = "-1651067813", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b6/Radius-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rocoto")] = { + ["name"] = "Rocoto", + ["brand"] = "Obey", + ["model"] = "rocoto", + ["price"] = 48500, + ["category"] = "suvs", + ["hash"] = "2136773105", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/28/Rocoto-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("seminole")] = { + ["name"] = "Seminole", + ["brand"] = "Canis", + ["model"] = "seminole", + ["price"] = 29500, + ["category"] = "suvs", + ["hash"] = "1221512915", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a0/Seminole-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("xls")] = { + ["name"] = "XLS", + ["brand"] = "Benefactor", + ["model"] = "xls", + ["price"] = 75000, + ["category"] = "suvs", + ["hash"] = "1203490606", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8c/XLS-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("btype")] = { + ["name"] = "Roosevelt", + ["brand"] = "Albany", + ["model"] = "btype", + ["price"] = 325000, + ["category"] = "sportsclassics", + ["hash"] = "117401876", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b4/Roosevelt-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("btype3")] = { + ["name"] = "Roosevelt Valor", + ["brand"] = "Albany", + ["model"] = "btype3", + ["price"] = 375000, + ["category"] = "sportsclassics", + ["hash"] = "-602287871", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2a/RooseveltValor-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("btype2")] = { + ["name"] = "Franken Stange", + ["brand"] = "Albany", + ["model"] = "btype2", + ["price"] = 350000, + ["category"] = "sportsclassics", + ["hash"] = "-831834716", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/63/FränkenStange-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("casco")] = { + ["name"] = "Casco", + ["brand"] = "Lampadati", + ["model"] = "casco", + ["price"] = 102000, + ["category"] = "sportsclassics", + ["hash"] = "941800958", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/86/Casco-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("coquette2")] = { + ["name"] = "Coquette Classic", + ["brand"] = "Invetero", + ["model"] = "coquette2", + ["price"] = 125000, + ["category"] = "sportsclassics", + ["hash"] = "1011753235", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0b/CoquetteClassic-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("monroe")] = { + ["name"] = "Monroe", + ["brand"] = "Pegassi", + ["model"] = "monroe", + ["price"] = 98500, + ["category"] = "sportsclassics", + ["hash"] = "-433375717", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/44/Monroe-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("pigalle")] = { + ["name"] = "Pigalle", + ["brand"] = "Lampadati", + ["model"] = "pigalle", + ["price"] = 135000, + ["category"] = "sportsclassics", + ["hash"] = "1078682497", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d4/Pigalle-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("stingergt")] = { + ["name"] = "Stinger GT", + ["brand"] = "Grotti", + ["model"] = "stingergt", + ["price"] = 184000, + ["category"] = "sportsclassics", + ["hash"] = "-2098947590", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c5/StingerGT-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("feltzer3")] = { + ["name"] = "Stirling GT", + ["brand"] = "Benefactor", + ["model"] = "feltzer3", + ["price"] = 195000, + ["category"] = "sportsclassics", + ["hash"] = "-1566741232", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d2/StirlingGT-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("ztype")] = { + ["name"] = "Z-Type", + ["brand"] = "Truffade", + ["model"] = "ztype", + ["price"] = 2500000, + ["category"] = "sportsclassics", + ["hash"] = "758895617", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9d/Z-Type-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("coupes")] = { + ["name"] = "Cognoscenti Cabrio", + ["brand"] = "Enus", + ["model"] = "cogcabrio", + ["price"] = 45500, + ["category"] = "coupes", + ["hash"] = "330661258", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/28/CognoscentiCabrioUp-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("exemplar")] = { + ["name"] = "Exemplar", + ["brand"] = "Dewbauchee", + ["model"] = "exemplar", + ["price"] = 65000, + ["category"] = "coupes", + ["hash"] = "-5153954", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/de/Exemplar-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("f620")] = { + ["name"] = "F620", + ["brand"] = "Ocelot", + ["model"] = "f620", + ["price"] = 37500, + ["category"] = "coupes", + ["hash"] = "-591610296", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f8/F620-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("felon")] = { + ["name"] = "Felon", + ["brand"] = "Lampadati", + ["model"] = "felon", + ["price"] = 31000, + ["category"] = "coupes", + ["hash"] = "-391594584", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/de/Felon-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("felon2")] = { + ["name"] = "Felon GT", + ["brand"] = "Lampadati", + ["model"] = "felon2", + ["price"] = 37000, + ["category"] = "coupes", + ["hash"] = "-89291282", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0f/FelonGTDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("jackal")] = { + ["name"] = "Jackal", + ["brand"] = "Ocelot", + ["model"] = "jackal", + ["price"] = 29000, + ["category"] = "coupes", + ["hash"] = "-624529134", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/48/Jackal-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("oracle2")] = { + ["name"] = "Oracle XS", + ["brand"] = "Übermacht", + ["model"] = "oracle2", + ["price"] = 28000, + ["category"] = "coupes", + ["hash"] = "-511601230", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/22/OracleXS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sentinel")] = { + ["name"] = "Sentinel", + ["brand"] = "Übermacht", + ["model"] = "sentinel", + ["price"] = 30000, + ["category"] = "coupes", + ["hash"] = "1349725314", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/75/SentinelUp-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sentinel2")] = { + ["name"] = "Sentinel XS", + ["brand"] = " Übermacht", + ["model"] = "sentinel2", + ["price"] = 36500, + ["category"] = "coupes", + ["hash"] = "873639469", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d0/SentinelXS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("windsor")] = { + ["name"] = "Windsor", + ["brand"] = "Enus", + ["model"] = "windsor", + ["price"] = 325000, + ["category"] = "coupes", + ["hash"] = "1581459400", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/26/Windsor-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("windsor2")] = { + ["name"] = "Windsor Drop", + ["brand"] = "Enus", + ["model"] = "windsor2", + ["price"] = 355000, + ["category"] = "coupes", + ["hash"] = "-1930048799", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/31/WindsorDropUp-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("zion")] = { + ["name"] = "Zion", + ["brand"] = "Übermacht", + ["model"] = "zion", + ["price"] = 25500, + ["category"] = "coupes", + ["hash"] = "-1122289213", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/cc/Zion-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("zion2")] = { + ["name"] = "Zion Cabrio", + ["brand"] = "Übermacht", + ["model"] = "zion2", + ["price"] = 27000, + ["category"] = "coupes", + ["hash"] = "-1193103848", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/cb/ZionCabrioDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("ninef")] = { + ["name"] = "9F", + ["brand"] = "Obey", + ["model"] = "ninef", + ["price"] = 135000, + ["category"] = "sports", + ["hash"] = "1032823388", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2d/9F-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("ninef2")] = { + ["name"] = "9F Cabrio", + ["brand"] = "Obey", + ["model"] = "ninef2", + ["price"] = 142000, + ["category"] = "sports", + ["hash"] = "-1461482751", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a1/9FCabrio-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("alpha")] = { + ["name"] = "Alpha", + ["brand"] = "Albany", + ["model"] = "alpha", + ["price"] = 38000, + ["category"] = "sports", + ["hash"] = "767087018", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/94/Alpha-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("banshee")] = { + ["name"] = "Banshee", + ["brand"] = "Bravado", + ["model"] = "banshee", + ["price"] = 98000, + ["category"] = "sports", + ["hash"] = "-1041692462", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/82/Banshee-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bestiagts")] = { + ["name"] = "Bestia GTS", + ["brand"] = "Grotti", + ["model"] = "bestiagts", + ["price"] = 197000, + ["category"] = "sports", + ["hash"] = "1274868363", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a5/BestiaGTS-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("buffalo")] = { + ["name"] = "Buffalo", + ["brand"] = "Bravado", + ["model"] = "buffalo", + ["price"] = 32000, + ["category"] = "sports", + ["hash"] = "-304802106", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7d/Buffalo-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("buffalo2")] = { + ["name"] = "Buffalo S", + ["brand"] = "Bravado", + ["model"] = "buffalo2", + ["price"] = 39500, + ["category"] = "sports", + ["hash"] = "736902334", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e1/BuffaloS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("carbonizzare")] = { + ["name"] = "Carbonizzare", + ["brand"] = "Grotti", + ["model"] = "carbonizzare", + ["price"] = 219000, + ["category"] = "sports", + ["hash"] = "2072687711", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7b/CarbonizzareDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("comet2")] = { + ["name"] = "Comet", + ["brand"] = "Pfister", + ["model"] = "comet2", + ["price"] = 142000, + ["category"] = "sports", + ["hash"] = "-1045541610", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d2/Comet-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("coquette")] = { + ["name"] = "Coquette", + ["brand"] = "Invetero", + ["model"] = "coquette", + ["price"] = 97000, + ["category"] = "sports", + ["hash"] = "108773431", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/08/Coquette-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("elegy2")] = { + ["name"] = "Elegy RH8", + ["brand"] = "Annis", + ["model"] = "elegy2", + ["price"] = 68500, + ["category"] = "sports", + ["hash"] = "-566387422", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4f/ElegyRH8-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("feltzer2")] = { + ["name"] = "Feltzer", + ["brand"] = "Benefactor", + ["model"] = "feltzer2", + ["price"] = 83500, + ["category"] = "sports", + ["hash"] = "-1995326987", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8f/Feltzer-GTAVPC-Front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("furoregt")] = { + ["name"] = "Furore GT", + ["brand"] = "Lampadati", + ["model"] = "furoregt", + ["price"] = 115000, + ["category"] = "sports", + ["hash"] = "-1089039904", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/56/FuroreGT-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("fusilade")] = { + ["name"] = "Fusilade", + ["brand"] = "Schyster", + ["model"] = "fusilade", + ["price"] = 50000, + ["category"] = "sports", + ["hash"] = "499169875", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a0/Fusilade-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("jester")] = { + ["name"] = "Jester", + ["brand"] = "Dinka", + ["model"] = "jester", + ["price"] = 265000, + ["category"] = "sports", + ["hash"] = "-1297672541", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/af/Jester-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("khamelion")] = { + ["name"] = "Khamelion", + ["brand"] = "Hijak", + ["model"] = "khamelion", + ["price"] = 102000, + ["category"] = "sports", + ["hash"] = "544021352", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1f/Khamelion-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("kuruma")] = { + ["name"] = "Kuruma", + ["brand"] = "Karin", + ["model"] = "kuruma", + ["price"] = 59500, + ["category"] = "sports", + ["hash"] = "-1372848492", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/53/Kuruma-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("lynx")] = { + ["name"] = "Lynx", + ["brand"] = "Ocelot", + ["model"] = "lynx", + ["price"] = 68500, + ["category"] = "sports", + ["hash"] = "482197771", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a7/Lynx-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("mamba")] = { + ["name"] = "Mamba", + ["brand"] = "Declasse", + ["model"] = "mamba", + ["price"] = 86000, + ["category"] = "sportsclassics", + ["hash"] = "-1660945322", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/d4/Mamba-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("massacro")] = { + ["name"] = "Massacro", + ["brand"] = "Dewbauchee", + ["model"] = "massacro", + ["price"] = 165000, + ["category"] = "sports", + ["hash"] = "-142942670", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/12/Massacro-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rapidgt")] = { + ["name"] = "Rapid GT", + ["brand"] = "Dewbauchee", + ["model"] = "rapidgt", + ["price"] = 60000, + ["category"] = "sports", + ["hash"] = "-1934452204", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/42/RapidGT-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rapidgt2")] = { + ["name"] = "Rapid GT Convertible", + ["brand"] = "Dewbauchee", + ["model"] = "rapidgt2", + ["price"] = 65000, + ["category"] = "sports", + ["hash"] = "1737773231", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f8/RapidGT2-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("schafter3")] = { + ["name"] = "Schafter V12", + ["brand"] = "Benefactor", + ["model"] = "schafter3", + ["price"] = 69000, + ["category"] = "sports", + ["hash"] = "-1485523546", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a6/SchafterV12-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("seven70")] = { + ["name"] = "Seven-70", + ["brand"] = "Dewbauchee", + ["model"] = "seven70", + ["price"] = 85000, + ["category"] = "sports", + ["hash"] = "-1757836725", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/21/Seven70-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sultan")] = { + ["name"] = "Sultan", + ["brand"] = "Karin", + ["model"] = "sultan", + ["price"] = 56500, + ["category"] = "sports", + ["hash"] = "970598228", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/bb/Sultan-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("surano")] = { + ["name"] = "Surano", + ["brand"] = " Benefactor", + ["model"] = "surano", + ["price"] = 89000, + ["category"] = "sports", + ["hash"] = "384071873", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/fd/SuranoDown-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("verlierer2")] = { + ["name"] = "Verlierer", + ["brand"] = "Bravado", + ["model"] = "verlierer2", + ["price"] = 90500, + ["category"] = "sports", + ["hash"] = "1102544804", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8c/Verlierer-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("adder")] = { + ["name"] = "Adder", + ["brand"] = "Truffade", + ["model"] = "adder", + ["price"] = 1000000, + ["category"] = "super", + ["hash"] = "-1216765807", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9e/Adder-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("banshee2")] = { + ["name"] = "Banshee 900R", + ["brand"] = "Bravado", + ["model"] = "banshee2", + ["price"] = 178000, + ["category"] = "super", + ["hash"] = "633712403", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/e/e2/Banshee900RTopless-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bullet")] = { + ["name"] = "Bullet", + ["brand"] = "Vapid", + ["model"] = "bullet", + ["price"] = 190000, + ["category"] = "super", + ["hash"] = "-1696146015", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3d/Bullet-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("cheetah")] = { + ["name"] = "Cheetah", + ["brand"] = "Grotti", + ["model"] = "cheetah", + ["price"] = 395000, + ["category"] = "super", + ["hash"] = "-1311154784", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1e/Cheetah-GTAV-Front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("entityxf")] = { + ["name"] = "Entity XF", + ["brand"] = "Överflöd", + ["model"] = "entityxf", + ["price"] = 825000, + ["category"] = "super", + ["hash"] = "-1291952903", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/95/EntityXF-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("fmj")] = { + ["name"] = "FMJ", + ["brand"] = "Vapid", + ["model"] = "fmj", + ["price"] = 335000, + ["category"] = "super", + ["hash"] = "1426219628", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8c/FMJ-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("infernus")] = { + ["name"] = "Infernus", + ["brand"] = "Pegassi", + ["model"] = "infernus", + ["price"] = 285000, + ["category"] = "super", + ["hash"] = "418536135", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0e/Infernus-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("pfister811")] = { + ["name"] = "811", + ["brand"] = "Pfister", + ["model"] = "pfister811", + ["price"] = 583000, + ["category"] = "super", + ["hash"] = "-1829802492", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c7/811A-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("reaper")] = { + ["name"] = "Reaper", + ["brand"] = "Pegassi", + ["model"] = "reaper", + ["price"] = 365000, + ["category"] = "super", + ["hash"] = "234062309", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5f/Reaper-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("t20")] = { + ["name"] = "T20", + ["brand"] = "Progen", + ["model"] = "t20", + ["price"] = 1680000, + ["category"] = "super", + ["hash"] = "1663218586", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/20/T20-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("turismor")] = { + ["name"] = "Turismo R", + ["brand"] = "Grotti", + ["model"] = "turismor", + ["price"] = 750000, + ["category"] = "super", + ["hash"] = "408192225", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/61/TurismoR-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("vacca")] = { + ["name"] = "Vacca", + ["brand"] = "Pegassi", + ["model"] = "vacca", + ["price"] = 255000, + ["category"] = "super", + ["hash"] = "338562499", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b4/Vacca-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("voltic")] = { + ["name"] = "Voltic", + ["brand"] = "Coil", + ["model"] = "voltic", + ["price"] = 120000, + ["category"] = "super", + ["hash"] = "-1622444098", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/87/Voltic-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("prototipo")] = { + ["name"] = "X80 Proto", + ["brand"] = "Grotti", + ["model"] = "prototipo", + ["price"] = 1430000, + ["category"] = "super", + ["hash"] = "2123327359", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b3/X80Proto-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("zentorno")] = { + ["name"] = "Zentorno", + ["brand"] = "Pegassi", + ["model"] = "zentorno", + ["price"] = 1250000, + ["category"] = "super", + ["hash"] = "-1403128555", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/60/Zentorno-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("avarus")] = { + ["name"] = "Avarus", + ["brand"] = "LCC", + ["model"] = "avarus", + ["price"] = 6500, + ["category"] = "motorcycles", + ["hash"] = "-2115793025", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1a/Avarus-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bagger")] = { + ["name"] = "Bagger", + ["brand"] = "WMC", + ["model"] = "bagger", + ["price"] = 7000, + ["category"] = "motorcycles", + ["hash"] = "-2140431165", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/10/Bagger-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sovereign")] = { + ["name"] = "Sovereign", + ["brand"] = "WMC", + ["model"] = "sovereign", + ["price"] = 27000, + ["category"] = "motorcycles", + ["hash"] = "743478836", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/98/Sovereign-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bati")] = { + ["name"] = "Bati 801", + ["brand"] = "Pegassi", + ["model"] = "bati", + ["price"] = 17500, + ["category"] = "motorcycles", + ["hash"] = "-114291515", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/65/Bati801-GTAV-FrontQuarter.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("carbonrs")] = { + ["name"] = "Carbon RS", + ["brand"] = "Nagasaki", + ["model"] = "carbonrs", + ["price"] = 14500, + ["category"] = "motorcycles", + ["hash"] = "11251904", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2d/CarbonRS-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("chimera")] = { + ["name"] = "Chimera", + ["brand"] = "Nagasaki", + ["model"] = "chimera", + ["price"] = 15000, + ["category"] = "motorcycles", + ["hash"] = "6774487", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8a/Chimera-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("daemon")] = { + ["name"] = "Daemon", + ["brand"] = "WMC", + ["model"] = "daemon", + ["price"] = 12500, + ["category"] = "motorcycles", + ["hash"] = "2006142190", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6b/Daemon2-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("defiler")] = { + ["name"] = "Defiler", + ["brand"] = "Shitzu", + ["model"] = "defiler", + ["price"] = 13500, + ["category"] = "motorcycles", + ["hash"] = "822018448", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f5/Defiler-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("esskey")] = { + ["name"] = "Esskey", + ["brand"] = "Pegassi", + ["model"] = "esskey", + ["price"] = 6000, + ["category"] = "motorcycles", + ["hash"] = "2035069708", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4e/Esskey-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("faggio")] = { + ["name"] = "Faggio Sport", + ["brand"] = "Pegassi", + ["model"] = "faggio", + ["price"] = 750, + ["category"] = "motorcycles", + ["hash"] = "55628203", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/50/FaggioSport-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("hakuchou")] = { + ["name"] = "Hakuchou", + ["brand"] = "Shitzu", + ["model"] = "hakuchou", + ["price"] = 16000, + ["category"] = "motorcycles", + ["hash"] = "1265391242", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/ab/Hakuchou-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("hexer")] = { + ["name"] = "Hexer", + ["brand"] = "LCC", + ["model"] = "hexer", + ["price"] = 7500, + ["category"] = "motorcycles", + ["hash"] = "301427732", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/64/Hexer-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("nemesis")] = { + ["name"] = "Nemesis", + ["brand"] = "Principe", + ["model"] = "nemesis", + ["price"] = 12000, + ["category"] = "motorcycles", + ["hash"] = "-634879114", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4b/Nemesis-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("nightblade")] = { + ["name"] = "Nightblade", + ["brand"] = "WMC", + ["model"] = "nightblade", + ["price"] = 14500, + ["category"] = "motorcycles", + ["hash"] = "-1606187161", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6b/Nightblade-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("pcj")] = { + ["name"] = "PCJ-600", + ["brand"] = "Shitzu", + ["model"] = "pcj", + ["price"] = 13500, + ["category"] = "motorcycles", + ["hash"] = "-909201658", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/74/PCJ600-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("ruffian")] = { + ["name"] = "Ruffian", + ["brand"] = "Pegassi", + ["model"] = "ruffian", + ["price"] = 14000, + ["category"] = "motorcycles", + ["hash"] = "-893578776", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/70/Ruffian-GTAV-front-variant2.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("thrust")] = { + ["name"] = "Thrust", + ["brand"] = "Dinka", + ["model"] = "thrust", + ["price"] = 16000, + ["category"] = "motorcycles", + ["hash"] = "1836027715", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4e/Thrust-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("visione")] = { + ["name"] = "Visione", + ["brand"] = "Grotti", + ["model"] = "visione", + ["price"] = 1750000, + ["category"] = "sports", + ["hash"] = "-998177792", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/57/Visione-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("gt500")] = { + ["name"] = "GT500", + ["brand"] = "Grotti", + ["model"] = "gt500", + ["price"] = 255000, + ["category"] = "sportsclassics", + ["hash"] = "-2079788230", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/25/GT500-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("cyclone")] = { + ["name"] = "Cyclone", + ["brand"] = "Coil", + ["model"] = "cyclone", + ["price"] = 1200000, + ["category"] = "super", + ["hash"] = "1392481335", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/Cyclone-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("comet5")] = { + ["name"] = "Comet SR", + ["brand"] = "Pfister", + ["model"] = "comet5", + ["price"] = 252000, + ["category"] = "sports", + ["hash"] = "661493923", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/0f/CometSR-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rapidgt3")] = { + ["name"] = "Rapid GT", + ["brand"] = "Dewbauchee", + ["model"] = "rapidgt3", + ["price"] = 445000, + ["category"] = "sportsclassics", + ["hash"] = "2049897956", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/13/RapidGTClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("streiter")] = { + ["name"] = "Streiter", + ["brand"] = "Benefactor", + ["model"] = "streiter", + ["price"] = 98000, + ["category"] = "sports", + ["hash"] = "1741861769", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/38/Streiter-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("pariah")] = { + ["name"] = "Pariah", + ["brand"] = "Ocelot", + ["model"] = "pariah", + ["price"] = 395000, + ["category"] = "sports", + ["hash"] = "867799010", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/ff/Pariah-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("raiden")] = { + ["name"] = "Raiden", + ["brand"] = "Coil", + ["model"] = "raiden", + ["price"] = 150000, + ["category"] = "sports", + ["hash"] = "-1529242755", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/b5/Raiden-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("hustler")] = { + ["name"] = "Hustler", + ["brand"] = "Vapid", + ["model"] = "hustler", + ["price"] = 75500, + ["category"] = "muscle", + ["hash"] = "600450546", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f1/Hustler-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("yosemite")] = { + ["name"] = "Yosemite", + ["brand"] = "Declasse", + ["model"] = "yosemite", + ["price"] = 19500, + ["category"] = "muscle", + ["hash"] = "1871995513", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/09/Yosemite-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sultanrs")] = { + ["name"] = "Sultan RS", + ["brand"] = "Karin", + ["model"] = "sultanrs", + ["price"] = 76500, + ["category"] = "sports", + ["hash"] = "-295689028", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c1/SultanRS-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sc1")] = { + ["name"] = "SC1", + ["brand"] = "Übermacht", + ["model"] = "sc1", + ["price"] = 750000, + ["category"] = "super", + ["hash"] = "1352136073", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3a/SC1-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("z190")] = { + ["name"] = "190Z", + ["brand"] = "Karin", + ["model"] = "z190", + ["price"] = 330000, + ["category"] = "sportsclassics", + ["hash"] = "838982985", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/b/be/190z-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("neon")] = { + ["name"] = "Neon", + ["brand"] = "Pfister", + ["model"] = "neon", + ["price"] = 185000, + ["category"] = "sports", + ["hash"] = "-1848994066", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c0/Neon-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("autarch")] = { + ["name"] = "Autarch", + ["brand"] = "Överflöd", + ["model"] = "autarch", + ["price"] = 1800000, + ["category"] = "super", + ["hash"] = "-313185164", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6c/Autarch-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("blista2")] = { + ["name"] = "Blista Compact", + ["brand"] = "Dinka", + ["model"] = "blista2", + ["price"] = 12500, + ["category"] = "compacts", + ["hash"] = "1039032026", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/06/BlistaCompact-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("issi3")] = { + ["name"] = "Issi Classic", + ["brand"] = "Weeny", + ["model"] = "issi3", + ["price"] = 10000, + ["category"] = "compacts", + ["hash"] = "931280609", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9f/IssiClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dilettante")] = { + ["name"] = "Dilettante", + ["brand"] = "Karin", + ["model"] = "dilettante", + ["price"] = 13000, + ["category"] = "compacts", + ["hash"] = "-1130810103", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/80/Dilettante-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("rhapsody")] = { + ["name"] = "Rhapsody", + ["brand"] = "Declasse", + ["model"] = "rhapsody", + ["price"] = 10000, + ["category"] = "compacts", + ["hash"] = "841808271", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/cc/Rhapsody-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("stalion")] = { + ["name"] = "Stallion", + ["brand"] = "Declasse", + ["model"] = "stalion", + ["price"] = 23500, + ["category"] = "muscle", + ["hash"] = "1923400478", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/00/Stallion-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("infernus2")] = { + ["name"] = "Infernus Classic", + ["brand"] = "Pegassi", + ["model"] = "infernus2", + ["price"] = 200000, + ["category"] = "sportsclassics", + ["hash"] = "-1405937764", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/73/InfernusClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("ruston")] = { + ["name"] = "Ruston", + ["brand"] = "Hijak", + ["model"] = "ruston", + ["price"] = 165000, + ["category"] = "sports", + ["hash"] = "719660200", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/2/2c/Ruston-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("specter")] = { + ["name"] = "Specter", + ["brand"] = "Dewbauchee", + ["model"] = "specter", + ["price"] = 155000, + ["category"] = "sports", + ["hash"] = "1886268224", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/7/7b/Specter-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("cheetah2")] = { + ["name"] = "Cheetah Classic", + ["brand"] = "Grotti", + ["model"] = "cheetah2", + ["price"] = 220000, + ["category"] = "sports", + ["hash"] = "223240013", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/38/CheetahClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("torero")] = { + ["name"] = "Torero", + ["brand"] = "Pegassi", + ["model"] = "torero", + ["price"] = 285500, + ["category"] = "sportsclassics", + ["hash"] = "1504306544", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/47/Torero-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("gp1")] = { + ["name"] = "GP1", + ["brand"] = "Progen", + ["model"] = "gp1", + ["price"] = 462000, + ["category"] = "super", + ["hash"] = "1234311532", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8a/GP1-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("penetrator")] = { + ["name"] = "Penetrator", + ["brand"] = "Ocelot", + ["model"] = "penetrator", + ["price"] = 567000, + ["category"] = "super", + ["hash"] = "-1758137366", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9c/Penetrator-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("tempesta")] = { + ["name"] = "Tempesta", + ["brand"] = "Pegassi", + ["model"] = "tempesta", + ["price"] = 400000, + ["category"] = "super", + ["hash"] = "272929391", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/35/Tempesta-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("vagner")] = { + ["name"] = "Vagner", + ["brand"] = "Dewbauchee", + ["model"] = "vagner", + ["price"] = 1460000, + ["category"] = "super", + ["hash"] = "1939284556", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/14/Vagner-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("italigtb")] = { + ["name"] = "Itali GTB", + ["brand"] = "Progen", + ["model"] = "italigtb", + ["price"] = 1200000, + ["category"] = "super", + ["hash"] = "-482719877", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/44/ItaliGTB-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("xa21")] = { + ["name"] = "XA-21", + ["brand"] = "Ocelot", + ["model"] = "xa21", + ["price"] = 2150000, + ["category"] = "super", + ["hash"] = "917809321", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/69/XA21-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("jester3")] = { + ["name"] = "Jester Classic", + ["brand"] = "Dinka", + ["model"] = "jester3", + ["price"] = 70000, + ["category"] = "sports", + ["hash"] = "-214906006", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/1/1a/JesterClassic-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("elegy")] = { + ["name"] = "Elegy Retro Custom", + ["brand"] = "Annis", + ["model"] = "elegy", + ["price"] = 60000, + ["category"] = "sports", + ["hash"] = "196747873 ", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/68/ElegyRetroCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("dominator3")] = { + ["name"] = "Dominator GTX", + ["brand"] = "Vapid", + ["model"] = "dominator3", + ["price"] = 87500, + ["category"] = "muscle", + ["hash"] = "-986944621", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/8/8b/DominatorGTX-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("tezeract")] = { + ["name"] = "Tezeract", + ["brand"] = "Pegassi", + ["model"] = "tezeract", + ["price"] = 2350000, + ["category"] = "super", + ["hash"] = "1031562256", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/ca/Tezeract-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("entity2")] = { + ["name"] = "Entity XXR", + ["brand"] = "Överflöd", + ["model"] = "entity2", + ["price"] = 1532000, + ["category"] = "super", + ["hash"] = "-2120700196", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/9/9a/EntityXXR-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("nero")] = { + ["name"] = "Nero", + ["brand"] = "Truffade", + ["model"] = "nero", + ["price"] = 2352000, + ["category"] = "super", + ["hash"] = "1034187331", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/5e/Nero-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("comet3")] = { + ["name"] = "Comet Retro Custom", + ["brand"] = "Pfister", + ["model"] = "comet3", + ["price"] = 125000, + ["category"] = "sports", + ["hash"] = "-2022483795", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/a/a0/CometRetroCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("taipan")] = { + ["name"] = "Taipan", + ["brand"] = "Cheval", + ["model"] = "taipan", + ["price"] = 1650000, + ["category"] = "super", + ["hash"] = "-1134706562", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/4/4c/Taipan-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("tyrant")] = { + ["name"] = "Tyrant", + ["brand"] = " Överflöd", + ["model"] = "tyrant", + ["price"] = 2100000, + ["category"] = "super", + ["hash"] = "-376434238", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/f/f7/Tyrant-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("osiris")] = { + ["name"] = "Osiris", + ["brand"] = "Pegassi", + ["model"] = "osiris", + ["price"] = 1400000, + ["category"] = "super", + ["hash"] = "1987142870", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/5/53/Osiris-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("flashgt")] = { + ["name"] = "Flash GT", + ["brand"] = "Vapid", + ["model"] = "flashgt", + ["price"] = 111000, + ["category"] = "sports", + ["hash"] = "-1259134696", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/3/3b/FlashGT-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("specter2")] = { + ["name"] = "Specter Custom", + ["brand"] = "Dewbauchee", + ["model"] = "specter2", + ["price"] = 178000, + ["category"] = "sports", + ["hash"] = "1074745671", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/01/SpecterCustom-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("surge")] = { + ["name"] = "Surge", + ["brand"] = "Cheval", + ["model"] = "surge", + ["price"] = 28500, + ["category"] = "sedans", + ["hash"] = "-1894894188", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/c/c2/Surge-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("ellie")] = { + ["name"] = "Ellie", + ["brand"] = "Vapid", + ["model"] = "ellie", + ["price"] = 50000, + ["category"] = "muscle", + ["hash"] = "-1267543371", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/6/6b/Ellie-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("bjxl")] = { + ["name"] = "BeeJay XL", + ["brand"] = "Karin", + ["model"] = "bjxl", + ["price"] = 47000, + ["category"] = "suvs", + ["hash"] = "850565707", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/d/da/BeeJayXL-GTAV-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("faggio3")] = { + ["name"] = "Faggio Mod", + ["brand"] = "Pegassi", + ["model"] = "faggio3", + ["price"] = 900, + ["category"] = "motorcycles", + ["hash"] = "-1289178744", + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("schwarzer2")] = { + ["name"] = "Schwarzer Custom", + ["brand"] = "Benefactor", + ["model"] = "schwarzer2", + ["price"] = 285000, + ["category"] = "tuner", + ["hash"] = GetHashKey("schwarzer2"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "custom", + }, + [GetHashKey("sgrx")] = { + ["name"] = "SGRX", + ["brand"] = "Maibatsu", + ["model"] = "sgrx", + ["price"] = 301520, + ["category"] = "tuner", + ["hash"] = GetHashKey("sgrx"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("sentinelc1")] = { + ["name"] = "Sentinel Custom XR", + ["brand"] = "Ubermach", + ["model"] = "sentinelc1", + ["price"] = 250000, + ["category"] = "tuner", + ["hash"] = GetHashKey("sentinelc1"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("zr3806str")] = { + ["name"] = "ZR380 6STR", + ["brand"] = "Annis", + ["model"] = "zr3806str", + ["price"] = 315600, + ["category"] = "tuner", + ["hash"] = GetHashKey("zr3806str"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 100000, + ["trunkslots"] = 80, + ["shop"] = "pdm", + }, + [GetHashKey("omnis")] = { + ["name"] = "omnis", + ["brand"] = "Annis", + ["model"] = "omnis", + ["price"] = 120000, + ["category"] = "sports", + ["hash"] = GetHashKey("omnis"), + ["image"] = "https://vignette.wikia.nocookie.net/gtawiki/images/0/07/FaggioMod-GTAO-front.png", + ["trunkspace"] = 40000, + ["trunkslots"] = 40, + ["shop"] = "pdm", + }, +} + +QBShared.Gangs = { + ["geen"] = { + label = "No Gang" + }, + ["testgang"] = { + label = "Test Gang" + } +} + +QBShared.Jobs = { + ["unemployed"] = { + label = "Unemployed", + payment = 10, + defaultDuty = true, + }, + ["police"] = { + label = "Police", + payment = 400, + defaultDuty = true, + }, + ["doctor"] = { + label = "Doctor", + payment = 600, + defaultDuty = true, + }, + ["ambulance"] = { + label = "Ambulance", + payment = 400, + defaultDuty = true, + }, + ["trucker"] = { + label = "Trucker", + payment = 10, + defaultDuty = true, + }, + ["taxi"] = { + label = "Taxi", + payment = 10, + defaultDuty = true, + }, + ["realestate"] = { + label = "Real Estate", + payment = 10, + defaultDuty = true, + }, + ["tow"] = { + label = "Begnet's Towing", + payment = 10, + defaultDuty = true, + }, + ["reporter"] = { + label = "Reporter", + payment = 10, + defaultDuty = true, + }, + ["judge"] = { + label = "Judge", + payment = 500, + defaultDuty = true, + }, + ["lawyer"] = { + label = "Lawyer", + payment = 50, + defaultDuty = true, + }, + ["cardealer"] = { + label = "Vehicle Dealer", + payment = 150, + defaultDuty = true, + }, + ["mechanic"] = { + label = "Mechanic", + payment = 150, + defaultDuty = true, + }, + ["garbage"] = { + label = "Garbage Collector", + payment = 12, + defaultDuty = true, + }, + ["hotdog"] = { + label = "Hotdog Stand", + payment = 12, + defaultDuty = true, + }, +} + +QBShared.StarterItems = { + ["phone"] = {amount = 1, item = "phone"}, + ["id_card"] = {amount = 1, item = "id_card"}, + ["driver_license"] = {amount = 1, item = "driver_license"}, +} \ No newline at end of file