QBCore.Functions.SpawnVehicle = function(model, cb, coords, isnetworked)
local modelHash = (type(model) == "number" and model or GetHashKey(model))
Citizen.CreateThread(function()
if not IsModelValid(modelHash) then return end
RequestModel(modelHash)
while not HasModelLoaded(modelHash) do
Citizen.Wait(1)
end
if coords == nil then
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed)
local playerHeading = GetEntityHeading(playerPed)
coords = { x = playerCoords.x, y = playerCoords.y, z = playerCoords.z, heading = playerHeading }
end
local vehicle = CreateVehicle(modelHash, coords.x, coords.y, coords.z, coords.h, isnetworked, false)
local timeout = 0
if isnetworked then
local networkId = NetworkGetNetworkIdFromEntity(vehicle)
SetNetworkIdCanMigrate(networkId, true)
SetVehicleHasBeenOwnedByPlayer(vehicle, true)
end
SetEntityAsMissionEntity(vehicle, true, false)
SetVehicleNeedsToBeHotwired(vehicle, false)
SetVehRadioStation(vehicle, 'OFF')
SetModelAsNoLongerNeeded(modelHash)
RequestCollisionAtCoord(coords.x, coords.y, coords.z)
while not HasCollisionLoadedAroundEntity(vehicle) and timeout < 2000 do
Citizen.Wait(0)
timeout = timeout + 1
end
if cb then
cb(vehicle)
end
end)
end
full code