Config Server
Don't forget to adapt your own garage before start the script on function InsertVehicle / RemoveVehicle
Script is Ready for the "Renzu Garage", "ESX /QB Garage", "LOAF GARAGE"
local Framework = nil
if GetResourceState('es_extended') == 'started' then
Framework = exports['es_extended']:getSharedObject()
elseif GetResourceState('qb-core') == 'started' then
Framework = exports['qb-core']:GetCoreObject()
end
function FrameworkNotification(text, type, source)
if Config.CustomNotify == true then
-- Put here your code
else
if GetResourceState('ox_lib') == 'started' then
TriggerClientEvent('ox_lib:notify', source, {title = 'Revel - VehicleShop', position = "center-left",description = text,type = type})
elseif GetResourceState('qb-core') == 'started' then
source.Functions.Notify(text, type)
end
end
end
function FrameworkGetPlayer(player)
if Config.CustomFramework == true then
-- Put here your code
else
if GetResourceState('es_extended') == 'started' then
return Framework.GetPlayerFromId(player)
elseif GetResourceState('qb-core') == 'started' then
return Framework.Functions.GetPlayer(player)
end
end
end
function FrameworkGetMoney(player)
if Config.CustomFramework == true then
-- Put here your code
else
if GetResourceState('es_extended') == 'started' then
return player.getAccount('bank').money
elseif GetResourceState('qb-core') == 'started' then
return player.PlayerData.money.bank
end
end
end
function FrameworkAddMoney(player, amount)
if Config.CustomFramework == true then
-- Put here your code
else
if GetResourceState('es_extended') == 'started' then
player.addAccountMoney("bank", amount)
elseif GetResourceState('qb-core') == 'started' then
player.Functions.addMoney('bank', amount)
end
end
end
function FrameworkRemoveMoney(player, amount)
if Config.CustomFramework == true then
-- Put here your code
else
if GetResourceState('es_extended') == 'started' then
player.removeAccountMoney("bank",amount)
elseif GetResourceState('qb-core') == 'started' then
player.Functions.removeMoney('bank', amount)
end
end
end
-- The "category" is essentially used by your garage script when there is more than one type of garage.
-- This information is passed as a string so your garage script can display it correctly.
-- The available types are "air", "boats", and "car". You can modify this with a small snippet if your garage system uses different category names.
-- check the example above
function InsertVehicle(player, model, plate, props, category)
local vehicleData = json.encode(props)
local hash = GetHashKey(model)
if GetResourceState('es_extended') == 'started' then
-- ESX Framework
if GetResourceState('oxmysql') == 'started' then
if GetResourceState('renzu_garage') == 'started' then
exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)',
{player.identifier, plate, vehicleData, category, "legion", 0})
elseif GetResourceState('esx_garage') == 'started' then
exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, vehicle, type, job, stored, garage) VALUES (?, ?, ?, ?, ?, ?, ?)',
{player.identifier, plate, vehicleData, category, false, 0, "default"})
elseif GetResourceState('revel_player') == 'started' then
exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
{player.identifier, plate, model, model, vehicleData, category, "out", 0, 0})
elseif GetResourceState('loaf_garage') == 'started' then
exports.oxmysql:insert('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)',
{player.identifier, plate, "default", vehicleData, 0})
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
elseif GetResourceState('mysql-async') == 'started' then
if GetResourceState('renzu_garage') == 'started' or GetResourceState('esx_garage') == 'started' then
MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)',
{player.identifier, plate, vehicleData, category, "legion", 0})
elseif GetResourceState('revel_player') == 'started' then
MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
{player.identifier, plate, model, model, vehicleData, category, "out", 0, 0})
elseif GetResourceState('loaf_garage') == 'started' then
MySQL.Async.execute('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)',
{player.identifier, plate, "default", vehicleData, 0})
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
end
elseif GetResourceState('qb-core') == 'started' then
-- QBCore Framework
if GetResourceState('oxmysql') == 'started' then
if GetResourceState('renzu_garage') == 'started' then
exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, vehicleData, category or "car", "default", 0})
elseif GetResourceState('revel_player') == 'started' then
exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, model, model, vehicleData, category or "car", "out", 0, 0})
elseif GetResourceState('loaf_garage') == 'started' then
exports.oxmysql:insert('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, "default", vehicleData, 0})
elseif GetResourceState('qb-garages') == 'started' then
exports.oxmysql:insert('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, state) VALUES (?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.license, player.PlayerData.citizenid, model, hash, vehicleData, plate, 0})
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
elseif GetResourceState('mysql-async') == 'started' then
if GetResourceState('renzu_garage') == 'started' then
MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, vehicleData, category or "car", "default", 0})
elseif GetResourceState('revel_player') == 'started' then
MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, model, model, vehicleData, category or "car", "out", 0, 0})
elseif GetResourceState('loaf_garage') == 'started' then
MySQL.Async.execute('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, "default", vehicleData, 0})
elseif GetResourceState('qb-garages') == 'started' then
MySQL.Async.execute('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, state) VALUES (?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.license, player.PlayerData.citizenid, model, hash, vehicleData, plate, 0})
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
end
end
end
function RemoveVehicle(player, plate)
local removed = false
if GetResourceState('es_extended') == 'started' then
if GetResourceState('oxmysql') == 'started' then
if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
exports.oxmysql:fetch('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate}, function(result)
if result and #result > 0 then
removed = true
exports.oxmysql:execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate})
end
end)
elseif GetResourceState('loaf_garage') == 'started' then
exports.oxmysql:fetch('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate}, function(result)
if result and #result > 0 then
removed = true
exports.oxmysql:execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate})
end
end)
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
elseif GetResourceState('mysql-async') == 'started' then
if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate}, function(result)
if result and #result > 0 then
removed = true
MySQL.Async.execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate})
end
end)
elseif GetResourceState('loaf_garage') == 'started' then
MySQL.Async.fetchAll('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate}, function(result)
if result and #result > 0 then
removed = true
MySQL.Async.execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate})
end
end)
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
end
elseif GetResourceState('qb-core') == 'started' then
if GetResourceState('oxmysql') == 'started' then
if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
exports.oxmysql:fetch('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
if result and #result > 0 then
removed = true
exports.oxmysql:execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate})
end
end)
elseif GetResourceState('loaf_garage') == 'started' then
exports.oxmysql:fetch('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
if result and #result > 0 then
removed = true
exports.oxmysql:execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate})
end
end)
elseif GetResourceState("qb-garages") == 'started' then
exports.oxmysql:fetch('SELECT * FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
player.PlayerData.license, player.PlayerData.citizenid, plate
}, function(result)
if result and #result > 0 then
removed = true
exports.oxmysql:execute('DELETE FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
player.PlayerData.license, player.PlayerData.citizenid, plate
})
end
end)
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
elseif GetResourceState('mysql-async') == 'started' then
if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
if result and #result > 0 then
removed = true
MySQL.Async.execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate})
end
end)
elseif GetResourceState('loaf_garage') == 'started' then
MySQL.Async.fetchAll('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
if result and #result > 0 then
removed = true
MySQL.Async.execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate})
end
end)
elseif GetResourceState("qb-garages") == 'started' then
MySQL.Async.fetchAll('SELECT * FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
player.PlayerData.license, player.PlayerData.citizenid, plate
}, function(result)
if result and #result > 0 then
removed = true
MySQL.Async.execute('DELETE FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
player.PlayerData.license, player.PlayerData.citizenid, plate
})
end
end)
else
print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
end
end
end
Citizen.Wait(250)
return removed
end
Last updated