es_extended
ESX = {}
ESX = {}
ESX.PlayerData = {}
ESX.PlayerData = {}
ESX.PlayerLoaded = false
ESX.PlayerLoaded = false
ESX.CurrentRequestId = 0
ESX.CurrentRequestId = 0
ESX.ServerCallbacks = {}
ESX.ServerCallbacks = {}
ESX.TimeoutCallbacks = {}
ESX.TimeoutCallbacks = {}
ESX.UI = {}
ESX.UI = {}
ESX.UI.HUD = {}
ESX.UI.HUD = {}
ESX.UI.HUD.RegisteredElements = {}
ESX.UI.HUD.RegisteredElements = {}
ESX.UI.Menu = {}
ESX.UI.Menu = {}
ESX.UI.Menu.RegisteredTypes = {}
ESX.UI.Menu.RegisteredTypes = {}
ESX.UI.Menu.Opened = {}
ESX.UI.Menu.Opened = {}
ESX.Game = {}
ESX.Game = {}
ESX.Game.Utils = {}
ESX.Game.Utils = {}
ESX.Scaleform = {}
ESX.Scaleform = {}
ESX.Scaleform.Utils = {}
ESX.Scaleform.Utils = {}
ESX.Streaming = {}
ESX.Streaming = {}
ESX.SetTimeout = function(msec, cb)
ESX.SetTimeout = function(msec, cb)
table.insert(ESX.TimeoutCallbacks, {
table.insert(ESX.TimeoutCallbacks, {
time = GetGameTimer() + msec,
time = GetGameTimer() + msec,
cb = cb
cb = cb
})
})
return #ESX.TimeoutCallbacks
return #ESX.TimeoutCallbacks
end
end
ESX.ClearTimeout = function(i)
ESX.ClearTimeout = function(i)
ESX.TimeoutCallbacks[i] = nil
ESX.TimeoutCallbacks[i] = nil
end
end
ESX.IsPlayerLoaded = function()
ESX.IsPlayerLoaded = function()
return ESX.PlayerLoaded
return ESX.PlayerLoaded
end
end
ESX.GetPlayerData = function()
ESX.GetPlayerData = function()
return ESX.PlayerData
return ESX.PlayerData
end
end
ESX.SetPlayerData = function(key, val)
ESX.SetPlayerData = function(key, val)
ESX.PlayerData[key] = val
ESX.PlayerData[key] = val
end
end
ESX.ShowNotification = function(msg)
ESX.ShowNotification = function(msg)
SetNotificationTextEntry('STRING')
exports['mythic_notify']:SendAlert('inform', msg, 10000)
AddTextComponentSubstringPlayerName(msg)
-- SetNotificationTextEntry('STRING')
DrawNotification(false, true)
-- AddTextComponentSubstringPlayerName(msg)
-- DrawNotification(false, true)
end
end
ESX.ShowAdvancedNotification = function(title, subject, msg, icon, iconType)
ESX.ShowAdvancedNotification = function(title, subject, msg, icon, iconType)
SetNotificationTextEntry('STRING')
exports['mythic_notify']:SendAlert('inform', msg, 10000)
AddTextComponentSubstringPlayerName(msg)
-- SetNotificationTextEntry('STRING')
SetNotificationMessage(icon, icon, false, iconType, title, subject)
-- AddTextComponentSubstringPlayerName(msg)
DrawNotification(false, false)
-- SetNotificationMessage(icon, icon, false, iconType, title, subject)
-- DrawNotification(false, false)
end
end
ESX.ShowHelpNotification = function(msg)
ESX.ShowHelpNotification = function(msg)
--if not IsHelpMessageBeingDisplayed() then
--if not IsHelpMessageBeingDisplayed() then
BeginTextCommandDisplayHelp('STRING')
BeginTextCommandDisplayHelp('STRING')
AddTextComponentSubstringPlayerName(msg)
AddTextComponentSubstringPlayerName(msg)
EndTextCommandDisplayHelp(0, false, true, -1)
EndTextCommandDisplayHelp(0, false, true, -1)
--end
--end
end
end
ESX.TriggerServerCallback = function(name, cb, ...)
ESX.TriggerServerCallback = function(name, cb, ...)
ESX.ServerCallbacks[ESX.CurrentRequestId] = cb
ESX.ServerCallbacks[ESX.CurrentRequestId] = cb
TriggerServerEvent('esx:triggerServerCallback', name, ESX.CurrentRequestId, ...)
TriggerServerEvent('esx:triggerServerCallback', name, ESX.CurrentRequestId, ...)
if ESX.CurrentRequestId < 65535 then
if ESX.CurrentRequestId < 65535 then
ESX.CurrentRequestId = ESX.CurrentRequestId + 1
ESX.CurrentRequestId = ESX.CurrentRequestId + 1
else
else
ESX.CurrentRequestId = 0
ESX.CurrentRequestId = 0
end
end
end
end
ESX.UI.HUD.SetDisplay = function(opacity)
ESX.UI.HUD.SetDisplay = function(opacity)
SendNUIMessage({
SendNUIMessage({
action = 'setHUDDisplay',
action = 'setHUDDisplay',
opacity = opacity
opacity = opacity
})
})
end
end
ESX.UI.HUD.RegisterElement = function(name, index, priority, html, data)
ESX.UI.HUD.RegisterElement = function(name, index, priority, html, data)
local found = false
local found = false
for i=1, #ESX.UI.HUD.RegisteredElements, 1 do
for i=1, #ESX.UI.HUD.RegisteredElements, 1 do
if ESX.UI.HUD.RegisteredElements[i] == name then
if ESX.UI.HUD.RegisteredElements[i] == name then
found = true
found = true
break
break
end
end
end
end
if found then
if found then
return
return
end
end
table.insert(ESX.UI.HUD.RegisteredElements, name)
table.insert(ESX.UI.HUD.RegisteredElements, name)
SendNUIMessage({
SendNUIMessage({
action = 'insertHUDElement',
action = 'insertHUDElement',
name = name,
name = name,
index = index,
index = index,
priority = priority,
priority = priority,
html = html,
html = html,
data = data
data = data
})
})
ESX.UI.HUD.UpdateElement(name, data)
ESX.UI.HUD.UpdateElement(name, data)
end
end
ESX.UI.HUD.RemoveElement = function(name)
ESX.UI.HUD.RemoveElement = function(name)
for i=1, #ESX.UI.HUD.RegisteredElements, 1 do
for i=1, #ESX.UI.HUD.RegisteredElements, 1 do
if ESX.UI.HUD.RegisteredElements[i] == name then
if ESX.UI.HUD.RegisteredElements[i] == name then
table.remove(ESX.UI.HUD.RegisteredElements, i)
table.remove(ESX.UI.HUD.RegisteredElements, i)
break
break
end
end
end
end
SendNUIMessage({
SendNUIMessage({
action = 'deleteHUDElement',
action = 'deleteHUDElement',
name = name
name = name
})
})
end
end
ESX.UI.HUD.UpdateElement = function(name, data)
ESX.UI.HUD.UpdateElement = function(name, data)
SendNUIMessage({
SendNUIMessage({
action = 'updateHUDElement',
action = 'updateHUDElement',
name = name,
name = name,
data = data
data = data
})
})
end
end
ESX.UI.Menu.RegisterType = function(type, open, close)
ESX.UI.Menu.RegisterType = function(type, open, close)
ESX.UI.Menu.RegisteredTypes[type] = {
ESX.UI.Menu.RegisteredTypes[type] = {
open = open,
open = open,
close = close
close = close
}
}
end
end
ESX.UI.Menu.Open = function(type, namespace, name, data, submit, cancel, change, close)
ESX.UI.Menu.Open = function(type, namespace, name, data, submit, cancel, change, close)
local menu = {}
local menu = {}
menu.type = type
menu.type = type
menu.namespace = namespace
menu.namespace = namespace
menu.name = name
menu.name = name
menu.data = data
menu.data = data
menu.submit = submit
menu.submit = submit
menu.cancel = cancel
menu.cancel = cancel
menu.change = change
menu.change = change
menu.close = function()
menu.close = function()
ESX.UI.Menu.RegisteredTypes[type].close(namespace, name)
ESX.UI.Menu.RegisteredTypes[type].close(namespace, name)
for i=1, #ESX.UI.Menu.Opened, 1 do
for i=1, #ESX.UI.Menu.Opened, 1 do
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then
if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then
ESX.UI.Menu.Opened[i] = nil
ESX.UI.Menu.Opened[i] = nil
end
end
end
end
end
end
if close ~= nil then
if close ~= nil then
close()
close()
end
end
end
end
menu.update = function(query, newData)
menu.update = function(query, newData)
for i=1, #menu.data.elements, 1 do
for i=1, #menu.data.elements, 1 do
local match = true
local match = true
for k,v in pairs(query) do
for k,v in pairs(query) do
if menu.data.elements[i][k] ~= v then
if menu.data.elements[i][k] ~= v then
match = false
match = false
end
end
end
end
if match then
if match then
for k,v in pairs(newData) do
for k,v in pairs(newData) do
menu.data.elements[i][k] = v
menu.data.elements[i][k] = v
end
end
end
end
end
end
end
end
menu.refresh = function()
menu.refresh = function()
ESX.UI.Menu.RegisteredTypes[type].open(namespace, name, menu.data)
ESX.UI.Menu.RegisteredTypes[type].open(namespace, name, menu.data)
end
end
menu.setElement = function(i, key, val)
menu.setElement = function(i, key, val)
menu.data.elements[i][key] = val
menu.data.elements[i][key] = val
end
end
menu.setTitle = function(val)
menu.setTitle = function(val)
menu.data.title = val
menu.data.title = val
end
end
menu.removeElement = function(query)
menu.removeElement = function(query)
for i=1, #menu.data.elements, 1 do
for i=1, #menu.data.elements, 1 do
for k,v in pairs(query) do
for k,v in pairs(query) do
if menu.data.elements[i] then
if menu.data.elements[i] then
if menu.data.elements[i][k] == v then
if menu.data.elements[i][k] == v then
table.remove(menu.data.elements, i)
table.remove(menu.data.elements, i)
break
break
end
end
end
end
end
end
end
end
end
end
table.insert(ESX.UI.Menu.Opened, menu)
table.insert(ESX.UI.Menu.Opened, menu)
ESX.UI.Menu.RegisteredTypes[type].open(namespace, name, data)
ESX.UI.Menu.RegisteredTypes[type].open(namespace, name, data)
return menu
return menu
end
end
ESX.UI.Menu.Close = function(type, namespace, name)
ESX.UI.Menu.Close = function(type, namespace, name)
for i=1, #ESX.UI.Menu.Opened, 1 do
for i=1, #ESX.UI.Menu.Opened, 1 do
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then
if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then
ESX.UI.Menu.Opened[i].close()
ESX.UI.Menu.Opened[i].close()
ESX.UI.Menu.Opened[i] = nil
ESX.UI.Menu.Opened[i] = nil
end
end
end
end
end
end
end
end
ESX.UI.Menu.CloseAll = function()
ESX.UI.Menu.CloseAll = function()
for i=1, #ESX.UI.Menu.Opened, 1 do
for i=1, #ESX.UI.Menu.Opened, 1 do
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i] ~= nil then
ESX.UI.Menu.Opened[i].close()
ESX.UI.Menu.Opened[i].close()
ESX.UI.Menu.Opened[i] = nil
ESX.UI.Menu.Opened[i] = nil
end
end
end
end
end
end
ESX.UI.Menu.GetOpened = function(type, namespace, name)
ESX.UI.Menu.GetOpened = function(type, namespace, name)
for i=1, #ESX.UI.Menu.Opened, 1 do
for i=1, #ESX.UI.Menu.Opened, 1 do
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i] ~= nil then
if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then
if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then
return ESX.UI.Menu.Opened[i]
return ESX.UI.Menu.Opened[i]
end
end
end
end
end
end
end
end
ESX.UI.Menu.GetOpenedMenus = function()
ESX.UI.Menu.GetOpenedMenus = function()
return ESX.UI.Menu.Opened
return ESX.UI.Menu.Opened
end
end
ESX.UI.Menu.IsOpen = function(type, namespace, name)
ESX.UI.Menu.IsOpen = function(type, namespace, name)
return ESX.UI.Menu.GetOpened(type, namespace, name) ~= nil
return ESX.UI.Menu.GetOpened(type, namespace, name) ~= nil
end
end
ESX.UI.ShowInventoryItemNotification = function(add, item, count)
ESX.UI.ShowInventoryItemNotification = function(add, item, count)
SendNUIMessage({
SendNUIMessage({
action = 'inventoryNotification',
action = 'inventoryNotification',
add = add,
add = add,
item = item,
item = item,
count = count
count = count
})
})
end
end
ESX.Game.GetPedMugshot = function(ped)
ESX.Game.GetPedMugshot = function(ped)
local mugshot = RegisterPedheadshot(ped)
local mugshot = RegisterPedheadshot(ped)
while not IsPedheadshotReady(mugshot) do
while not IsPedheadshotReady(mugshot) do
Citizen.Wait(0)
Citizen.Wait(0)
end
end
return mugshot, GetPedheadshotTxdString(mugshot)
return mugshot, GetPedheadshotTxdString(mugshot)
end
end
ESX.Game.Teleport = function(entity, coords, cb)
ESX.Game.Teleport = function(entity, coords, cb)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
while not HasCollisionLoadedAroundEntity(entity) do
while not HasCollisionLoadedAroundEntity(entity) do
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
Citizen.Wait(0)
Citizen.Wait(0)
end
end
SetEntityCoords(entity, coords.x, coords.y, coords.z)
SetEntityCoords(entity, coords.x, coords.y, coords.z)
if cb ~= nil then
if cb ~= nil then
cb()
cb()
end
end
end
end
ESX.Game.SpawnObject = function(model, coords, cb)
ESX.Game.SpawnObject = function(model, coords, cb)
local model = (type(model) == 'number' and model or GetHashKey(model))
local model = (type(model) == 'number' and model or GetHashKey(model))
Citizen.CreateThread(function()
Citizen.CreateThread(function()
ESX.Streaming.RequestModel(model)
ESX.Streaming.RequestModel(model)
local obj = CreateObject(model, coords.x, coords.y, coords.z, true, false, true)
local obj = CreateObject(model, coords.x, coords.y, coords.z, true, false, true)
if cb ~= nil then
if cb ~= nil then
cb(obj)
cb(obj)
end
end
end)
end)
end
end
ESX.Game.SpawnLocalObject = function(model, coords, cb)
ESX.Game.SpawnLocalObject = function(model, coords, cb)
local model = (type(model) == 'number' and model or GetHashKey(model))
local model = (type(model) == 'number' and model or GetHashKey(model))
Citizen.CreateThread(function()
Citizen.CreateThread(function()
ESX.Streaming.RequestModel(model)
ESX.Streaming.RequestModel(model)
local obj = CreateObject(model, coords.x, coords.y, coords.z, false, false, true)
local obj = CreateObject(model, coords.x, coords.y, coords.z, false, false, true)
if cb ~= nil then
if cb ~= nil then
cb(obj)
cb(obj)
end
end
end)
end)
end
end
ESX.Game.DeleteVehicle = function(vehicle)
ESX.Game.DeleteVehicle = function(vehicle)
SetEntityAsMissionEntity(vehicle, false, true)
SetEntityAsMissionEntity(vehicle, false, true)
DeleteVehicle(vehicle)
DeleteVehicle(vehicle)
end
end
ESX.Game.DeleteObject = function(object)
ESX.Game.DeleteObject = function(object)
SetEntityAsMissionEntity(object, false, true)
SetEntityAsMissionEntity(object, false, true)
DeleteObject(object)
DeleteObject(object)
end
end
ESX.Game.SpawnVehicle = function(modelName, coords, heading, cb)
ESX.Game.SpawnVehicle = function(modelName, coords, heading, cb)
local model = (type(modelName) == 'number' and modelName or GetHashKey(modelName))
local model = (type(modelName) == 'number' and modelName or GetHashKey(modelName))
Citizen.CreateThread(function()
Citizen.CreateThread(function()
ESX.Streaming.RequestModel(model)
ESX.Streaming.RequestModel(model)
local vehicle = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)
local vehicle = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)
local id = NetworkGetNetworkIdFromEntity(vehicle)
local id = NetworkGetNetworkIdFromEntity(vehicle)
SetNetworkIdCanMigrate(id, true)
SetNetworkIdCanMigrate(id, true)
SetEntityAsMissionEntity(vehicle, true, false)
SetEntityAsMissionEntity(vehicle, true, false)
SetVehicleHasBeenOwnedByPlayer(vehicle, true)
SetVehicleHasBeenOwnedByPlayer(vehicle, true)
SetVehicleNeedsToBeHotwired(vehicle, false)
SetVehicleNeedsToBeHotwired(vehicle, false)
SetModelAsNoLongerNeeded(model)
SetModelAsNoLongerNeeded(model)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
while not HasCollisionLoadedAroundEntity(vehicle) do
while not HasCollisionLoadedAroundEntity(vehicle) do
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
Citizen.Wait(0)
Citizen.Wait(0)
end
end
SetVehRadioStation(vehicle, 'OFF')
SetVehRadioStation(vehicle, 'OFF')
if cb ~= nil then
if cb ~= nil then
cb(vehicle)
cb(vehicle)
end
end
end)
end)
end
end
ESX.Game.SpawnLocalVehicle = function(modelName, coords, heading, cb)
ESX.Game.SpawnLocalVehicle = function(modelName, coords, heading, cb)
local model = (type(modelName) == 'number' and modelName or GetHashKey(modelName))
local model = (type(modelName) == 'number' and modelName or GetHashKey(modelName))
Citizen.CreateThread(function()
Citizen.CreateThread(function()
ESX.Streaming.RequestModel(model)
ESX.Streaming.RequestModel(model)
local vehicle = CreateVehicle(model, coords.x, coords.y, coords.z, heading, false, false)
local vehicle = CreateVehicle(model, coords.x, coords.y, coords.z, heading, false, false)
SetEntityAsMissionEntity(vehicle, true, false)
SetEntityAsMissionEntity(vehicle, true, false)
SetVehicleHasBeenOwnedByPlayer(vehicle, true)
SetVehicleHasBeenOwnedByPlayer(vehicle, true)
SetVehicleNeedsToBeHotwired(vehicle, false)
SetVehicleNeedsToBeHotwired(vehicle, false)
SetModelAsNoLongerNeeded(model)
SetModelAsNoLongerNeeded(model)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
while not HasCollisionLoadedAroundEntity(vehicle) do
while not HasCollisionLoadedAroundEntity(vehicle) do
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
Citizen.Wait(0)
Citizen.Wait(0)
end
end
SetVehRadioStation(vehicle, 'OFF')
SetVehRadioStation(vehicle, 'OFF')
if cb ~= nil then
if cb ~= nil then
cb(vehicle)
cb(vehicle)
end
end
end)
end)
end
end
ESX.Game.IsVehicleEmpty = function(vehicle)
ESX.Game.IsVehicleEmpty = function(vehicle)
local passengers = GetVehicleNumberOfPassengers(vehicle)
local passengers = GetVehicleNumberOfPassengers(vehicle)
local driverSeatFree = IsVehicleSeatFree(vehicle, -1)
local driverSeatFree = IsVehicleSeatFree(vehicle, -1)
return passengers == 0 and driverSeatFree
return passengers == 0 and driverSeatFree
end
end
ESX.Game.GetObjects = function()
ESX.Game.GetObjects = function()
local objects = {}
local objects = {}
for object in EnumerateObjects() do
for object in EnumerateObjects() do
table.insert(objects, object)
table.insert(objects, object)
end
end
return objects
return objects
end
end
ESX.Game.GetClosestObject = function(filter, coords)
ESX.Game.GetClosestObject = function(filter, coords)
local objects = ESX.Game.GetObjects()
local objects = ESX.Game.GetObjects()
local closestDistance = -1
local closestDistance = -1
local closestObject = -1
local closestObject = -1
local filter = filter
local filter = filter
local coords = coords
local coords = coords
if type(filter) == 'string' then
if type(filter) == 'string' then
if filter ~= '' then
if filter ~= '' then
filter = {filter}
filter = {filter}
end
end
end
end
if coords == nil then
if coords == nil then
local playerPed = PlayerPedId()
local playerPed = PlayerPedId()
coords = GetEntityCoords(playerPed)
coords = GetEntityCoords(playerPed)
end
end
for i=1, #objects, 1 do
for i=1, #objects, 1 do
local foundObject = false
local foundObject = false
if filter == nil or (type(filter) == 'table' and #filter == 0) then
if filter == nil or (type(filter) == 'table' and #filter == 0) then
foundObject = true
foundObject = true
else
else
local objectModel = GetEntityModel(objects[i])
local objectModel = GetEntityModel(objects[i])
for j=1, #filter, 1 do
for j=1, #filter, 1 do
if objectModel == GetHashKey(filter[j]) then
if objectModel == GetHashKey(filter[j]) then
foundObject = true
foundObject = true
end
end
end
end
end
end
if foundObject then
if foundObject then
local objectCoords = GetEntityCoords(objects[i])
local objectCoords = GetEntityCoords(objects[i])
local distance = GetDistanceBetweenCoords(objectCoords, coords.x, coords.y, coords.z, true)
local distance = GetDistanceBetweenCoords(objectCoords, coords.x, coords.y, coords.z, true)
if closestDistance == -1 or closestDistance > distance then
if closestDistance == -1 or closestDistance > distance then
closestObject = objects[i]
closestObject = objects[i]
closestDistance = distance
closestDistance = distance
end
end
end
end
end
end
return closestObject, closestDistance
return closestObject, closestDistance
end
end
ESX.Game.GetPlayers = function()
ESX.Game.GetPlayers = function()
local players = {}
local players = {}
for _,player in ipairs(GetActivePlayers()) do
for _,player in ipairs(GetActivePlayers()) do
local ped = GetPlayerPed(player)
local ped = GetPlayerPed(player)
if DoesEntityExist(ped) then
if DoesEntityExist(ped) then
table.insert(players, player)
table.insert(players, player)
end
end
end
end
return players
return players
end
end
ESX.Game.GetClosestPlayer = function(coords)
ESX.Game.GetClosestPlayer = function(coords)
local players = ESX.Game.GetPlayers()
local players = ESX.Game.GetPlayers()
local closestDistance = -1
local closestDistance = -1
local closestPlayer = -1
local closestPlayer = -1
local coords = coords
local coords = coords
local usePlayerPed = false
local usePlayerPed = false
local playerPed = PlayerPedId()
local playerPed = PlayerPedId()
local playerId = PlayerId()
local playerId = PlayerId()
if coords == nil then
if coords == nil then
usePlayerPed = true
usePlayerPed = true
coords = GetEntityCoords(playerPed)
coords = GetEntityCoords(playerPed)
end
end
for i=1, #players, 1 do
for i=1, #players, 1 do
local target = GetPlayerPed(players[i])
local target = GetPlayerPed(players[i])
if not usePlayerPed or (usePlayerPed and players[i] ~= playerId) then
if not usePlayerPed or (usePlayerPed and players[i] ~= playerId) then
local targetCoords = GetEntityCoords(target)
local targetCoords = GetEntityCoords(target)
local distance = GetDistanceBetweenCoords(targetCoords, coords.x, coords.y, coords.z, true)
local distance = GetDistanceBetweenCoords(targetCoords, coords.x, coords.y, coords.z, true)
if closestDistance == -1 or closestDistance > distance then
if closestDistance == -1 or closestDistance > distance then
closestPlayer = players[i]
closestPlayer = players[i]
closestDistance = distance
closestDistance = distance
end
end
end
end
end
end
return closestPlayer, closestDistance
return closestPlayer, closestDistance
end
end
ESX.Game.GetPlayersInArea = function(coords, area)
ESX.Game.GetPlayersInArea = function(coords, area)
local players = ESX.Game.GetPlayers()
local players = ESX.Game.GetPlayers()
local playersInArea = {}
local playersInArea = {}
for i=1, #players, 1 do
for i=1, #players, 1 do
local target = GetPlayerPed(players[i])
local target = GetPlayerPed(players[i])
local targetCoords = GetEntityCoords(target)
local targetCoords = GetEntityCoords(target)
local distance = GetDistanceBetweenCoords(targetCoords, coords.x, coords.y, coords.z, true)
local distance = GetDistanceBetweenCoords(targetCoords, coords.x, coords.y, coords.z, true)
if distance <= area then
if distance <= area then
table.insert(playersInArea, players[i])
table.insert(playersInArea, players[i])
end
end
end
end
return playersInArea
return playersInArea
end
end
ESX.Game.GetVehicles = function()
ESX.Game.GetVehicles = function()
local vehicles = {}
local vehicles = {}
for vehicle in EnumerateVehicles() do
for vehicle in EnumerateVehicles() do
table.insert(vehicles, vehicle)
table.insert(vehicles, vehicle)
end
end
return vehicles
return vehicles
end
end
ESX.Game.GetClosestVehicle = function(coords)
ESX.Game.GetClosestVehicle = function(coords)
local vehicles = ESX.Game.GetVehicles()
local vehicles = ESX.Game.GetVehicles()
local closestDistance = -1
local closestDistance = -1
local closestVehicle = -1
local closestVehicle = -1
local coords = coords
local coords = coords
if coords == nil then
if coords == nil then
local playerPed = PlayerPedId()
local playerPed = PlayerPedId()
coords = GetEntityCoords(playerPed)
coords = GetEntityCoords(playerPed)
end
end
for i=1, #vehicles, 1 do
for i=1, #vehicles, 1 do
local vehicleCoords = GetEntityCoords(vehicles[i])
local vehicleCoords = GetEntityCoords(vehicles[i])
local distance = GetDistanceBetweenCoords(vehicleCoords, coords.x, coords.y, coords.z, true)
local distance = GetDistanceBetweenCoords(vehicleCoords, coords.x, coords.y, coords.z, true)
if closestDistance == -1 or closestDistance > distance then
if closestDistance == -1 or closestDistance > distance then
closestVehicle = vehicles[i]
closestVehicle = vehicles[i]
closestDistance = distance
closestDistance = distance
end
end
end
end
return closestVehicle, closestDistance
return closestVehicle, closestDistance
end
end
ESX.Game.GetVehiclesInArea = function(coords, area)
ESX.Game.GetVehiclesInArea = function(coords, area)
local vehicles = ESX.Game.GetVehicles()
local vehicles = ESX.Game.GetVehicles()
local vehiclesInArea = {}
local vehiclesInArea = {}
for i=1, #vehicles, 1 do
for i=1, #vehicles, 1 do
local vehicleCoords = GetEntityCoords(vehicles[i])
local vehicleCoords = GetEntityCoords(vehicles[i])
local distance = GetDistanceBetweenCoords(vehicleCoords, coords.x, coords.y, coords.z, true)
local distance = GetDistanceBetweenCoords(vehicleCoords, coords.x, coords.y, coords.z, true)
if distance <= area then
if distance <= area then
table.insert(vehiclesInArea, vehicles[i])
table.insert(vehiclesInArea, vehicles[i])
end
end
end
end
return vehiclesInArea
return vehiclesInArea
end
end
ESX.Game.GetVehicleInDirection = function()
ESX.Game.GetVehicleInDirection = function()
local playerPed = PlayerPedId()
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed)
local playerCoords = GetEntityCoords(playerPed)
local inDirection = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 5.0, 0.0)
local inDirection = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 5.0, 0.0)
local rayHandle = StartShapeTestRay(playerCoords, inDirection, 10, playerPed, 0)
local rayHandle = StartShapeTestRay(playerCoords, inDirection, 10, playerPed, 0)
local numRayHandle, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(rayHandle)
local numRayHandle, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(rayHandle)
if hit == 1 and GetEntityType(entityHit) == 2 then
if hit == 1 and GetEntityType(entityHit) == 2 then
return entityHit
return entityHit
end
end
return nil
return nil
end
end
ESX.Game.IsSpawnPointClear = function(coords, radius)
ESX.Game.IsSpawnPointClear = function(coords, radius)
local vehicles = ESX.Game.GetVehiclesInArea(coords, radius)
local vehicles = ESX.Game.GetVehiclesInArea(coords, radius)
return #vehicles == 0
return #vehicles == 0
end
end
ESX.Game.GetPeds = function(ignoreList)
ESX.Game.GetPeds = function(ignoreList)
local ignoreList = ignoreList or {}
local ignoreList = ignoreList or {}
local peds = {}
local peds = {}
for ped in EnumeratePeds() do
for ped in EnumeratePeds() do
local found = false
local found = false
for j=1, #ignoreList, 1 do
for j=1, #ignoreList, 1 do
if ignoreList[j] == ped then
if ignoreList[j] == ped then
found = true
found = true
end
end
end
end
if not found then
if not found then
table.insert(peds, ped)
table.insert(peds, ped)
end
end
end
end
return peds
return peds
end
end
ESX.Game.GetClosestPed = function(coords, ignoreList)
ESX.Game.GetClosestPed = function(coords, ignoreList)
local ignoreList = ignoreList or {}
local ignoreList = ignoreList or {}
local peds = ESX.Game.GetPeds(ignoreList)
local peds = ESX.Game.GetPeds(ignoreList)
local closestDistance = -1
local closestDistance = -1
local closestPed = -1
local closestPed = -1
for i=1, #peds, 1 do
for i=1, #peds, 1 do
local pedCoords = GetEntityCoords(peds[i])
local pedCoords = GetEntityCoords(peds[i])
local distance = GetDistanceBetweenCoords(pedCoords, coords.x, coords.y, coords.z, true)
local distance = GetDistanceBetweenCoords(pedCoords, coords.x, coords.y, coords.z, true)
if closestDistance == -1 or closestDistance > distance then
if closestDistance == -1 or closestDistance > distance then
closestPed = peds[i]
closestPed = peds[i]
closestDistance = distance
closestDistance = distance
end
end
end
end
return closestPed, closestDistance
return closestPed, closestDistance
end
end
ESX.Game.GetVehicleProperties = function(vehicle)
ESX.Game.GetVehicleProperties = function(vehicle)
local color1, color2 = GetVehicleColours(vehicle)
local color1, color2 = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local extras = {}
local extras = {}
for id=0, 12 do
for id=0, 12 do
if DoesExtraExist(vehicle, id) then
if DoesExtraExist(vehicle, id) then
local state = IsVehicleExtraTurnedOn(vehicle, id) == 1
local state = IsVehicleExtraTurnedOn(vehicle, id) == 1
extras[tostring(id)] = state
extras[tostring(id)] = state
end
end
end
end
return {
return {
model = GetEntityModel(vehicle),
model = GetEntityModel(vehicle),
plate = ESX.Math.Trim(GetVehicleNumberPlateText(vehicle)),
plate = ESX.Math.Trim(GetVehicleNumberPlateText(vehicle)),
plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
bodyHealth = ESX.Math.Round(GetVehicleBodyHealth(vehicle), 1),
bodyHealth = ESX.Math.Round(GetVehicleBodyHealth(vehicle), 1),
engineHealth = ESX.Math.Round(GetVehicleEngineHealth(vehicle), 1),
engineHealth = ESX.Math.Round(GetVehicleEngineHealth(vehicle), 1),
fuelLevel = ESX.Math.Round(GetVehicleFuelLevel(vehicle), 1),
fuelLevel = ESX.Math.Round(GetVehicleFuelLevel(vehicle), 1),
dirtLevel = ESX.Math.Round(GetVehicleDirtLevel(vehicle), 1),
dirtLevel = ESX.Math.Round(GetVehicleDirtLevel(vehicle), 1),
color1 = color1,
color1 = color1,
color2 = color2,
color2 = color2,
pearlescentColor = pearlescentColor,
pearlescentColor = pearlescentColor,
wheelColor = wheelColor,
wheelColor = wheelColor,
wheels = GetVehicleWheelType(vehicle),
wheels = GetVehicleWheelType(vehicle),
windowTint = GetVehicleWindowTint(vehicle),
windowTint = GetVehicleWindowTint(vehicle),
neonEnabled = {
neonEnabled = {
IsVehicleNeonLightEnabled(vehicle, 0),
IsVehicleNeonLightEnabled(vehicle, 0),
IsVehicleNeonLightEnabled(vehicle, 1),
IsVehicleNeonLightEnabled(vehicle, 1),
IsVehicleNeonLightEnabled(vehicle, 2),
IsVehicleNeonLightEnabled(vehicle, 2),
IsVehicleNeonLightEnabled(vehicle, 3)
IsVehicleNeonLightEnabled(vehicle, 3)
},
},
extras = extras,
extras = extras,
neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)),
neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)),
tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)),
tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)),
modSpoilers = GetVehicleMod(vehicle, 0),
modSpoilers = GetVehicleMod(vehicle, 0),
modFrontBumper = GetVehicleMod(vehicle, 1),
modFrontBumper = GetVehicleMod(vehicle, 1),
modRearBumper = GetVehicleMod(vehicle, 2),
modRearBumper = GetVehicleMod(vehicle, 2),
modSideSkirt = GetVehicleMod(vehicle, 3),
modSideSkirt = GetVehicleMod(vehicle, 3),
modExhaust = GetVehicleMod(vehicle, 4),
modExhaust = GetVehicleMod(vehicle, 4),
modFrame = GetVehicleMod(vehicle, 5),
modFrame = GetVehicleMod(vehicle, 5),
modGrille = GetVehicleMod(vehicle, 6),
modGrille = GetVehicleMod(vehicle, 6),
modHood = GetVehicleMod(vehicle, 7),
modHood = GetVehicleMod(vehicle, 7),
modFender = GetVehicleMod(vehicle, 8),
modFender = GetVehicleMod(vehicle, 8),
modRightFender = GetVehicleMod(vehicle, 9),
modRightFender = GetVehicleMod(vehicle, 9),
modRoof = GetVehicleMod(vehicle, 10),
modRoof = GetVehicleMod(vehicle, 10),
modEngine = GetVehicleMod(vehicle, 11),
modEngine = GetVehicleMod(vehicle, 11),
modBrakes = GetVehicleMod(vehicle, 12),
modBrakes = GetVehicleMod(vehicle, 12),
modTransmission = GetVehicleMod(vehicle, 13),
modTransmission = GetVehicleMod(vehicle, 13),
modHorns = GetVehicleMod(vehicle, 14),
modHorns = GetVehicleMod(vehicle, 14),
modSuspension = GetVehicleMod(vehicle, 15),
modSuspension = GetVehicleMod(vehicle, 15),
modArmor = GetVehicleMod(vehicle, 16),
modArmor = GetVehicleMod(vehicle, 16),
modTurbo = IsToggleModOn(vehicle, 18),
modTurbo = IsToggleModOn(vehicle, 18),
modSmokeEnabled = IsToggleModOn(vehicle, 20),
modSmokeEnabled = IsToggleModOn(vehicle, 20),
modXenon = IsToggleModOn(vehicle, 22),
modXenon = IsToggleModOn(vehicle, 22),
modFrontWheels = GetVehicleMod(vehicle, 23),
modFrontWheels = GetVehicleMod(vehicle, 23),
modBackWheels = GetVehicleMod(vehicle, 24),
modBackWheels = GetVehicleMod(vehicle, 24),
modPlateHolder = GetVehicleMod(vehicle, 25),
modPlateHolder = GetVehicleMod(vehicle, 25),
modVanityPlate = GetVehicleMod(vehicle, 26),
modVanityPlate = GetVehicleMod(vehicle, 26),
modTrimA = GetVehicleMod(vehicle, 27),
modTrimA = GetVehicleMod(vehicle, 27),
modOrnaments = GetVehicleMod(vehicle, 28),
modOrnaments = GetVehicleMod(vehicle, 28),
modDashboard = GetVehicleMod(vehicle, 29),
modDashboard = GetVehicleMod(vehicle, 29),
modDial = GetVehicleMod(vehicle, 30),
modDial = GetVehicleMod(vehicle, 30),
modDoorSpeaker = GetVehicleMod(vehicle, 31),
modDoorSpeaker = GetVehicleMod(vehicle, 31),
modSeats = GetVehicleMod(vehicle, 32),
modSeats = GetVehicleMod(vehicle, 32),
modSteeringWheel = GetVehicleMod(vehicle, 33),
modSteeringWheel = GetVehicleMod(vehicle, 33),
modShifterLeavers = GetVehicleMod(vehicle, 34),
modShifterLeavers = GetVehicleMod(vehicle, 34),
modAPlate = GetVehicleMod(vehicle, 35),
modAPlate = GetVehicleMod(vehicle, 35),
modSpeakers = GetVehicleMod(vehicle, 36),
modSpeakers = GetVehicleMod(vehicle, 36),
modTrunk = GetVehicleMod(vehicle, 37),
modTrunk = GetVehicleMod(vehicle, 37),
modHydrolic = GetVehicleMod(vehicle, 38),
modHydrolic = GetVehicleMod(vehicle, 38),
modEngineBlock = GetVehicleMod(vehicle, 39),
modEngineBlock = GetVehicleMod(vehicle, 39),
modAirFilter = GetVehicleMod(vehicle, 40),
modAirFilter = GetVehicleMod(vehicle, 40),
modStruts = GetVehicleMod(vehicle, 41),
modStruts = GetVehicleMod(vehicle, 41),
modArchCover = GetVehicleMod(vehicle, 42),
modArchCover = GetVehicleMod(vehicle, 42),
modAerials = GetVehicleMod(vehicle, 43),
modAerials = GetVehicleMod(vehicle, 43),
modTrimB = GetVehicleMod(vehicle, 44),
modTrimB = GetVehicleMod(vehicle, 44),
modTank = GetVehicleMod(vehicle, 45),
modTank = GetVehicleMod(vehicle, 45),
modWindows = GetVehicleMod(vehicle, 46),
modWindows = GetVehicleMod(vehicle, 46),
modLivery = GetVehicleLivery(vehicle)
modLivery = GetVehicleLivery(vehicle)
}
}
end
end
ESX.Game.SetVehicleProperties = function(vehicle, props)
ESX.Game.SetVehicleProperties = function(vehicle, props)
SetVehicleModKit(vehicle, 0)
SetVehicleModKit(vehicle, 0)
if props.plate ~= nil then
if props.plate ~= nil then
SetVehicleNumberPlateText(vehicle, props.plate)
SetVehicleNumberPlateText(vehicle, props.plate)
end
end
if props.plateIndex ~= nil then
if props.plateIndex ~= nil then
SetVehicleNumberPlateTextIndex(vehicle, props.plateIndex)
SetVehicleNumberPlateTextIndex(vehicle, props.plateIndex)
end
end
if props.bodyHealth ~= nil then
if props.bodyHealth ~= nil then
SetVehicleBodyHealth(vehicle, props.bodyHealth + 0.0)
SetVehicleBodyHealth(vehicle, props.bodyHealth + 0.0)
end
end
if props.engineHealth ~= nil then
if props.engineHealth ~= nil then
SetVehicleEngineHealth(vehicle, props.engineHealth + 0.0)
SetVehicleEngineHealth(vehicle, props.engineHealth + 0.0)
end
end
if props.fuelLevel ~= nil then
if props.fuelLevel ~= nil then
SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0)
SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0)
end
end
if props.dirtLevel ~= nil then
if props.dirtLevel ~= nil then
SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0)
SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0)
end
end
if props.color1 ~= nil then
if props.color1 ~= nil then
local color1, color2 = GetVehicleColours(vehicle)
local color1, color2 = GetVehicleColours(vehicle)
SetVehicleColours(vehicle, props.color1, color2)
SetVehicleColours(vehicle, props.color1, color2)
end
end
if props.color2 ~= nil then
if props.color2 ~= nil then
local color1, color2 = GetVehicleColours(vehicle)
local color1, color2 = GetVehicleColours(vehicle)
SetVehicleColours(vehicle, color1, props.color2)
SetVehicleColours(vehicle, color1, props.color2)
end
end
if props.pearlescentColor ~= nil then
if props.pearlescentColor ~= nil then
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor)
SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor)
end
end
if props.wheelColor ~= nil then
if props.wheelColor ~= nil then
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
SetVehicleExtraColours(vehicle, pearlescentColor, props.wheelColor)
SetVehicleExtraColours(vehicle, pearlescentColor, props.wheelColor)
end
end
if props.wheels ~= nil then
if props.wheels ~= nil then
SetVehicleWheelType(vehicle, props.wheels)
SetVehicleWheelType(vehicle, props.wheels)
end
end
if props.windowTint ~= nil then
if props.windowTint ~= nil then
SetVehicleWindowTint(vehicle, props.windowTint)
SetVehicleWindowTint(vehicle, props.windowTint)
end
end
if props.neonEnabled ~= nil then
if props.neonEnabled ~= nil then
SetVehicleNeonLightEnabled(vehicle, 0, props.neonEnabled[1])
SetVehicleNeonLightEnabled(vehicle, 0, props.neonEnabled[1])
SetVehicleNeonLightEnabled(vehicle, 1, props.neonEnabled[2])
SetVehicleNeonLightEnabled(vehicle, 1, props.neonEnabled[2])
SetVehicleNeonLightEnabled(vehicle, 2, props.neonEnabled[3])
SetVehicleNeonLightEnabled(vehicle, 2, props.neonEnabled[3])
SetVehicleNeonLightEnabled(vehicle, 3, props.neonEnabled[4])
SetVehicleNeonLightEnabled(vehicle, 3, props.neonEnabled[4])
end
end
if props.extras ~= nil then
if props.extras ~= nil then
for id,enabled in pairs(props.extras) do
for id,enabled in pairs(props.extras) do
if enabled then
if enabled then
SetVehicleExtra(vehicle, tonumber(id), 0)
SetVehicleExtra(vehicle, tonumber(id), 0)
else
else
SetVehicleExtra(vehicle, tonumber(id), 1)
SetVehicleExtra(vehicle, tonumber(id), 1)
end
end
end
end
end
end
if props.neonColor ~= nil then
if props.neonColor ~= nil then
SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3])
SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3])
end
end
if props.modSmokeEnabled ~= nil then
if props.modSmokeEnabled ~= nil then
ToggleVehicleMod(vehicle, 20, true)
ToggleVehicleMod(vehicle, 20, true)
end
end
if props.tyreSmokeColor ~= nil then
if props.tyreSmokeColor ~= nil then
SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3])
SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3])
end
end
if props.modSpoilers ~= nil then
if props.modSpoilers ~= nil then
SetVehicleMod(vehicle, 0, props.modSpoilers, false)
SetVehicleMod(vehicle, 0, props.modSpoilers, false)
end
end
if props.modFrontBumper ~= nil then
if props.modFrontBumper ~= nil then
SetVehicleMod(vehicle, 1, props.modFrontBumper, false)
SetVehicleMod(vehicle, 1, props.modFrontBumper, false)
end
end
if props.modRearBumper ~= nil then
if props.modRearBumper ~= nil then
SetVehicleMod(vehicle, 2, props.modRearBumper, false)
SetVehicleMod(vehicle, 2, props.modRearBumper, false)
end
end
if props.modSideSkirt ~= nil then
if props.modSideSkirt ~= nil then
SetVehicleMod(vehicle, 3, props.modSideSkirt, false)
SetVehicleMod(vehicle, 3, props.modSideSkirt, false)
end
end
if props.modExhaust ~= nil then
if props.modExhaust ~= nil then
SetVehicleMod(vehicle, 4, props.modExhaust, false)
SetVehicleMod(vehicle, 4, props.modExhaust, false)
end
end
if props.modFrame ~= nil then
if props.modFrame ~= nil then
SetVehicleMod(vehicle, 5, props.modFrame, false)
SetVehicleMod(vehicle, 5, props.modFrame, false)
end
end
if props.modGrille ~= nil then
if props.modGrille ~= nil then
SetVehicleMod(vehicle, 6, props.modGrille, false)
SetVehicleMod(vehicle, 6, props.modGrille, false)
end
end
if props.modHood ~= nil then
if props.modHood ~= nil then
SetVehicleMod(vehicle, 7, props.modHood, false)
SetVehicleMod(vehicle, 7, props.modHood, false)
end
end
if props.modFender ~= nil then
if props.modFender ~= nil then
SetVehicleMod(vehicle, 8, props.modFender, false)
SetVehicleMod(vehicle, 8, props.modFender, false)
end
end
if props.modRightFender ~= nil then
if props.modRightFender ~= nil then
SetVehicleMod(vehicle, 9, props.modRightFender, false)
SetVehicleMod(vehicle, 9, props.modRightFender, false)
end
end
if props.modRoof ~= nil then
if props.modRoof ~= nil then
SetVehicleMod(vehicle, 10, props.modRoof, false)
SetVehicleMod(vehicle, 10, props.modRoof, false)
end
end
if props.modEngine ~= nil then
if props.modEngine ~= nil then
SetVehicleMod(vehicle, 11, props.modEngine, false)
SetVehicleMod(vehicle, 11, props.modEngine, false)
end
end
if props.modBrakes ~= nil then
if props.modBrakes ~= nil then
SetVehicleMod(vehicle, 12, props.modBrakes, false)
SetVehicleMod(vehicle, 12, props.modBrakes, false)
end
end
if props.modTransmission ~= nil then
if props.modTransmission ~= nil then
SetVehicleMod(vehicle, 13, props.modTransmission, false)
SetVehicleMod(vehicle, 13, props.modTransmission, false)
end
end
if props.modHorns ~= nil then
if props.modHorns ~= nil then
SetVehicleMod(vehicle, 14, props.modHorns, false)
SetVehicleMod(vehicle, 14, props.modHorns, false)
end
end
if props.modSuspension ~= nil then
if props.modSuspension ~= nil then
SetVehicleMod(vehicle, 15, props.modSuspension, false)
SetVehicleMod(vehicle, 15, props.modSuspension, false)
end
end
if props.modArmor ~= nil then
if props.modArmor ~= nil then
SetVehicleMod(vehicle, 16, props.modArmor, false)
SetVehicleMod(vehicle, 16, props.modArmor, false)
end
end
if props.modTurbo ~= nil then
if props.modTurbo ~= nil then
ToggleVehicleMod(vehicle, 18, props.modTurbo)
ToggleVehicleMod(vehicle, 18, props.modTurbo)
end
end
if props.modXenon ~= nil then
if props.modXenon ~= nil then
ToggleVehicleMod(vehicle, 22, props.modXenon)
ToggleVehicleMod(vehicle, 22, props.modXenon)
end
end
if props.modFrontWheels ~= nil then
if props.modFrontWheels ~= nil then
SetVehicleMod(vehicle, 23, props.modFrontWheels, false)
SetVehicleMod(vehicle, 23, props.modFrontWheels, false)
end
end
if props.modBackWheels ~= nil then
if props.modBackWheels ~= nil then
SetVehicleMod(vehicle, 24, props.modBackWheels, false)
SetVehicleMod(vehicle, 24, props.modBackWheels, false)
end
end
if props.modPlateHolder ~= nil then
if props.modPlateHolder ~= nil then
SetVehicleMod(vehicle, 25, props.modPlateHolder, false)
SetVehicleMod(vehicle, 25, props.modPlateHolder, false)
end
end
if props.modVanityPlate ~= nil then
if props.modVanityPlate ~= nil then
SetVehicleMod(vehicle, 26, props.modVanityPlate, false)
SetVehicleMod(vehicle, 26, props.modVanityPlate, false)
end
end
if props.modTrimA ~= nil then
if props.modTrimA ~= nil then
SetVehicleMod(vehicle, 27, props.modTrimA, false)
SetVehicleMod(vehicle, 27, props.modTrimA, false)
end
end
if props.modOrnaments ~= nil then
if props.modOrnaments ~= nil then
SetVehicleMod(vehicle, 28, props.modOrnaments, false)
SetVehicleMod(vehicle, 28, props.modOrnaments, false)
end
end
if props.modDashboard ~= nil then
if props.modDashboard ~= nil then
SetVehicleMod(vehicle, 29, props.modDashboard, false)
SetVehicleMod(vehicle, 29, props.modDashboard, false)
end
end
if props.modDial ~= nil then
if props.modDial ~= nil then
SetVehicleMod(vehicle, 30, props.modDial, false)
SetVehicleMod(vehicle, 30, props.modDial, false)
end
end
if props.modDoorSpeaker ~= nil then
if props.modDoorSpeaker ~= nil then
SetVehicleMod(vehicle, 31, props.modDoorSpeaker, false)
SetVehicleMod(vehicle, 31, props.modDoorSpeaker, false)
end
end
if props.modSeats ~= nil then
if props.modSeats ~= nil then
SetVehicleMod(vehicle, 32, props.modSeats, false)
SetVehicleMod(vehicle, 32, props.modSeats, false)
end
end
if props.modSteeringWheel ~= nil then
if props.modSteeringWheel ~= nil then
SetVehicleMod(vehicle, 33, props.modSteeringWheel, false)
SetVehicleMod(vehicle, 33, props.modSteeringWheel, false)
end
end
if props.modShifterLeavers ~= nil then
if props.modShifterLeavers ~= nil then
SetVehicleMod(vehicle, 34, props.modShifterLeavers, false)
SetVehicleMod(vehicle, 34, props.modShifterLeavers, false)
end
end
if props.modAPlate ~= nil then
if props.modAPlate ~= nil then
SetVehicleMod(vehicle, 35, props.modAPlate, false)
SetVehicleMod(vehicle, 35, props.modAPlate, false)
end
end
if props.modSpeakers ~= nil then
if props.modSpeakers ~= nil then
SetVehicleMod(vehicle, 36, props.modSpeakers, false)
SetVehicleMod(vehicle, 36, props.modSpeakers, false)
end
end
if props.modTrunk ~= nil then
if props.modTrunk ~= nil then
SetVehicleMod(vehicle, 37, props.modTrunk, false)
SetVehicleMod(vehicle, 37, props.modTrunk, false)
end
end
if props.modHydrolic ~= nil then
if props.modHydrolic ~= nil then
SetVehicleMod(vehicle, 38, props.modHydrolic, false)
SetVehicleMod(vehicle, 38, props.modHydrolic, false)
end
end
if props.modEngineBlock ~= nil then
if props.modEngineBlock ~= nil then
SetVehicleMod(vehicle, 39, props.modEngineBlock, false)
SetVehicleMod(vehicle, 39, props.modEngineBlock, false)
end
end
if props.modAirFilter ~= nil then
if props.modAirFilter ~= nil then
SetVehicleMod(vehicle, 40, props.modAirFilter, false)
SetVehicleMod(vehicle, 40, props.modAirFilter, false)
end
end
if props.modStruts ~= nil then
if props.modStruts ~= nil then
SetVehicleMod(vehicle, 41, props.modStruts, false)
SetVehicleMod(vehicle, 41, props.modStruts, false)
end
end
if props.modArchCover ~= nil then
if props.modArchCover ~= nil then
SetVehicleMod(vehicle, 42, props.modArchCover, false)
SetVehicleMod(vehicle, 42, props.modArchCover, false)
end
end
if props.modAerials ~= nil then
if props.modAerials ~= nil then
SetVehicleMod(vehicle, 43, props.modAerials, false)
SetVehicleMod(vehicle, 43, props.modAerials, false)
end
end
if props.modTrimB ~= nil then
if props.modTrimB ~= nil then
SetVehicleMod(vehicle, 44, props.modTrimB, false)
SetVehicleMod(vehicle, 44, props.modTrimB, false)
end
end
if props.modTank ~= nil then
if props.modTank ~= nil then
SetVehicleMod(vehicle, 45, props.modTank, false)
SetVehicleMod(vehicle, 45, props.modTank, false)
end
end
if props.modWindows ~= nil then
if props.modWindows ~= nil th
SetVehicleMod(vehicle, 46, props.modWindows, false)
end
if props.modLivery ~= nil then
SetVehicleMod(vehicle, 48, props.modLive