Main/resources/[carscripts]/lc_fuel/client/client.lua
Nordi98 702e67784f d
2025-06-15 03:55:21 +02:00

1598 lines
104 KiB
Lua

-- Shared variables
Utils = Utils or exports['lc_utils']:GetUtils()
cachedTranslations = {}
mainUiOpen = false
fuelNozzle = 0
fuelRope = 0
currentPump = 0
JERRY_CAN_HASH = 883325847
-- Fuel chart variables
isFuelConsumptionChartOpen = false
isRecording = true
-- Local variables
local fuelDecor = "_FUEL_LEVEL"
local currentConsumption = 0.0
local fuelSynced = true
local closestVehicleToPump = 0
local isNuiVariablesLoaded = false
DecorRegister(fuelDecor, 1)
-- Check if it actually registered
if DecorIsRegisteredAsType(fuelDecor, 1) then
print("[Fuel Script] SUCCESS: fuelDecor was registered successfully!")
else
print("[Fuel Script] ERROR: fuelDecor registration failed!")
end
-----------------------------------------------------------------------------------------------------------------------------------------
-- Threads
-----------------------------------------------------------------------------------------------------------------------------------------
-- Thread to handle the fuel consumption
function createFuelConsumptionThread()
CreateThread(function()
local currentVehicle = nil
local currentVehicleFuelType = "default" -- default while the callback loads
DecorRegister(fuelDecor, 1)
while true do
Wait(1000)
local ped = PlayerPedId()
if IsPedInAnyVehicle(ped, false) then
local vehicle = GetVehiclePedIsIn(ped, false)
if GetPedInVehicleSeat(vehicle, -1) == ped and not IsVehicleBlacklisted(vehicle) then
if currentVehicle == nil or currentVehicle ~= vehicle then
currentVehicle = vehicle
currentVehicleFuelType = getVehicleFuelTypeFromServer(vehicle)
fuelSynced = false
end
HandleFuelConsumption(vehicle, currentVehicleFuelType)
end
else
if isFuelConsumptionChartOpen then
closeFuelConsumptionChartUI()
end
currentVehicleFuelType = "default"
currentVehicle = nil
fuelSynced = false
end
end
end)
end
function HandleFuelConsumption(vehicle, fuelType)
-- If no decorator exists, set a random fuel %
if not DecorExistOn(vehicle, fuelDecor) then
SetFuel(vehicle, math.random(200, 800) / 10)
elseif not fuelSynced then
-- Sync once
SetFuel(vehicle, GetFuel(vehicle))
fuelSynced = true
end
-- If engine is off, do nothing
if not GetIsVehicleEngineRunning(vehicle) then
return
end
-- Turns engine off if have no fuel
local currentFuelLevel = GetVehicleFuelLevel(vehicle)
if currentFuelLevel <= 0.0 then
SetVehicleEngineOn(vehicle, false, true, false)
return
end
-- Get the vehicle's actual tank size in liters
local tankSize = getVehicleTankSize(vehicle)
-- Base consumption from config and RPM
currentConsumption = Config.FuelUsage[Utils.Math.round(GetVehicleCurrentRpm(vehicle), 1)] * (Config.FuelConsumptionPerClass[GetVehicleClass(vehicle)] or 1.0) * (Config.FuelConsumptionPerFuelType[fuelType] or 1.0) / 10
-- Scale consumption according to tank size.
-- A smaller tank will lose percentage faster; a bigger tank slower.
local scaledConsumption = currentConsumption * (100 / tankSize)
-- Subtract from the current fuel %
local newFuelLevel = currentFuelLevel - scaledConsumption
-- Write the new fuel % back
SetFuel(vehicle, newFuelLevel)
-- Store data for chart
if Config.FuelConsumptionChart.enabled then
storeDataForChart(vehicle, newFuelLevel, currentConsumption)
end
validateDieselFuelMismatch(vehicle, fuelType)
end
function validateDieselFuelMismatch(vehicle, fuelType)
if (fuelType == "diesel" and not IsVehicleDiesel(vehicle)) or (fuelType ~= "diesel" and IsVehicleDiesel(vehicle)) then
SetTimeout(5000, function()
if IsVehicleDriveable(vehicle, false) then
SetVehicleEngineHealth(vehicle, 0.0)
SetVehicleUndriveable(vehicle, true)
exports['lc_utils']:notify("error", Utils.translate("vehicle_wrong_fuel"))
end
end)
end
end
function createDebugNozzleOffsetThread()
CreateThread(function()
while true do
local vehicle = GetVehiclePlayerIsLookingAt()
if not vehicle or not DoesEntityExist(vehicle) then
Wait(2)
goto continue -- Skip if no valid vehicle found
end
local hit, hitCoords = GetLookAtHitCoords()
if hit and DoesEntityExist(vehicle) then
local offset = GetNozzleOffset(vehicle, hitCoords)
if offset then
local vehCoords = GetEntityCoords(vehicle)
-- Get vehicle's axis vectors
local forwardVector, rightVector, upVector = GetEntityMatrix(vehicle)
-- Direction from vehicle to hit point
local directionToHit = hitCoords - vehCoords
directionToHit = directionToHit / #(directionToHit) -- normalize
-- Dot product with right vector
local side = rightVector.x * directionToHit.x + rightVector.y * directionToHit.y + rightVector.z * directionToHit.z
-- Adjust offset.right
if side > 0 then
-- hit is on the right side
offset.right = offset.right + 0.07
else
-- hit is on the left side
offset.right = offset.right - 0.07
end
local boneWorldPos = GetVehicleCapPos(vehicle)
-- local forwardVector, rightVector, upVector, _ = GetEntityMatrix(vehicle)
-- Scale vectors by the local offset
local forwardOffset = forwardVector * offset.forward
local rightOffset = rightVector * offset.right
local upOffset = upVector * offset.up
-- Final world position of the nozzle point
local finalWorldPos = vector3(
boneWorldPos.x + forwardOffset.x + rightOffset.x + upOffset.x,
boneWorldPos.y + forwardOffset.y + rightOffset.y + upOffset.y,
boneWorldPos.z + forwardOffset.z + rightOffset.z + upOffset.z
)
-- Draw a small marker at the computed position
DrawMarker(28, finalWorldPos.x, finalWorldPos.y, finalWorldPos.z + 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03, 0.03, 0.03, 255, 0, 0, 180, false, true, 2, nil, nil, false)
if IsControlJustPressed(0,38) then
local model = GetEntityModel(vehicle)
local modelName = GetDisplayNameFromVehicleModel(model):lower()
local zRotation = side > 0 and 180 or 0
local clipboardText = string.format(
'["%s"] = { distance = 1.3, nozzleOffset = { forward = %.2f, right = %.2f, up = %.2f }, nozzleRotation = { x = 0, y = 0, z = %d } },',
modelName,
offset.forward, offset.right, offset.up,
zRotation
)
SendNUIMessage({
type = "copyToClipboard",
text = clipboardText
})
exports['lc_utils']:notify("success", "Copied to clipboard: " .. clipboardText)
exports['lc_utils']:notify("warning", "Make sure the vehicle spawn name is correct. You may need to manually fine-tune the offset and rotation.")
end
end
end
Wait(2)
::continue::
end
end)
end
-----------------------------------------------------------------------------------------------------------------------------------------
-- UI
-----------------------------------------------------------------------------------------------------------------------------------------
function clientOpenUI(pump, pumpModel, isElectricPump)
currentPump = pump
local ped = PlayerPedId()
local playerCoords = GetEntityCoords(ped)
closestVehicleToPump = GetClosestVehicle(playerCoords)
local isElectricVehicle = IsVehicleElectric(closestVehicleToPump)
if not (isElectricVehicle and isElectricPump) and not (not isElectricVehicle and not isElectricPump) then
-- Reset the near vehicle to 0 when it does not match the pump type (only allows electric vehicle in electric chargers and gas vehicles in gas pumps)
closestVehicleToPump = 0
end
pumpLocation = nil
if closestVehicleToPump and #(playerCoords - GetEntityCoords(closestVehicleToPump)) < 5 then
-- Load the nearest vehicle fuel and plate (fuel type)
local vehicleFuel = GetFuel(closestVehicleToPump)
local vehiclePlate = GetVehicleNumberPlateText(closestVehicleToPump)
local vehicleTankSize = getVehicleTankSize(closestVehicleToPump)
local vehicleDisplayFuelAmount = getVehicleDisplayFuelAmount(vehicleFuel, vehicleTankSize)
TriggerServerEvent("lc_fuel:serverOpenUI", isElectricPump, pumpModel, vehicleDisplayFuelAmount, vehicleTankSize, vehiclePlate)
else
-- Allow the user to open the UI even without vehicles nearby
TriggerServerEvent("lc_fuel:serverOpenUI", isElectricPump, pumpModel)
end
end
function loadNuiVariables()
if isNuiVariablesLoaded then
return
end
-- Load NUI variables
SendNUIMessage({
utils = { config = Utils.Config, lang = Utils.Lang },
resourceName = GetCurrentResourceName()
})
local maxIterations = 100 -- Maximum number of iterations (100 * 100ms = 10 seconds)
local iterations = 0
while not isNuiVariablesLoaded do
Wait(100)
iterations = iterations + 1
if iterations >= maxIterations then
print("Error: Timeout while loading NUI variables after " .. iterations .. " attempts.")
return
end
end
end
RegisterNetEvent('lc_fuel:clientOpenUI')
AddEventHandler('lc_fuel:clientOpenUI', function(data)
loadNuiVariables()
data.currentFuelType = dealWithDefaultFuelType(closestVehicleToPump, data.currentFuelType)
SendNUIMessage({
openMainUI = true,
data = data
})
mainUiOpen = true
TriggerScreenblurFadeIn(1000)
FreezeEntityPosition(PlayerPedId(), true)
SetNuiFocus(true,true)
end)
RegisterNUICallback('post', function(body, cb)
if cooldown == nil then
cooldown = true
if body.event == "close" then
closeUI()
elseif body.event == "closeFuelConsumptionChartUI" then
closeFuelConsumptionChartUI()
elseif body.event == "removeFocusFuelConsumptionChartUI" then
SetNuiFocus(false,false)
elseif body.event == "startRecordingGraph" then
isRecording = true
elseif body.event == "stopRecordingGraph" then
isRecording = false
elseif body.event == "notify" then
exports['lc_utils']:notify(body.data.type,body.data.msg)
elseif body.event == "changeVehicleFuelType" then
changeVehicleFuelType(closestVehicleToPump, body.data.selectedFuelType)
else
TriggerServerEvent('lc_fuel:'..body.event,body.data)
end
cb(200)
SetTimeout(5,function()
cooldown = nil
end)
end
end)
RegisterNUICallback('setNuiVariablesLoaded', function(body, cb)
isNuiVariablesLoaded = true
cb(200)
end)
function closeUI()
mainUiOpen = false
FreezeEntityPosition(PlayerPedId(), false)
TriggerScreenblurFadeOut(1000)
SetNuiFocus(false,false)
SendNUIMessage({ hideMainUI = true })
end
RegisterNetEvent('lc_fuel:closeUI')
AddEventHandler('lc_fuel:closeUI', function()
closeUI()
end)
-----------------------------------------------------------------------------------------------------------------------------------------
-- Exports
-----------------------------------------------------------------------------------------------------------------------------------------
function GetFuel(vehicle)
if not DoesEntityExist(vehicle) then
warn(("[GetFuel] Vehicle entity does not exist. Received: %s. This is usually caused by a misconfiguration in the export."):format(tostring(vehicle)))
return 0
end
return DecorGetFloat(vehicle, fuelDecor)
end
exports('GetFuel', GetFuel)
function SetFuel(vehicle, fuel)
if not DoesEntityExist(vehicle) then
warn(("[SetFuel] Vehicle entity does not exist. Received: %s. This is usually caused by a misconfiguration in the export."):format(tostring(vehicle)))
return
end
if type(fuel) ~= "number" then
warn(("[SetFuel] Invalid fuel value received: %s. Fuel must be a number between 0 and 100."):format(tostring(fuel)))
return
end
-- Normalize the fuel values if received negative values or higher than 100
fuel = math.max(0.0, math.min(fuel, 100.0))
SetVehicleFuelLevel(vehicle, fuel + 0.0)
DecorSetFloat(vehicle, fuelDecor, GetVehicleFuelLevel(vehicle))
end
exports('SetFuel', SetFuel)
-- Just another way to call the exports in case someone does it like this...
function getFuel(vehicle)
return GetFuel(vehicle)
end
exports('getFuel', getFuel)
function setFuel(vehicle, fuel)
SetFuel(vehicle, fuel)
end
exports('setFuel', setFuel)
-- Alias LegacyFuel's exports to point to our lc_fuel functions:
AddEventHandler('__cfx_export_LegacyFuel_SetFuel', function(setCB)
-- Redirect LegacyFuel:SetFuel to use lc_fuel's SetFuel function
setCB(SetFuel)
end)
AddEventHandler('__cfx_export_LegacyFuel_GetFuel', function(setCB)
-- Redirect LegacyFuel:GetFuel to use lc_fuel's GetFuel function
setCB(GetFuel)
end)
-----------------------------------------------------------------------------------------------------------------------------------------
-- Utils
-----------------------------------------------------------------------------------------------------------------------------------------
function getVehicleFuelTypeFromServer(vehicle)
local returnFuelType = nil
Utils.Callback.TriggerServerCallback('lc_fuel:getVehicleFuelType', function(fuelType)
returnFuelType = dealWithDefaultFuelType(vehicle, fuelType)
end, GetVehicleNumberPlateText(vehicle))
while returnFuelType == nil do
Wait(10)
end
return returnFuelType
end
function dealWithDefaultFuelType(vehicle, fuelType)
-- Define if the vehicle is diesel or gasoline for the ones that have never been refueled
if fuelType == "default" then
if IsVehicleDiesel(vehicle) then
fuelType = "diesel"
else
fuelType = "regular"
end
end
return fuelType
end
function changeVehicleFuelType(vehicle, fuelType)
local ped = PlayerPedId()
local playerCoords = GetEntityCoords(ped)
if vehicle and #(playerCoords - GetEntityCoords(vehicle)) < 5 then
SetFuel(vehicle, 0.0)
exports['lc_utils']:notify("info",Utils.translate("vehicle_tank_emptied"))
TriggerServerEvent("lc_fuel:setVehicleFuelType", GetVehicleNumberPlateText(vehicle), fuelType)
else
exports['lc_utils']:notify("error",Utils.translate("vehicle_not_found"))
end
end
function getVehicleDisplayFuelAmount(currentFuel, tankSize)
local displayFuelAmount = currentFuel * tankSize / 100
return displayFuelAmount
end
function getVehicleTankSize(vehicle)
local vehicleHash = GetEntityModel(vehicle)
if Config.FuelTankSize.perVehicleHash[vehicleHash] then
return Config.FuelTankSize.perVehicleHash[vehicleHash]
end
return Config.FuelTankSize.perClass[GetVehicleClass(vehicle)] or 100
end
function GetPumpOffset(pump)
local heightOffset = { forward = 0.0, right = 0.0, up = 2.1 }
local pumpModel = GetEntityModel(pump)
for _, v in pairs(Config.Electric.chargersProps) do
if pumpModel == joaat(v.prop) then
heightOffset = v.ropeOffset
end
end
for _, v in pairs(Config.GasPumpProps) do
if pumpModel == joaat(v.prop) then
heightOffset = v.ropeOffset
end
end
return heightOffset
end
function CreateRopeToPump(pumpCoords)
local offset = GetPumpOffset(currentPump)
RopeLoadTextures()
while not RopeAreTexturesLoaded() do
Wait(0)
end
local forwardVector, rightVector, upVector, _ = GetEntityMatrix(currentPump)
-- Adjust the offsets
local forwardOffset = forwardVector * offset.forward
local rightoffset = rightVector * offset.right
local upOffset = upVector * offset.up
local finalOffset = forwardOffset + rightoffset + upOffset
local ropeObj = AddRope(pumpCoords.x + finalOffset.x, pumpCoords.y + finalOffset.y, pumpCoords.z + finalOffset.z, 0.0, 0.0, 0.0, 4.0, 1, 10.0, 0.0, 1.0, false, false, false, 1.0, true)
while not ropeObj do
Wait(0)
end
ActivatePhysics(ropeObj)
Wait(100)
local nozzlePos = GetOffsetFromEntityInWorldCoords(fuelNozzle, 0.0, -0.033, -0.195)
---@diagnostic disable-next-line: param-type-mismatch
AttachEntitiesToRope(ropeObj, currentPump, fuelNozzle, pumpCoords.x + finalOffset.x, pumpCoords.y + finalOffset.y, pumpCoords.z + finalOffset.z, nozzlePos.x, nozzlePos.y, nozzlePos.z, 30.0, false, false, nil, nil)
return ropeObj
end
function GetVehicles()
return GetGamePool('CVehicle')
end
function GetClosestVehicle(coords, modelFilter)
return GetClosestEntity(GetVehicles(), false, coords, modelFilter)
end
function GetClosestEntity(entities, isPlayerEntities, coords, modelFilter)
local closestEntity, closestEntityDistance, filteredEntities = -1, -1, nil
if coords then
coords = vector3(coords.x, coords.y, coords.z)
else
local playerPed = PlayerPedId()
coords = GetEntityCoords(playerPed)
end
if modelFilter then
filteredEntities = {}
for _, entity in pairs(entities) do
if modelFilter[GetEntityModel(entity)] then
filteredEntities[#filteredEntities + 1] = entity
end
end
end
for k, entity in pairs(filteredEntities or entities) do
local distance = #(coords - GetEntityCoords(entity))
if closestEntityDistance == -1 or distance < closestEntityDistance then
closestEntity, closestEntityDistance = isPlayerEntities and k or entity, distance
end
end
return closestEntity, closestEntityDistance
end
function GetVehicleCapPos(vehicle)
local closestCapPos
local tanks = vehicleCapBoneList()
for _, v in pairs(tanks) do
local vehicleTank = GetEntityBoneIndexByName(vehicle, v)
if vehicleTank ~= -1 then
closestCapPos = GetWorldPositionOfEntityBone(vehicle, vehicleTank)
break
end
end
return closestCapPos
end
function Round(num, numDecimalPlaces)
error("Do not use this")
end
function IsVehicleBlacklisted(vehicle)
if vehicle and vehicle ~= 0 then
local vehicleHash = GetEntityModel(vehicle)
-- Blacklist electric vehicles if electric recharge is disabled
if not Config.Electric.enabled and IsVehicleElectric(vehicle) then
return true
end
-- Check if the vehicle is in the blacklist
if Config.BlacklistedVehiclesHash[vehicleHash] then
return true
end
return false
end
return true
end
function IsVehicleDiesel(vehicle)
if vehicle and vehicle ~= 0 then
local vehicleHash = GetEntityModel(vehicle)
-- Check if the vehicle is in the diesel list
if Config.DieselVehiclesHash[vehicleHash] then
return true
end
end
return false
end
function IsVehicleElectric(vehicle)
if vehicle and vehicle ~= 0 then
local vehicleHash = GetEntityModel(vehicle)
-- Check if the vehicle is in the diesel list
if Config.Electric.vehiclesListHash[vehicleHash] then
return true
end
end
return false
end
function GetClosestPump(coords, isElectric)
local pump = nil
local currentPumpModel = nil
local pumpList = isElectric and Config.Electric.chargersProps or Config.GasPumpProps
for i = 1, #pumpList do
currentPumpModel = pumpList[i].prop
pump = GetClosestObjectOfType(coords.x, coords.y, coords.z, 2.5, joaat(currentPumpModel), true, true, true)
if pump ~= 0 then return pump, currentPumpModel end
end
return nil, nil
end
function createBlips()
if Config.Blips.onlyShowNearestBlip then
Citizen.CreateThread(function()
local currentBlip = 0
local currentBlipIndex = 0
while true do
local coords = GetEntityCoords(PlayerPedId())
local closestBlipDistance = math.maxinteger
local closestBlipCoords
local closestBlipId
for blipId, blipCoord in pairs(Config.Blips.locations) do
local distanceToBlip = #(coords - blipCoord)
if distanceToBlip < closestBlipDistance then
closestBlipDistance = distanceToBlip
closestBlipCoords = blipCoord
closestBlipId = blipId
end
end
if currentBlipIndex ~= closestBlipId then
if DoesBlipExist(currentBlip) then
Utils.Blips.removeBlip(currentBlip)
end
if closestBlipCoords then
currentBlip = Utils.Blips.createBlipForCoords(closestBlipCoords.x,closestBlipCoords.y,closestBlipCoords.z,Config.Blips.blipId,Config.Blips.color,Utils.translate('blip_text'),Config.Blips.scale,false)
end
currentBlipIndex = closestBlipId
end
Citizen.Wait(5000)
end
end)
else
local text = Utils.translate('blip_text')
for _, blipCoords in pairs(Config.Blips.locations) do
Utils.Blips.createBlipForCoords(blipCoords.x,blipCoords.y,blipCoords.z,Config.Blips.blipId,Config.Blips.color,text,Config.Blips.scale,false)
end
end
end
function convertConfigVehiclesDisplayNameToHash()
Config.BlacklistedVehiclesHash = {}
for _, value in pairs(Config.BlacklistedVehicles) do
Config.BlacklistedVehiclesHash[joaat(value)] = true
end
Config.Electric.vehiclesListHash = {}
for _, value in pairs(Config.Electric.vehiclesList) do
Config.Electric.vehiclesListHash[joaat(value)] = true
end
Config.DieselVehiclesHash = {}
for _, value in pairs(Config.DieselVehicles) do
Config.DieselVehiclesHash[joaat(value)] = true
end
Config.FuelTankSize.perVehicleHash = {}
for key, value in pairs(Config.FuelTankSize.perVehicle) do
Config.FuelTankSize.perVehicleHash[joaat(key)] = value
end
Config.CustomVehicleParametersHash = {}
Utils.Table.deepMerge(Config.HiddenCustomVehicleParameters, Config.CustomVehicleParameters)
for key, value in pairs(Config.HiddenCustomVehicleParameters) do
Config.CustomVehicleParametersHash[joaat(key)] = value
end
Config.CustomVehicleParametersHash.default = Config.CustomVehicleParameters.default -- Adds back the default
end
RegisterNetEvent('lc_fuel:Notify')
AddEventHandler('lc_fuel:Notify', function(type,message)
exports['lc_utils']:notify(type,message)
end)
Citizen.CreateThread(function()
Wait(1000)
SetNuiFocus(false,false)
SetNuiFocusKeepInput(false)
FreezeEntityPosition(PlayerPedId(), false)
Utils.loadLanguageFile(Lang)
cachedTranslations = {
open_refuel = Utils.translate('markers.open_refuel'),
open_recharge = Utils.translate('markers.open_recharge'),
interact_with_vehicle = Utils.translate('markers.interact_with_vehicle'),
return_nozzle = Utils.translate('markers.return_nozzle'),
}
convertConfigVehiclesDisplayNameToHash()
if Config.Blips and Config.Blips.enabled then
createBlips()
end
-- Gas
if Utils.Config.custom_scripts_compatibility.target == "disabled" then
createGasMarkersThread()
else
createGasTargetsThread()
end
createCustomPumpModelsThread()
-- Electrics
if Config.Electric.enabled then
CreateThread(function()
createElectricZones()
if Utils.Config.custom_scripts_compatibility.target == "disabled" then
createElectricMarkersThread()
else
createElectricTargetsThread()
end
end)
end
-- Refuel
if Utils.Config.custom_scripts_compatibility.target ~= "disabled" then
createTargetForVehicleIteraction()
end
-- Other threads
createFuelConsumptionThread()
if Config.JerryCan.enabled and Utils.Config.custom_scripts_compatibility.target == "disabled" then
createJerryCanThread()
end
if Config.DebugNozzleOffset then
createDebugNozzleOffsetThread()
end
end)
-- Debug nozzle offset functions
function GetVehiclePlayerIsLookingAt()
local playerPed = PlayerPedId()
local camCoords = GetGameplayCamCoord()
local camRot = GetGameplayCamRot(2)
local direction = RotationToDirection(camRot)
local maxDistance = 10.0
local destCoords = camCoords + direction * maxDistance
local rayHandle = StartShapeTestRay(camCoords.x, camCoords.y, camCoords.z, destCoords.x, destCoords.y, destCoords.z, 10, playerPed, 0)
local _, hit, endCoords, _, entityHit = GetShapeTestResult(rayHandle)
if hit == 1 and IsEntityAVehicle(entityHit) then
return entityHit
end
return nil
end
function GetLookAtHitCoords()
local playerPed = PlayerPedId()
local camCoords = GetGameplayCamCoord()
local camRot = GetGameplayCamRot(2)
local direction = RotationToDirection(camRot)
local endCoords = vec3(
camCoords.x + direction.x * 10.0,
camCoords.y + direction.y * 10.0,
camCoords.z + direction.z * 10.0
)
local rayHandle = StartShapeTestRay(camCoords.x, camCoords.y, camCoords.z, endCoords.x, endCoords.y, endCoords.z, -1, playerPed, 0)
local _, hit, hitCoords = GetShapeTestResult(rayHandle)
return hit, hitCoords
end
function RotationToDirection(rot)
local z = math.rad(rot.z)
local x = math.rad(rot.x)
local cosX = math.cos(x)
return vec3(
-math.sin(z) * cosX,
math.cos(z) * cosX,
math.sin(x)
)
end
-- Gets the offset from 'petrolcap' to the point you're looking at
function GetNozzleOffset(vehicle, hitCoords)
-- World position of the bone
local boneWorldPos = GetVehicleCapPos(vehicle)
-- Directional vector from bone to hit point
local direction = {
x = hitCoords.x - boneWorldPos.x,
y = hitCoords.y - boneWorldPos.y,
z = hitCoords.z - boneWorldPos.z
}
-- Convert direction vector to vehicle-local offset
local forwardVector, rightVector, upVector, _ = GetEntityMatrix(vehicle)
local offset = {
right = direction.x * rightVector.x + direction.y * rightVector.y + direction.z * rightVector.z,
forward = direction.x * forwardVector.x + direction.y * forwardVector.y + direction.z * forwardVector.z,
up = direction.x * upVector.x + direction.y * upVector.y + direction.z * upVector.z
}
return offset
end
if Config.EnableHUD then
local function DrawAdvancedText(x,y ,w,h,sc, text, r,g,b,a,font,jus)
SetTextFont(font)
SetTextProportional(false)
SetTextScale(sc, sc)
SetTextJustification(jus)
SetTextColour(r, g, b, a)
SetTextDropShadow()
SetTextEdge(1, 0, 0, 0, 255)
SetTextDropShadow()
SetTextOutline()
SetTextEntry("STRING")
AddTextComponentString(text)
DrawText(x - 0.1+w, y - 0.02+h)
end
local mph = "0"
local kmh = "0"
local fuel = "0"
local displayHud = false
local x = 0.01135
local y = 0.002
Citizen.CreateThread(function()
while true do
local ped = PlayerPedId()
if IsPedInAnyVehicle(ped, false) then
local vehicle = GetVehiclePedIsIn(ped, false)
local speed = GetEntitySpeed(vehicle)
mph = tostring(math.ceil(speed * 2.236936))
kmh = tostring(math.ceil(speed * 3.6))
fuel = tostring(Utils.Math.round(GetVehicleFuelLevel(vehicle),2))
displayHud = true
else
displayHud = false
Citizen.Wait(500)
end
Citizen.Wait(50)
end
end)
Citizen.CreateThread(function()
while true do
if displayHud then
DrawAdvancedText(0.130 - x, 0.77 - y, 0.005, 0.0028, 0.6, mph, 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.174 - x, 0.77 - y, 0.005, 0.0028, 0.6, kmh, 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.2155 - x, 0.77 - y, 0.005, 0.0028, 0.6, fuel, 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.2615 - x, 0.77 - y, 0.005, 0.0028, 0.6, tostring(currentConsumption), 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.145 - x, 0.7765 - y, 0.005, 0.0028, 0.4, "mp/h km/h Fuel Consumption", 255, 255, 255, 255, 6, 1)
else
Citizen.Wait(50)
end
Citizen.Wait(0)
end
end)
end
AddEventHandler('onResourceStop', function(resourceName)
if GetCurrentResourceName() ~= resourceName then return end
deleteRopeAndNozzleProp()
end)
function deleteRopeAndNozzleProp()
if DoesRopeExist(fuelRope) then
RopeUnloadTextures()
DeleteRope(fuelRope)
end
if DoesEntityExist(fuelNozzle) then
DeleteEntity(fuelNozzle)
end
end
function vehicleCapBoneList()
return { "petrolcap", "petroltank", "petroltank_l", "petroltank_r", "wheel_lr", "wheel_lf", "engine", "chassis_dummy" }
end
-- Do not change this, use the Config.CustomVehicleParameters in config.lua
Config.HiddenCustomVehicleParameters = {
-- Cars
["asbo"] = { distance = 1.2, nozzleOffset = { forward = 0.0, right = -0.21, up = 0.50} },
["blista"] = { distance = 1.2, nozzleOffset = { forward = 0.0, right = -0.21, up = 0.50} },
["brioso"] = { distance = 1.2, nozzleOffset = { forward = 0.0, right = -0.10, up = 0.60} },
["club"] = { distance = 1.2, nozzleOffset = { forward = -0.2, right = -0.13, up = 0.50} },
["kanjo"] = { distance = 1.2, nozzleOffset = { forward = -0.2, right = -0.17, up = 0.50} },
["issi2"] = { distance = 1.2, nozzleOffset = { forward = -0.2, right = -0.15, up = 0.50} },
["issi3"] = { distance = 1.2, nozzleOffset = { forward = -0.27, right = -0.13, up = 0.54} },
["issi4"] = { distance = 1.2, nozzleOffset = { forward = -0.27, right = -0.13, up = 0.70} },
["issi5"] = { distance = 1.2, nozzleOffset = { forward = -0.27, right = -0.13, up = 0.70} },
["issi6"] = { distance = 1.2, nozzleOffset = { forward = -0.27, right = -0.13, up = 0.70} },
["panto"] = { distance = 1.2, nozzleOffset = { forward = -0.10, right = -0.15, up = 0.65} },
["prairie"] = { distance = 1.2, nozzleOffset = { forward = -0.20, right = -0.20, up = 0.45} },
["rhapsody"] = { distance = 1.2, nozzleOffset = { forward = -0.20, right = -0.20, up = 0.45} },
["brioso2"] = { distance = 1.2, nozzleOffset = { forward = -0.25, right = -0.13, up = 0.40} },
["weevil"] = { distance = 1.2, nozzleOffset = { forward = -0.02, right = -0.03, up = 0.63} },
["issi7"] = { distance = 1.2, nozzleOffset = { forward = -0.03, right = -0.12, up = 0.57} },
["blista2"] = { distance = 1.2, nozzleOffset = { forward = -0.25, right = -0.23, up = 0.50} },
["blista3"] = { distance = 1.2, nozzleOffset = { forward = -0.25, right = -0.23, up = 0.50} },
["brioso3"] = { distance = 1.2, nozzleOffset = { forward = -0.25, right = -0.06, up = 0.40} },
["boor"] = { distance = 1.2, nozzleOffset = { forward = 0.0, right = -0.18, up = 0.50} },
["asea"] = { distance = 1.2, nozzleOffset = { forward = -0.28, right = -0.21, up = 0.50} },
["asterope"] = { distance = 1.2, nozzleOffset = { forward = -0.28, right = -0.16, up = 0.50} },
["cog55"] = { distance = 1.2, nozzleOffset = { forward = -0.44, right = -0.21, up = 0.45} },
["cognoscenti"] = { distance = 1.2, nozzleOffset = { forward = -0.44, right = -0.21, up = 0.45} },
["emperor"] = { distance = 1.2, nozzleOffset = { forward = -0.44, right = -0.22, up = 0.40} },
["fugitive"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.15, up = 0.40} },
["glendale"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.22, up = 0.40} },
["glendale2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.22, up = 0.30} },
["ingot"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.23, up = 0.45} },
["intruder"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.23, up = 0.40} },
["premier"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.16, up = 0.52} },
["primo"] = { distance = 1.2, nozzleOffset = { forward = -0.52, right = -0.18, up = 0.40} },
["primo2"] = { distance = 1.2, nozzleOffset = { forward = -0.52, right = -0.20, up = 0.35} },
["regina"] = { distance = 1.2, nozzleOffset = { forward = -0.52, right = -0.24, up = 0.40} },
["stafford"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.17, up = 0.50} },
["stanier"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.21, up = 0.40} },
["stratum"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.25, up = 0.35} },
["stretch"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.21, up = 0.35} },
["superd"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.23, up = 0.40} },
["tailgater"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.45} },
["warrener"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.45} },
["washington"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.22, up = 0.45} },
["tailgater2"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.14, up = 0.45} },
["cinquemila"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.21, up = 0.55} },
["astron"] = { distance = 1.2, nozzleOffset = { forward = -0.20, right = -0.22, up = 0.55} },
["baller7"] = { distance = 1.2, nozzleOffset = { forward = -0.62, right = -0.16, up = 0.60} },
["comet7"] = { distance = 1.2, nozzleOffset = { forward = -0.37, right = -0.19, up = 0.45} },
["deity"] = { distance = 1.2, nozzleOffset = { forward = -0.37, right = -0.21, up = 0.50} },
["jubilee"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.16, up = 0.60} },
["oracle"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.40} },
["schafter2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.45} },
["warrener2"] = { distance = 1.2, nozzleOffset = { forward = -0.02, right = -0.20, up = 0.40} },
["rhinehart"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.15, up = 0.50} },
["eudora"] = { distance = 1.2, nozzleOffset = { forward = 0.29, right = -0.38, up = 0.22} },
["rebla"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.19, up = 0.60} },
["baller"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.23, up = 0.60} },
["baller2"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.60} },
["baller3"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.60} },
["baller4"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.60} },
["baller5"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.60} },
["baller6"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.60} },
["bjxl"] = { distance = 1.2, nozzleOffset = { forward = -0.0, right = -0.21, up = 0.60} },
["cavalcade"] = { distance = 1.2, nozzleOffset = { forward = -0.0, right = -0.21, up = 0.65} },
["cavalcade2"] = { distance = 1.2, nozzleOffset = { forward = -0.0, right = -0.21, up = 0.65} },
["contender"] = { distance = 1.2, nozzleOffset = { forward = 0.75, right = -0.17, up = 0.50} },
["dubsta"] = { distance = 1.2, nozzleOffset = { forward = 0.25, right = -0.17, up = 0.70} },
["dubsta2"] = { distance = 1.2, nozzleOffset = { forward = 0.25, right = -0.17, up = 0.70} },
["fq2"] = { distance = 1.2, nozzleOffset = { forward = -0.32, right = -0.23, up = 0.53} },
["granger"] = { distance = 1.2, nozzleOffset = { forward = 0.65, right = -0.27, up = 0.60} },
["granger2"] = { distance = 1.2, nozzleOffset = { forward = 0.45, right = -0.26, up = 0.60} },
["gresley"] = { distance = 1.2, nozzleOffset = { forward = 0.05, right = -0.17, up = 0.66} },
["habanero"] = { distance = 1.2, nozzleOffset = { forward = -0.47, right = -0.17, up = 0.50} },
["huntley"] = { distance = 1.2, nozzleOffset = { forward = 0.07, right = -0.24, up = 0.65} },
["landstalker"] = { distance = 1.2, nozzleOffset = { forward = 0.40, right = -0.23, up = 0.60} },
["landstalker2"] = { distance = 1.2, nozzleOffset = { forward = 0.25, right = -0.24, up = 0.60} },
["novak"] = { distance = 1.2, nozzleOffset = { forward = -0.25, right = -0.21, up = 0.60} },
["patriot"] = { distance = 1.2, nozzleOffset = { forward = 0.2, right = -0.22, up = 0.75} },
["patriot2"] = { distance = 1.2, nozzleOffset = { forward = 0.2, right = -0.22, up = 0.75} },
["patriot3"] = { distance = 1.2, nozzleOffset = { forward = 0.50, right = -0.29, up = 0.65} },
["radi"] = { distance = 1.2, nozzleOffset = { forward = -0.30, right = -0.17, up = 0.60} },
["rocoto"] = { distance = 1.2, nozzleOffset = { forward = -0.30, right = -0.20, up = 0.60} },
["seminole"] = { distance = 1.2, nozzleOffset = { forward = -0.0, right = -0.20, up = 0.65} },
["seminole2"] = { distance = 1.2, nozzleOffset = { forward = -0.0, right = -0.20, up = 0.55} },
["serrano"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.19, up = 0.60} },
["toros"] = { distance = 1.2, nozzleOffset = { forward = -0.26, right = -0.26, up = 0.68} },
["xls"] = { distance = 1.2, nozzleOffset = { forward = -0.0, right = -0.20, up = 0.65} },
["cogcabrio"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.50} },
["exemplar"] = { distance = 1.2, nozzleOffset = { forward = -0.27, right = -0.19, up = 0.45} },
["f620"] = { distance = 1.2, nozzleOffset = { forward = -0.29, right = -0.25, up = 0.40} },
["felon"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.18, up = 0.40} },
["felon2"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.18, up = 0.40} },
["jackal"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.11, up = 0.50} },
["oracle2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.15, up = 0.50} },
["sentinel"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.11, up = 0.50} },
["sentinel2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.11, up = 0.50} },
["windsor"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.15, up = 0.50} },
["windsor2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.15, up = 0.50} },
["zion"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.17, up = 0.50} },
["zion2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.17, up = 0.50} },
["previon"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.21, up = 0.50} },
["champion"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.11, up = 0.40} },
["futo"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.15, up = 0.40} },
["sentinel3"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.22, up = 0.30} },
["kanjosj"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.17, up = 0.45} },
["postlude"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.15, up = 0.45} },
["tahoma"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.35} },
["broadway"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.35} },
["blade"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.31, up = 0.40} },
["buccaneer"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.28, up = 0.40} },
["chino"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.28, up = 0.35} },
["chino2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.25, up = 0.25} },
["clique"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.21, up = 0.25} },
["coquette3"] = { distance = 1.2, nozzleOffset = { forward = 0.43, right = -0.31, up = 0.25} },
["deviant"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["dominator"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["dominator2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["dominator3"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.40} },
["dominator4"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.21, up = 0.40} },
["dominator7"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.17, up = 0.40} },
["dominator8"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.40} },
["dukes"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.31, up = 0.40} },
["dukes2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.31, up = 0.40} },
["dukes3"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.25, up = 0.40} },
["faction"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.17, up = 0.40} },
["faction2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.16, up = 0.30} },
["faction3"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.16, up = 0.70} },
["ellie"] = { distance = 1.2, nozzleOffset = { forward = -0.30, right = -0.05, up = 0.67} },
["gauntlet"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.25, up = 0.40} },
["gauntlet2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.25, up = 0.40} },
["gauntlet3"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.25, up = 0.50} },
["gauntlet4"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.18, up = 0.45} },
["gauntlet5"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.25, up = 0.50} },
["hermes"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.31, up = 0.20} },
["hotknife"] = { distance = 1.2, nozzleOffset = { forward = 0.40, right = -0.00, up = 0.30} },
["hustler"] = { distance = 1.2, nozzleOffset = { forward = -0.62, right = 0.05, up = 0.20} },
["impaler"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.27, up = 0.35} },
["impaler2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.24, up = 0.35} },
["impaler3"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.22, up = 0.45} },
["impaler4"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.23, up = 0.35} },
["imperator"] = { distance = 1.2, nozzleOffset = { forward = -0.05, right = -0.15, up = 0.65} },
["imperator2"] = { distance = 1.2, nozzleOffset = { forward = -0.05, right = -0.15, up = 0.65} },
["imperator3"] = { distance = 1.2, nozzleOffset = { forward = -0.05, right = -0.15, up = 0.65} },
["lurcher"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.30, up = 0.35} },
["nightshade"] = { distance = 1.2, nozzleOffset = { forward = -0.60, right = -0.07, up = 0.35} },
["phoenix"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.23, up = 0.35} },
["picador"] = { distance = 1.2, nozzleOffset = { forward = 0.75, right = -0.23, up = 0.45} },
["ratloader2"] = { distance = 1.2, nozzleOffset = { forward = 1.05, right = -0.07, up = 0.35} },
["ruiner"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.23, up = 0.35} },
["ruiner2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.25, up = 0.35} },
["sabregt"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.20, up = 0.35} },
["sabregt2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.20, up = 0.30} },
["slamvan"] = { distance = 1.2, nozzleOffset = { forward = 0.90, right = 0.03, up = 0.25} },
["slamvan2"] = { distance = 1.2, nozzleOffset = { forward = 0.90, right = -0.18, up = 0.30} },
["slamvan3"] = { distance = 1.2, nozzleOffset = { forward = 0.85, right = -0.03, up = 0.10} },
["stalion"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.23, up = 0.35} },
["stalion2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.23, up = 0.35} },
["tampa"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.20, up = 0.35} },
["tulip"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.23, up = 0.35} },
["vamos"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.25, up = 0.39} },
["vigero"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.22, up = 0.39} },
["virgo"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.22, up = 0.39} },
["virgo2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.28, up = 0.30} },
["virgo3"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.25, up = 0.30} },
["voodoo"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.29, up = 0.42} },
["yosemite"] = { distance = 1.2, nozzleOffset = { forward = 1.20, right = -0.29, up = 0.25} },
["yosemite2"] = { distance = 1.2, nozzleOffset = { forward = 1.22, right = -0.13, up = 0.35} },
["buffalo4"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.22, up = 0.50} },
["manana"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.25, up = 0.30} },
["manana2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.25, up = 0.30} },
["tampa2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.10, up = 0.30} },
["ruiner4"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.19, up = 0.35} },
["vigero2"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.50} },
["weevil2"] = { distance = 1.2, nozzleOffset = { forward = 1.90, right = 0.15, up = 0.25} },
["buffalo5"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.50} },
["tulip2"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.24, up = 0.35} },
["clique2"] = { distance = 1.2, nozzleOffset = { forward = 0.05, right = -0.26, up = 0.60} },
["brigham"] = { distance = 1.2, nozzleOffset = { forward = 0.15, right = -0.30, up = 0.40} },
["greenwood"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.21, up = 0.50} },
["ardent"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.19, up = 0.35} },
["btype"] = { distance = 1.2, nozzleOffset = { forward = 0.25, right = -0.05, up = 0.78} },
["btype2"] = { distance = 1.2, nozzleOffset = { forward = 0.36, right = 0.07, up = 0.55} },
["btype3"] = { distance = 1.2, nozzleOffset = { forward = 0.25, right = -0.05, up = 0.78} },
["casco"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.21, up = 0.30} },
["deluxo"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.13, up = 0.40} },
["dynasty"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.21, up = 0.40} },
["fagaloa"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.21, up = 0.35} },
["feltzer3"] = { distance = 1.2, nozzleOffset = { forward = -0.31, right = -0.13, up = 0.55} },
["gt500"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.19, up = 0.25} },
["infernus2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.27, up = 0.35} },
["jb700"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.21, up = 0.35} },
["jb7002"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.21, up = 0.35} },
["mamba"] = { distance = 1.2, nozzleOffset = { forward = -0.30, right = -0.13, up = 0.50} },
["michelli"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.18, up = 0.30} },
["monroe"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.21, up = 0.30} },
["nebula"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.30} },
["peyote"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.26, up = 0.30} },
["peyote3"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.26, up = 0.30} },
["pigalle"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.30} },
["rapidgt3"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.30} },
["retinue"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.30} },
["retinue2"] = { distance = 1.2, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.30} },
["savestra"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.15, up = 0.40} },
["stinger"] = { distance = 1.2, nozzleOffset = { forward = -0.02, right = -0.13, up = 0.65} },
["stingergt"] = { distance = 1.2, nozzleOffset = { forward = -0.55, right = -0.20, up = 0.30} },
["stromberg"] = { distance = 1.2, nozzleOffset = { forward = -0.35, right = -0.23, up = 0.35} },
["swinger"] = { distance = 1.2, nozzleOffset = { forward = 0.45, right = -0.28, up = 0.25} },
["torero"] = { distance = 1.2, nozzleOffset = { forward = 0.75, right = -0.21, up = 0.35} },
["tornado"] = { distance = 1.2, nozzleOffset = { forward = 0.45, right = -0.28, up = 0.25} },
["tornado2"] = { distance = 1.2, nozzleOffset = { forward = 0.45, right = -0.28, up = 0.25} },
["tornado5"] = { distance = 1.2, nozzleOffset = { forward = 0.45, right = -0.28, up = 0.25} },
["turismo2"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.23, up = 0.40} },
["viseris"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.18, up = 0.40} },
["z190"] = { distance = 1.2, nozzleOffset = { forward = -0.68, right = -0.10, up = 0.47} },
["ztype"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.23, up = 0.30} },
["zion3"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.23, up = 0.30} },
["cheburek"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.20, up = 0.30} },
["toreador"] = { distance = 1.2, nozzleOffset = { forward = -0.40, right = -0.22, up = 0.35} },
["peyote2"] = { distance = 1.2, nozzleOffset = { forward = -0.50, right = -0.28, up = 0.30} },
["coquette2"] = { distance = 1.2, nozzleOffset = { forward = 0.43, right = -0.24, up = 0.25} },
["alpha"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.21, up = 0.40} },
["banshee"] = { distance = 1.3, nozzleOffset = { forward = -0.55, right = -0.09, up = 0.40} },
["bestiagts"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.25, up = 0.45} },
["buffalo"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.35} },
["buffalo2"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.35} },
["carbonizzare"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.27, up = 0.50} },
["comet2"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.35} },
["comet3"] = { distance = 1.3, nozzleOffset = { forward = -0.52, right = -0.07, up = 0.20} },
["comet4"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.20, up = 0.35} },
["comet5"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.35} },
["coquette"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.28, up = 0.25} },
["coquette4"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.28, up = 0.25} },
["drafter"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.18, up = 0.45} },
["elegy"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.28, up = 0.30} },
["elegy2"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.18, up = 0.50} },
["feltzer2"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.15, up = 0.45} },
["flashgt"] = { distance = 1.3, nozzleOffset = { forward = -0.31, right = -0.26, up = 0.50} },
["furoregt"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.50} },
["gb200"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.20, up = 0.40} },
["komoda"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["italigto"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.27, up = 0.40} },
["jugular"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.16, up = 0.55} },
["jester"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.23, up = 0.35} },
["jester2"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.23, up = 0.35} },
["jester3"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.16, up = 0.40} },
["kuruma"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.19, up = 0.40} },
["kuruma2"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.19, up = 0.40} },
["locust"] = { distance = 1.3, nozzleOffset = { forward = 0.44, right = 0.00, up = 0.61} },
["lynx"] = { distance = 1.3, nozzleOffset = { forward = 0.43, right = -0.24, up = 0.40} },
["massacro"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.21, up = 0.42} },
["massacro2"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.21, up = 0.42} },
["neo"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.23, up = 0.42} },
["ninef"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.24, up = 0.35} },
["ninef2"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.24, up = 0.35} },
["omnis"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.27, up = 0.31} },
["paragon"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.25, up = 0.40} },
["pariah"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.19, up = 0.45} },
["penumbra"] = { distance = 1.3, nozzleOffset = { forward = -0.25, right = -0.19, up = 0.50} },
["penumbra2"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.40} },
["rapidgt"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.17, up = 0.40} },
["rapidgt2"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.17, up = 0.40} },
["raptor"] = { distance = 1.3, nozzleOffset = { forward = -0.20, right = -0.40, up = 0.25} },
["revolter"] = { distance = 1.3, nozzleOffset = { forward = -0.55, right = -0.17, up = 0.45} },
["ruston"] = { distance = 1.3, nozzleOffset = { forward = 0.53, right = -0.00, up = 0.53} },
["schafter3"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.17, up = 0.40} },
["schafter4"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.17, up = 0.40} },
["schlagen"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.17, up = 0.40} },
["seven70"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.23, up = 0.30} },
["specter"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.23, up = 0.30} },
["streiter"] = { distance = 1.3, nozzleOffset = { forward = -0.55, right = -0.08, up = 0.50} },
["sugoi"] = { distance = 1.3, nozzleOffset = { forward = -0.25, right = -0.15, up = 0.50} },
["sultan"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["sultan2"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["surano"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.26, up = 0.40} },
["tropos"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.08, up = 0.40} },
["verlierer2"] = { distance = 1.3, nozzleOffset = { forward = 1.60, right = -0.19, up = 0.30} },
["vstr"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.17, up = 0.55} },
["zr350"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.21, up = 0.35} },
["calico"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.16, up = 0.45} },
["futo2"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.19, up = 0.35} },
["euros"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.15, up = 0.55} },
["remus"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.16, up = 0.45} },
["comet6"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.35} },
["growler"] = { distance = 1.3, nozzleOffset = { forward = -0.20, right = -0.23, up = 0.45} },
["vectre"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.17, up = 0.45} },
["cypher"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.21, up = 0.45} },
["sultan3"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.40} },
["rt3000"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.17, up = 0.45} },
["sultanrs"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.13, up = 0.40} },
["visione"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.10, up = 0.40} },
["cheetah2"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.20, up = 0.35} },
["stingertt"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.25, up = 0.35} },
["sentinel4"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.35} },
["sm722"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.35} },
["tenf"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.23, up = 0.43} },
["tenf2"] = { distance = 1.3, nozzleOffset = { forward = 0.43, right = -0.15, up = 0.43} },
["everon2"] = { distance = 1.3, nozzleOffset = { forward = -1.03, right = -0.24, up = 0.50} },
["issi8"] = { distance = 1.3, nozzleOffset = { forward = -0.20, right = -0.21, up = 0.55} },
["corsita"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.24, up = 0.30} },
["gauntlet6"] = { distance = 1.3, nozzleOffset = { forward = -0.60, right = -0.21, up = 0.31} },
["coureur"] = { distance = 1.3, nozzleOffset = { forward = -0.10, right = -0.22, up = 0.45} },
["r300"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.26, up = 0.40} },
["panthere"] = { distance = 1.3, nozzleOffset = { forward = -0.30, right = -0.14, up = 0.40} },
["adder"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.19, up = 0.50} },
["autarch"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.23, up = 0.30} },
["banshee2"] = { distance = 1.3, nozzleOffset = { forward = -0.55, right = -0.09, up = 0.40} },
["bullet"] = { distance = 1.3, nozzleOffset = { forward = -0.00, right = -0.30, up = 0.05} },
["cheetah"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.31, up = 0.35} },
["entity2"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.27, up = 0.35} },
["entityxf"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.31, up = 0.35} },
["emerus"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.28, up = 0.35} },
["fmj"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.23, up = 0.30} },
["furia"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.26, up = 0.35} },
["gp1"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.27, up = 0.30} },
["infernus"] = { distance = 1.3, nozzleOffset = { forward = 0.91, right = -0.14, up = 0.65} },
["italigtb"] = { distance = 1.3, nozzleOffset = { forward = 0.25, right = -0.20, up = 0.35} },
["italigtb2"] = { distance = 1.3, nozzleOffset = { forward = 0.25, right = -0.20, up = 0.40} },
["krieger"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.21, up = 0.25} },
["le7b"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.35, up = 0.25} },
["nero"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.29, up = 0.25} },
["nero2"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.29, up = 0.25} },
["osiris"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.27, up = 0.25} },
["penetrator"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.25, up = 0.25} },
["pfister811"] = { distance = 1.3, nozzleOffset = { forward = 0.75, right = -0.28, up = 0.35} },
["prototipo"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.27, up = 0.35} },
["reaper"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.15, up = 0.35} },
["s80"] = { distance = 1.3, nozzleOffset = { forward = 0.40, right = -0.31, up = 0.30} },
["sc1"] = { distance = 1.3, nozzleOffset = { forward = 0.40, right = -0.25, up = 0.30} },
["sheava"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.17, up = 0.35} },
["t20"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.27, up = 0.30} },
["taipan"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.25, up = 0.30} },
["tempesta"] = { distance = 1.3, nozzleOffset = { forward = 0.25, right = -0.10, up = 0.60} },
["thrax"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.22, up = 0.30} },
["tigon"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.27, up = 0.30} },
["turismor"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.28, up = 0.30} },
["tyrant"] = { distance = 1.3, nozzleOffset = { forward = 0.30, right = -0.29, up = 0.50} },
["tyrus"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.26, up = 0.30} },
["vacca"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.32, up = 0.35} },
["vagner"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.29, up = 0.35} },
["xa21"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.27, up = 0.35} },
["zentorno"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.29, up = 0.35} },
["zorrusso"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.27, up = 0.35} },
["ignus"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.32, up = 0.35} },
["zeno"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.24, up = 0.35} },
["deveste"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.21, up = 0.25} },
["lm87"] = { distance = 1.3, nozzleOffset = { forward = 0.40, right = -0.34, up = 0.25} },
["torero2"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.28, up = 0.35} },
["entity3"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.27, up = 0.25} },
["virtue"] = { distance = 1.3, nozzleOffset = { forward = 0.45, right = -0.19, up = 0.35} },
["bfinjection"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = 0.02, up = 0.35} },
["bifta"] = { distance = 1.3, nozzleOffset = { forward = 0.03, right = -0.65, up = 0.10} },
-- offroad
["blazer"] = { distance = 1.3, nozzleOffset = { forward = -0.08, right = -0.29, up = 0.20} },
["blazer2"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.25, up = 0.25} },
["blazer3"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.25, up = 0.15} },
["blazer4"] = { distance = 1.3, nozzleOffset = { forward = -0.00, right = -0.22, up = 0.12} },
["blazer5"] = { distance = 1.3, nozzleOffset = { forward = -0.10, right = -0.55, up = 0.25} },
["brawler"] = { distance = 1.3, nozzleOffset = { forward = -0.16, right = -0.13, up = 0.90} },
["caracara"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.16, up = 0.80} },
["caracara2"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.16, up = 0.80} },
["dubsta3"] = { distance = 1.3, nozzleOffset = { forward = -0.75, right = -0.97, up = 0.40} },
["dune"] = { distance = 1.3, nozzleOffset = { forward = 0.05, right = -0.65, up = 0.05} },
["everon"] = { distance = 1.3, nozzleOffset = { forward = -0.80, right = -0.04, up = 0.80} },
["freecrawler"] = { distance = 1.3, nozzleOffset = { forward = -0.10, right = -0.20, up = 1.00} },
["hellion"] = { distance = 1.3, nozzleOffset = { forward = -0.65, right = -0.17, up = 0.40} },
["kalahari"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.17, up = 0.40} },
["kamacho"] = { distance = 1.3, nozzleOffset = { forward = 1.05, right = -0.02, up = 0.60} },
["mesa3"] = { distance = 1.3, nozzleOffset = { forward = 0.25, right = 0.02, up = 0.85} },
["outlaw"] = { distance = 1.3, nozzleOffset = { forward = 0.60, right = -0.13, up = 0.70} },
["rancherxl"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.23, up = 0.50} },
["rebel2"] = { distance = 1.3, nozzleOffset = { forward = 1.10, right = -0.09, up = 0.55} },
["riata"] = { distance = 1.3, nozzleOffset = { forward = 0.90, right = -0.02, up = 0.80} },
["sandking"] = { distance = 1.3, nozzleOffset = { forward = 0.90, right = -0.17, up = 0.70} },
["sandking2"] = { distance = 1.3, nozzleOffset = { forward = 0.90, right = -0.17, up = 0.70} },
["trophytruck"] = { distance = 1.3, nozzleOffset = { forward = 0.90, right = -0.10, up = 0.70} },
["trophytruck2"] = { distance = 1.3, nozzleOffset = { forward = 0.90, right = -0.10, up = 0.70} },
["vagrant"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = 0.15, up = 0.25} },
["verus"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.30, up = 0.08} },
["winky"] = { distance = 1.3, nozzleOffset = { forward = -1.00, right = -0.19, up = 0.50} },
["yosemite3"] = { distance = 1.3, nozzleOffset = { forward = 0.83, right = -0.19, up = 0.50} },
["mesa"] = { distance = 1.3, nozzleOffset = { forward = 0.30, right = -0.11, up = 0.66} },
["ratel"] = { distance = 1.3, nozzleOffset = { forward = 0.61, right = 0.16, up = 1.11} },
["l35"] = { distance = 1.3, nozzleOffset = { forward = 0.80, right = -0.17, up = 0.55} },
["monstrociti"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.23, up = 0.45} },
["draugur"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.16, up = 0.80} },
-- truck
["guardian"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.16, up = 0.40} },
["mixer2"] = { distance = 1.3, nozzleOffset = { forward = 0.0, right = 0.11, up = -0.06} , nozzleRotation = { x = 0, y = 0, z = 180} },
["tiptruck2"] = { distance = 3.5, nozzleOffset = { forward = 2.00, right = -2.25, up = -0.24} , nozzleRotation = { x = 0, y = 0, z = 0} },
["tiptruck"] = { distance = 1.3, nozzleOffset = { forward = 0.01, right = -0.19, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["rubble"] = { distance = 1.3, nozzleOffset = { forward = 0.01, right = -0.19, up = 0.04} , nozzleRotation = { x = 0, y = 0, z = 0} },
["mixer"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.23, up = 0.04} , nozzleRotation = { x = 0, y = 0, z = 0} },
["flatbed"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.23, up = 0.04} , nozzleRotation = { x = 0, y = 0, z = 0} },
["dump"] = { distance = 1.3, nozzleOffset = { forward = 0.27, right = -0.57, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["bulldozer"] = { distance = 1.3, nozzleOffset = { forward = 0.70, right = -0.25, up = 0.80} , nozzleRotation = { x = 0, y = 0, z = 0} },
["handler"] = { distance = 1.3, nozzleOffset = { forward = 0.88, right = -0.52, up = 0.88} , nozzleRotation = { x = 0, y = 0, z = 0} },
["cutter"] = { distance = 1.3, nozzleOffset = { forward = 0.95, right = -0.42, up = 0.30} , nozzleRotation = { x = 0, y = 0, z = 0} },
-- utillity
["slamtruck"] = { distance = 1.3, nozzleOffset = { forward = 0.70, right = -0.28, up = 0.26} },
["utillitruck"] = { distance = 2.0, nozzleOffset = { forward = -0.80, right = -1.25, up = 0.50} },
["utillitruck2"] = { distance = 2.0, nozzleOffset = { forward = -0.80, right = -1.25, up = 0.50} },
["utillitruck3"] = { distance = 2.0, nozzleOffset = { forward = -0.40, right = -0.30, up = 0.50} },
["tractor"] = { distance = 2.0, nozzleOffset = { forward = 1.50, right = 0.27, up = 0.30} },
["tractor2"] = { distance = 2.0, nozzleOffset = { forward = 1.60, right = 0.05, up = 0.20} },
["tractor3"] = { distance = 2.0, nozzleOffset = { forward = 1.60, right = 0.05, up = 0.20} },
["towtruck"] = { distance = 2.0, nozzleOffset = { forward = -0.45, right = -0.30, up = 0.10} },
["towtruck2"] = { distance = 2.0, nozzleOffset = { forward = 0.85, right = 0.05, up = 0.50} },
["scrap"] = { distance = 2.0, nozzleOffset = { forward = -0.52, right = -0.05, up = -0.05} },
["sadler"] = { distance = 1.3, nozzleOffset = { forward = 1.14, right = -0.22, up = 0.70} },
["ripley"] = { distance = 2.0, nozzleOffset = { forward = -0.95, right = -0.48, up = 0.40} },
["mower"] = { distance = 2.0, nozzleOffset = { forward = 1.00, right = 0.10, up = 0.63} },
["forklift"] = { distance = 1.3, nozzleOffset = { forward = 0.05, right = -0.27, up = -0.40} },
["docktug"] = { distance = 2.5, nozzleOffset = { forward = 0.0, right = -0.25, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
-- van
["bison"] = { distance = 1.3, nozzleOffset = { forward = 0.70, right = -0.28, up = 0.26} },
["bobcatxl"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.28, up = 0.35} },
["burrito3"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.25, up = 0.35} },
["gburrito2"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.22, up = 0.35} },
["rumpo"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.25, up = 0.35} },
["journey"] = { distance = 1.3, nozzleOffset = { forward = -0.65, right = -0.34, up = 0.45} },
["minivan"] = { distance = 1.3, nozzleOffset = { forward = -0.65, right = -0.20, up = 0.45} },
["minivan2"] = { distance = 1.3, nozzleOffset = { forward = -0.65, right = -0.20, up = 0.45} },
["paradise"] = { distance = 1.3, nozzleOffset = { forward = -0.65, right = -0.23, up = 0.45} },
["rumpo3"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.23, up = 0.45} },
["speedo"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.24, up = 0.45} },
["speedo4"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.24, up = 0.45} },
["surfer"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.29, up = 0.45} },
["youga3"] = { distance = 1.3, nozzleOffset = { forward = 0.55, right = -0.18, up = 0.45} },
["youga"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.23, up = 0.45} },
["youga2"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.25, up = 0.40} },
["youga4"] = { distance = 1.3, nozzleOffset = { forward = 0.35, right = -0.30, up = 0.40} },
["moonbeam"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.28, up = 0.40} },
["moonbeam2"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.24, up = 0.40} },
["boxville"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.24, up = 0.40} },
["boxville2"] = { distance = 1.3, nozzleOffset = { forward = -2.20, right = -0.30, up = 0.05} },
["boxville3"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.24, up = 0.40} },
["boxville4"] = { distance = 1.3, nozzleOffset = { forward = -2.20, right = -0.30, up = 0.05} },
["boxville5"] = { distance = 1.3, nozzleOffset = { forward = -2.20, right = -0.30, up = 0.05} },
["pony"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.24, up = 0.40} },
["pony2"] = { distance = 1.3, nozzleOffset = { forward = 0.40, right = -0.26, up = 0.40} },
["journey2"] = { distance = 1.3, nozzleOffset = { forward = -0.65, right = -0.34, up = 0.45} },
["surfer3"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.29, up = 0.45} },
["speedo5"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.24, up = 0.45} },
["mule2"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.35, up = 0.75} },
["taco"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.24, up = 0.45} },
-- Lspd, ems ....
["riot"] = { distance = 2.5, nozzleOffset = { forward = -0.80, right = -1.30, up = 0.30} },
["riot2"] = { distance = 1.3, nozzleOffset = { forward = -0.70, right = -0.09, up = 0.65} },
["pbus"] = { distance = 1.3, nozzleOffset = { forward = -0.70, right = -0.30, up = 0.65} },
["police"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.17, up = 0.50} },
["police2"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.24, up = 0.50} },
["police3"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.17, up = 0.50} },
["police4"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.17, up = 0.50} },
["sheriff"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.17, up = 0.50} },
["sheriff2"] = { distance = 1.3, nozzleOffset = { forward = 0.70, right = -0.28, up = 0.60} },
["policeold1"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.24, up = 0.60} },
["policeold2"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.16, up = 0.40} },
["policet"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.26, up = 0.60} },
["policeb"] = { distance = 1.3, nozzleOffset = { forward = -0.18, right = -0.18, up = 0.10}, nozzleRotation = { x = 0, y = 0, z = 60} },
["polmav"] = { distance = 3.0, nozzleOffset = { forward = 0.12, right = -0.60, up = -0.45}, nozzleRotation = { x = 0, y = 0, z = 20} },
["ambulance"] = { distance = 1.3, nozzleOffset = { forward = 2.95, right = -0.08, up = 0.50} },
["firetruk"] = { distance = 1.3, nozzleOffset = { forward = 0.50, right = -0.32, up = 0.70} , nozzleRotation = { x = 0, y = 0, z = 0} },
["lguard"] = { distance = 1.3, nozzleOffset = { forward = 0.67, right = -0.27, up = 0.57} },
["pranger"] = { distance = 1.3, nozzleOffset = { forward = 0.67, right = -0.27, up = 0.57} },
["fbi"] = { distance = 1.3, nozzleOffset = { forward = -0.45, right = -0.24, up = 0.40} },
["fbi2"] = { distance = 1.3, nozzleOffset = { forward = 0.67, right = -0.27, up = 0.57} },
["predator"] = { distance = 3.5, nozzleOffset = { forward = 1.80, right = 1.58, up = 0.17}, nozzleRotation = { x = 0, y = 0, z = 180} },
-- Military
["apc"] = { distance = 2.5, nozzleOffset = { forward = -0.80, right = -1.00, up = 1.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["barracks"] = { distance = 3.5, nozzleOffset = { forward = 0.00, right = -0.25, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
["barracks2"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.28, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["barracks3"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.16, up = -0.03} , nozzleRotation = { x = 0, y = 0, z = 0} },
["chernobog"] = { distance = 2.5, nozzleOffset = { forward = 3.70, right = -0.20, up = 0.22} , nozzleRotation = { x = 0, y = 0, z = 0} },
["crusader"] = { distance = 1.5, nozzleOffset = { forward = 0.25, right = -0.11, up = 0.65} },
["halftrack"] = { distance = 1.5, nozzleOffset = { forward = -0.60, right = -0.30, up = 0.90} },
["khanjali"] = { distance = 1.5, nozzleOffset = { forward = -0.55, right = -0.80, up = 0.95} },
["rhino"] = { distance = 1.5, nozzleOffset = { forward = -0.05, right = -0.52, up = 1.00} },
["scarab"] = { distance = 1.5, nozzleOffset = { forward = 0.60, right = 0.15, up = 1.08} },
["terbyte"] = { distance = 1.5, nozzleOffset = { forward = -0.700, right = -0.47, up = 0.65} , nozzleRotation = { x = 0, y = 0, z = 0} },
["vetir"] = { distance = 3.0, nozzleOffset = { forward = 1.25, right = 1.95, up = 0.40} , nozzleRotation = { x = 0, y = 0, z = 180} },
["thruster"] = { distance = 1.5, nozzleOffset = { forward = -0.10, right = 0.40, up = 1.25} , nozzleRotation = { x = 0, y = 0, z = 90} },
["minitank"] = { distance = 1.5, nozzleOffset = { forward = 0.05, right = -0.05, up = 0.49} },
-- Electric cars
["voltic"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.14, up = 0.45} },
["voltic2"] = { distance = 1.3, nozzleOffset = { forward = -0.12, right = 0.12, up = 0.57} },
["caddy"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.09, up = 0.53} },
["caddy2"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.09, up = 0.35} },
["caddy3"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.09, up = 0.35} },
["surge"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.14, up = 0.45} },
["iwagen"] = { distance = 1.3, nozzleOffset = { forward = -0.40, right = -0.16, up = 0.50} },
["raiden"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.13, up = 0.50} },
["airtug"] = { distance = 1.3, nozzleOffset = { forward = -0.20, right = -0.18, up = 0.47} },
["neon"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.16, up = 0.50} },
["omnisegt"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.16, up = 0.40} },
["cyclone"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.16, up = 0.45} },
["tezeract"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.16, up = 0.48} },
["imorgon"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.16, up = 0.48} },
["dilettante"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.14, up = 0.48} },
["dilettante2"] = { distance = 1.3, nozzleOffset = { forward = -0.05, right = -0.14, up = 0.48} },
["khamelion"] = { distance = 1.3, nozzleOffset = { forward = -0.35, right = -0.20, up = 0.48} },
["rcbandito"] = { distance = 1.3, nozzleOffset = { forward = -0.12, right = 0.12, up = 0.22} },
-- Motorcycles
["akuma"] = { distance = 1.1, nozzleOffset = { forward = 0.01, right = -0.20, up = 0.20} },
["avarus"] = { distance = 1.1, nozzleOffset = { forward = -0.22, right = 0.03, up = 0.11} , nozzleRotation = { x = 0, y = 0, z = 90} },
["bagger"] = { distance = 1.1, nozzleOffset = { forward = -0.26, right = 0.03, up = 0.11} , nozzleRotation = { x = 0, y = 0, z = 90} },
["bati"] = { distance = 1.1, nozzleOffset = { forward = -0.15, right = -0.25, up = 0.20} },
["bati2"] = { distance = 1.1, nozzleOffset = { forward = -0.15, right = -0.24, up = 0.20} },
["bf400"] = { distance = 1.1, nozzleOffset = { forward = -0.05, right = -0.24, up = 0.29} },
["carbonrs"] = { distance = 1.1, nozzleOffset = { forward = 0.01, right = -0.22, up = 0.20} },
["chimera"] = { distance = 1.1, nozzleOffset = { forward = -0.22, right = 0.00, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["cliffhanger"] = { distance = 1.1, nozzleOffset = { forward = -0.33, right = 0.05, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["daemon"] = { distance = 1.1, nozzleOffset = { forward = -0.17, right = 0.03, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["daemon2"] = { distance = 1.1, nozzleOffset = { forward = -0.17, right = 0.03, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["defiler"] = { distance = 1.1, nozzleOffset = { forward = 0.09, right = -0.23, up = 0.20} },
["deathbike"] = { distance = 1.1, nozzleOffset = { forward = -0.17, right = 0.03, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["deathbike2"] = { distance = 1.1, nozzleOffset = { forward = -0.25, right = 0.03, up = 0.07} , nozzleRotation = { x = 0, y = 0, z = 90} },
["deathbike3"] = { distance = 1.1, nozzleOffset = { forward = -0.17, right = 0.03, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["diablous"] = { distance = 1.1, nozzleOffset = { forward = -0.27, right = 0.06, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 90} },
["diablous2"] = { distance = 1.1, nozzleOffset = { forward = -0.27, right = 0.03, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 90} },
["double"] = { distance = 1.1, nozzleOffset = { forward = 0.01, right = -0.22, up = 0.20} },
["enduro"] = { distance = 1.1, nozzleOffset = { forward = -0.05, right = -0.17, up = 0.25} },
["esskey"] = { distance = 1.1, nozzleOffset = { forward = -0.05, right = -0.20, up = 0.20} },
["faggio"] = { distance = 1.1, nozzleOffset = { forward = 0.20, right = -0.28, up = 0.30} },
["faggio2"] = { distance = 1.1, nozzleOffset = { forward = 0.20, right = 0.25, up = -0.10} , nozzleRotation = { x = 0, y = 0, z = 180} },
["faggio3"] = { distance = 1.1, nozzleOffset = { forward = 0.20, right = 0.25, up = -0.10} , nozzleRotation = { x = 0, y = 0, z = 180} },
["fcr"] = { distance = 1.1, nozzleOffset = { forward = -0.03, right = -0.21, up = 0.10} },
["gargoyle"] = { distance = 1.1, nozzleOffset = { forward = -0.26, right = 0.03, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 90} },
["hakuchou"] = { distance = 1.1, nozzleOffset = { forward = 0.05, right = -0.17, up = 0.10} },
["hakuchou2"] = { distance = 1.1, nozzleOffset = { forward = 0.00, right = -0.19, up = 0.10} },
["hexer"] = { distance = 1.1, nozzleOffset = { forward = -0.17, right = 0.04, up = 0.20} , nozzleRotation = { x = 0, y = 0, z = 90} },
["innovation"] = { distance = 1.1, nozzleOffset = { forward = -0.23, right = 0.02, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 90} },
["lectro"] = { distance = 1.1, nozzleOffset = { forward = -0.12, right = -0.20, up = 0.20} },
["manchez"] = { distance = 1.1, nozzleOffset = { forward = -0.04, right = -0.20, up = 0.10} },
["nemesis"] = { distance = 1.1, nozzleOffset = { forward = -0.03, right = -0.17, up = 0.10} },
["nightblade"] = { distance = 1.1, nozzleOffset = { forward = -0.27, right = 0.05, up = 0.14} , nozzleRotation = { x = 0, y = 0, z = 90} },
["oppressor"] = { distance = 1.1, nozzleOffset = { forward = -0.27, right = 0.05, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 90} },
["pcj"] = { distance = 1.1, nozzleOffset = { forward = 0.04, right = -0.20, up = 0.20} },
["ratbike"] = { distance = 1.1, nozzleOffset = { forward = -0.22, right = 0.03, up = 0.11} , nozzleRotation = { x = 0, y = 0, z = 90} },
["ruffian"] = { distance = 1.1, nozzleOffset = { forward = 0.04, right = -0.19, up = 0.20} },
["sanchez"] = { distance = 1.1, nozzleOffset = { forward = -0.05, right = -0.22, up = 0.25} },
["sanchez2"] = { distance = 1.1, nozzleOffset = { forward = -0.05, right = -0.22, up = 0.25} },
["sanctus"] = { distance = 1.1, nozzleOffset = { forward = -0.22, right = 0.03, up = 0.08} , nozzleRotation = { x = 0, y = 0, z = 90} },
["shotaro"] = { distance = 1.1, nozzleOffset = { forward = 0.06, right = -0.25, up = 0.20} },
["sovereign"] = { distance = 1.1, nozzleOffset = { forward = -0.07, right = -0.23, up = 0.15} },
["stryder"] = { distance = 1.1, nozzleOffset = { forward = 0.06, right = -0.20, up = 0.15} },
["thrust"] = { distance = 1.1, nozzleOffset = { forward = -0.02, right = -0.25, up = 0.15} },
["vader"] = { distance = 1.1, nozzleOffset = { forward = 0.10, right = -0.25, up = 0.20} },
["vindicator"] = { distance = 1.1, nozzleOffset = { forward = -0.02, right = -0.25, up = 0.15} },
["vortex"] = { distance = 1.1, nozzleOffset = { forward = -0.02, right = -0.20, up = 0.12} },
["wolfsbane"] = { distance = 1.1, nozzleOffset = { forward = -0.22, right = 0.03, up = 0.11} , nozzleRotation = { x = 0, y = 0, z = 90} },
["zombiea"] = { distance = 1.1, nozzleOffset = { forward = -0.14, right = 0.03, up = 0.11} , nozzleRotation = { x = 0, y = 0, z = 90} },
["zombieb"] = { distance = 1.1, nozzleOffset = { forward = -0.21, right = 0.03, up = 0.15} , nozzleRotation = { x = 0, y = 0, z = 90} },
["manchez2"] = { distance = 1.1, nozzleOffset = { forward = -0.04, right = -0.22, up = 0.10} },
["shinobi"] = { distance = 1.1, nozzleOffset = { forward = -0.04, right = -0.22, up = 0.20} },
["reever"] = { distance = 1.1, nozzleOffset = { forward = 0.09, right = -0.20, up = 0.10} },
["manchez3"] = { distance = 1.1, nozzleOffset = { forward = -0.04, right = -0.22, up = 0.10} },
-- truck 2
["pounder2"] = { distance = 1.3, nozzleOffset = { forward = -0.60, right = -0.12, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["mule4"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.35, up = 0.75} },
["phantom3"] = { distance = 1.3, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["hauler2"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.17, up = 0.02} , nozzleRotation = { x = 0, y = 0, z = 0} },
["phantom2"] = { distance = 1.3, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["mule5"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.35, up = 0.75} },
["stockade"] = { distance = 3.0, nozzleOffset = { forward = -0.50, right = -1.36, up = 0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
["pounder"] = { distance = 1.3, nozzleOffset = { forward = -0.60, right = -0.12, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["phantom"] = { distance = 1.3, nozzleOffset = { forward = -0.60, right = -0.17, up = 0.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["packer"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.17, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["mule"] = { distance = 1.3, nozzleOffset = { forward = -0.50, right = -0.35, up = 0.75} },
["hauler"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = -0.17, up = -0.02} , nozzleRotation = { x = 0, y = 0, z = 0} },
["biff"] = { distance = 1.3, nozzleOffset = { forward = 0.0, right = 0.11, up = -0.06} , nozzleRotation = { x = 0, y = 0, z = 180} },
["benson"] = { distance = 1.3, nozzleOffset = { forward = 0.32, right = 0.40, up = 0.21} , nozzleRotation = { x = 0, y = 0, z = 180} },
--helicopters
["conada2"] = { distance = 3.5, nozzleOffset = { forward = -0.10, right = -0.90, up = 0.20}, nozzleRotation = { x = 0, y = 0, z = 0} },
["akula"] = { distance = 3.5, nozzleOffset = { forward = -1.50, right = -0.65, up = -0.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["annihilator2"] = { distance = 3.5, nozzleOffset = { forward = -1.10, right = -1.25, up = -1.70}, nozzleRotation = { x = 0, y = 0, z = 0} },
["annihilator"] = { distance = 3.5, nozzleOffset = { forward = -1.20, right = -1.05, up = -1.70}, nozzleRotation = { x = 0, y = 0, z = 0} },
["havok"] = { distance = 1.5, nozzleOffset = { forward = -0.10, right = -0.49, up = 0.00}, nozzleRotation = { x = 0, y = 0, z = 0} },
["hunter"] = { distance = 3.5, nozzleOffset = { forward = -1.50, right = -0.69, up = -0.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["seasparrow"] = { distance = 1.5, nozzleOffset = { forward = -0.10, right = -0.70, up = 0.00}, nozzleRotation = { x = 0, y = 0, z = 0} },
["seasparrow2"] = { distance = 3.2, nozzleOffset = { forward = -0.10, right = -0.70, up = 0.00}, nozzleRotation = { x = 0, y = 0, z = 0} },
["supervolito"] = { distance = 2.0, nozzleOffset = { forward = -0.50, right = -0.87, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["supervolito2"] = { distance = 2.0, nozzleOffset = { forward = -0.50, right = -0.87, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["swift"] = { distance = 2.5, nozzleOffset = { forward = -1.10, right = -0.90, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["swift2"] = { distance = 2.5, nozzleOffset = { forward = -1.10, right = -0.90, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["valkyrie"] = { distance = 2.5, nozzleOffset = { forward = 1.60, right = -1.21, up = -1.80}, nozzleRotation = { x = 0, y = 0, z = 0} },
["valkyrie2"] = { distance = 2.5, nozzleOffset = { forward = 1.60, right = -1.21, up = -1.80}, nozzleRotation = { x = 0, y = 0, z = 0} },
["volatus"] = { distance = 2.5, nozzleOffset = { forward = -1.10, right = -0.86, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["savage"] = { distance = 3.5, nozzleOffset = { forward = -0.10, right = -1.09, up = -2.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["buzzard2"] = { distance = 2.2, nozzleOffset = { forward = -1.10, right = -0.76, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 10} },
["buzzard"] = { distance = 2.5, nozzleOffset = { forward = -1.10, right = -0.76, up = -1.30}, nozzleRotation = { x = 0, y = 0, z = 10} },
["cargobob"] = { distance = 4.0, nozzleOffset = { forward = -2.20, right = -1.29, up = -2.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["cargobob2"] = { distance = 4.0, nozzleOffset = { forward = -2.20, right = -1.29, up = -2.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["cargobob3"] = { distance = 4.0, nozzleOffset = { forward = -2.20, right = -1.29, up = -2.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["cargobob4"] = { distance = 4.0, nozzleOffset = { forward = -2.20, right = -1.29, up = -2.30}, nozzleRotation = { x = 0, y = 0, z = 0} },
["conada"] = { distance = 2.0, nozzleOffset = { forward = -0.09, right = -0.90, up = 0.20}, nozzleRotation = { x = 0, y = 0, z = 0} },
["frogger"] = { distance = 2.0, nozzleOffset = { forward = 0.00, right = -0.92, up = -0.90}, nozzleRotation = { x = 0, y = 0, z = 20} },
["frogger2"] = { distance = 2.0, nozzleOffset = { forward = 0.00, right = -0.92, up = -0.90}, nozzleRotation = { x = 0, y = 0, z = 20} },
["seasparrow3"] = { distance = 1.5, nozzleOffset = { forward = -0.10, right = -0.70, up = 0.00}, nozzleRotation = { x = 0, y = 0, z = 0} },
["skylift"] = { distance = 4.0, nozzleOffset = { forward = 4.95, right = 0.00, up = -3.50}, nozzleRotation = { x = 0, y = 0, z = 90} },
["maverick"] = { distance = 3.5, nozzleOffset = { forward = 0.00, right = -0.90, up = -1.50}, nozzleRotation = { x = 0, y = 0, z = 20} },
-- Boats
["toro"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.75, up = 0.48 } , nozzleRotation = { x = -75, y = 0, z = 90} },
["toro2"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.75, up = 0.48 } , nozzleRotation = { x = -75, y = 0, z = 90} },
["patrolboat"] = { distance = 1.0, nozzleOffset = { forward = -0.30, right = 0.25, up = 0.20 } , nozzleRotation = { x = 0, y = 0, z = 180} },
["longfin"] = { distance = 1.5, nozzleOffset = { forward = 0.90 , right = -1.40, up = 0.68} , nozzleRotation = { x = -75, y = 0, z = 90} },
["speeder"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.95, up = 0.65 } , nozzleRotation = { x = -75, y = 0, z = 90} },
["speeder2"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.95, up = 0.65 } , nozzleRotation = { x = -75, y = 0, z = 90} },
["tropic"] = { distance = 2.0, nozzleOffset = { forward = 1.00, right = -1.15, up = 0.71} , nozzleRotation = { x = -75, y = 0, z = 90} },
["tropic2"] = { distance = 2.0, nozzleOffset = { forward = 1.00, right = -1.15, up = 0.71} , nozzleRotation = { x = -75, y = 0, z = 90} },
["suntrap"] = { distance = 2.0, nozzleOffset = { forward = 0.55, right = -0.95, up = 0.93} , nozzleRotation = { x = -75, y = 0, z = 90} },
["squalo"] = { distance = 1.5, nozzleOffset = { forward = 0.0, right = -0.95, up = 0.57 } , nozzleRotation = { x = -60, y = 0, z = 90} },
["marquis"] = { distance = 1.5, nozzleOffset = { forward = 0.50, right = -1.35, up = 1.36 } , nozzleRotation = { x = -75, y = 0, z = 90} },
["jetmax"] = { distance = 2.0, nozzleOffset = { forward = 0.50, right = -0.90, up = 0.54 } , nozzleRotation = { x = -75, y = 0, z = 90} },
["dinghy"] = { distance = 1.0, nozzleOffset = { forward = -0.20, right = -0.69, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["dinghy2"] = { distance = 1.0, nozzleOffset = { forward = -0.20, right = -0.69, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["dinghy3"] = { distance = 1.0, nozzleOffset = { forward = -0.20, right = -0.69, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["dinghy4"] = { distance = 1.0, nozzleOffset = { forward = -0.20, right = -0.69, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["dinghy5"] = { distance = 1.0, nozzleOffset = { forward = -0.20, right = -0.69, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
-- Jet
["seashark"] = { distance = 2.0, nozzleOffset = { forward = 0.89, right = 0.00, up = 0.42 } , nozzleRotation = { x = -60, y = 0, z = 90} },
["seashark3"] = { distance = 2.0, nozzleOffset = { forward = 0.89, right = 0.00, up = 0.42 } , nozzleRotation = { x = -60, y = 0, z = 90} },
["seashark2"] = { distance = 2.0, nozzleOffset = { forward = 0.89, right = 0.00, up = 0.42 } , nozzleRotation = { x = -60, y = 0, z = 90} },
-- Submarine
["avisa"] = { distance = 2.0, nozzleOffset = { forward = -0.40, right = -1.30, up = 0.14 } , nozzleRotation = { x = -85, y = 0, z = 90} },
["submersible2"] = { distance = 2.5, nozzleOffset = { forward = -0.40, right = -0.70, up = 1.20 } , nozzleRotation = { x = -90, y = 0, z = 0} },
["submersible"] = { distance = 2.5, nozzleOffset = { forward = -0.60, right = -0.85, up = 1.20 } , nozzleRotation = { x = -90, y = 0, z = 0} },
-- Big boats
-- ["kosatka"] = { distance = 6.0, nozzleOffset = { forward = 0.0, right = -0.15, up = 1.0 } }, ----- BIG SUBMARINE
["tug"] = { distance = 2.5, nozzleOffset = { forward = 0.0, right = 0.79, up = 0.20} , nozzleRotation = { x = 0, y = 0, z = 180} },
-- Plane
["streamer216"] = { distance = 1.5, nozzleOffset = { forward = -0.40, right = 1.02, up = 1.10 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["raiju"] = { distance = 3.0, nozzleOffset = { forward = 1.0, right = -0.85, up = -0.25 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["alkonost"] = { distance = 11.0, nozzleOffset = { forward = -2.60, right = -5.30, up = 0.90 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["strikeforce"] = { distance = 3.0, nozzleOffset = { forward = 3.0, right = 1.37, up = 1.60 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["blimp3"] = { distance = 2.0, nozzleOffset = { forward = -0.40, right = 0.41, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["avenger"] = { distance = 2.0, nozzleOffset = { forward = -0.60, right = -0.73, up = 1.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["avenger2"] = { distance = 2.0, nozzleOffset = { forward = -0.60, right = -0.73, up = 1.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["volatol"] = { distance = 2.0, nozzleOffset = { forward = 0.80, right = 0.46, up = 1.85} , nozzleRotation = { x = 0, y = 0, z = 0} },
["nokota"] = { distance = 2.5, nozzleOffset = { forward = -1.50, right = 1.60, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
["seabreeze"] = { distance = 2.5, nozzleOffset = { forward = -0.20, right = -0.10, up = -1.70} , nozzleRotation = { x = 0, y = 0, z = 0} },
["pyro"] = { distance = 3.0, nozzleOffset = { forward = 2.10, right = 1.56, up = 0.90} , nozzleRotation = { x = 0, y = 0, z = 0} },
["mogul"] = { distance = 2.0, nozzleOffset = { forward = 0.30, right = -0.68, up = 1.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["howard"] = { distance = 2.5, nozzleOffset = { forward = 1.80, right = 1.25, up = 1.25} , nozzleRotation = { x = 0, y = 0, z = 0} },
["bombushka"] = { distance = 2.5, nozzleOffset = { forward = 0.50, right = -0.71, up = 1.25} , nozzleRotation = { x = 0, y = 0, z = 0} },
["molotok"] = { distance = 3.5, nozzleOffset = { forward = 2.00, right = -0.85, up = 0.55} , nozzleRotation = { x = 0, y = 0, z = 0} },
["microlight"] = { distance = 3.5, nozzleOffset = { forward = -0.02, right = 0.48, up = 0.30} , nozzleRotation = { x = 0, y = 0, z = 45} },
["tula"] = { distance = 3.5, nozzleOffset = { forward = 0.70, right = -0.52, up = -0.30} , nozzleRotation = { x = 0, y = 0, z = 0} },
["rogue"] = { distance = 3.5, nozzleOffset = { forward = 0.10, right = -0.15, up = 0.45} , nozzleRotation = { x = 0, y = 0, z = 0} },
["starling"] = { distance = 3.5, nozzleOffset = { forward = 0.10, right = -0.08, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["alphaz1"] = { distance = 3.5, nozzleOffset = { forward = -1.00, right = -0.03, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["nimbus"] = { distance = 5.0, nozzleOffset = { forward = 0.00, right = -0.10, up = -0.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["luxor2"] = { distance = 5.0, nozzleOffset = { forward = 0.00, right = 0.80, up = -0.30} , nozzleRotation = { x = 0, y = 0, z = 0} },
["velum2"] = { distance = 5.0, nozzleOffset = { forward = -0.30, right = -0.20, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["hydra"] = { distance = 2.5, nozzleOffset = { forward = -1.80, right = 1.88, up = 1.35} , nozzleRotation = { x = 0, y = 0, z = 0} },
["blimp2"] = { distance = 2.0, nozzleOffset = { forward = -0.40, right = 0.41, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
["dodo"] = { distance = 2.0, nozzleOffset = { forward = -0.15, right = -0.13, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["miljet"] = { distance = 6.0, nozzleOffset = { forward = 2.75, right = -0.47, up = -1.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["vestra"] = { distance = 2.5, nozzleOffset = { forward = 2.50, right = 1.35, up = 1.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["cargoplane"] = { distance = 2.5, nozzleOffset = { forward = 1.50, right = 0.27, up = 1.60} , nozzleRotation = { x = 0, y = 0, z = 0} },
["velum"] = { distance = 5.0, nozzleOffset = { forward = -0.30, right = -0.20, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["titan"] = { distance = 2.5, nozzleOffset = { forward = 0.50, right = -0.46, up = 1.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["shamal"] = { distance = 2.5, nozzleOffset = { forward = 0.00, right = -0.10, up = -0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
["lazer"] = { distance = 2.5, nozzleOffset = { forward = 0.00, right = -0.09, up = -0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
["stunt"] = { distance = 2.5, nozzleOffset = { forward = 0.00, right = -0.08, up = -0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
["luxor"] = { distance = 5.0, nozzleOffset = { forward = 0.00, right = 0.80, up = -0.30} , nozzleRotation = { x = 0, y = 0, z = 0} },
["jet"] = { distance = 15.0, nozzleOffset = { forward = 1.20, right = 1.20, up = 2.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["duster"] = { distance = 2.5, nozzleOffset = { forward = -0.20, right = -0.15, up = -0.05} , nozzleRotation = { x = 0, y = 0, z = 0} },
["cuban800"] = { distance = 2.5, nozzleOffset = { forward = 1.00, right = 0.51, up = 0.20} , nozzleRotation = { x = 0, y = 0, z = 0} },
["blimp"] = { distance = 2.0, nozzleOffset = { forward = -0.40, right = 0.41, up = 0.50 } , nozzleRotation = { x = 0, y = 0, z = 0} },
-- Service
["brickade"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = 0.16, up = 0.0} , nozzleRotation = { x = 0, y = 0, z = 180} },
["brickade2"] = { distance = 1.3, nozzleOffset = { forward = 0.00, right = 0.16, up = 0.0} , nozzleRotation = { x = 0, y = 0, z = 180} },
["pbus2"] = { distance = 3.0, nozzleOffset = { forward = -2.38, right = -0.30, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
["wastelander"] = { distance = 2.5, nozzleOffset = { forward = 0.00, right = -0.05, up = -0.10} , nozzleRotation = { x = 0, y = 0, z = 0} },
["rallytruck"] = { distance = 2.0, nozzleOffset = { forward = 0.00, right = 0.64, up = 0.0} , nozzleRotation = { x = 0, y = 0, z = 180} },
-- ["metrotrain"] = { distance = 2.0, nozzleOffset = { forward = 0.00, right = 0.64, up = 0.0} , nozzleRotation = { x = 0, y = 0, z = 180} }, --- metro
-- ["freight"] = { distance = 2.0, nozzleOffset = { forward = 0.00, right = 0.64, up = 0.0} , nozzleRotation = { x = 0, y = 0, z = 180} }, -- train
-- ["cablecar"] = { distance = 2.0, nozzleOffset = { forward = 0.00, right = 0.64, up = 0.0} , nozzleRotation = { x = 0, y = 0, z = 180} }, -- cablecar
["trash"] = { distance = 2.5, nozzleOffset = { forward = 0.00, right = -0.15, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["trash2"] = { distance = 2.5, nozzleOffset = { forward = 0.00, right = -0.15, up = 0.00} , nozzleRotation = { x = 0, y = 0, z = 0} },
["tourbus"] = { distance = 2.0, nozzleOffset = { forward = -0.50, right = -0.33, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
["taxi"] = { distance = 2.0, nozzleOffset = { forward = -0.50, right = -0.20, up = 0.45} , nozzleRotation = { x = 0, y = 0, z = 0} },
["rentalbus"] = { distance = 2.0, nozzleOffset = { forward = -0.50, right = -0.33, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
["coach"] = { distance = 2.0, nozzleOffset = { forward = -0.80, right = -0.29, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
["bus"] = { distance = 2.0, nozzleOffset = { forward = -0.80, right = -0.28, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
["airbus"] = { distance = 2.0, nozzleOffset = { forward = -0.80, right = -0.28, up = 0.50} , nozzleRotation = { x = 0, y = 0, z = 0} },
-- Race
["openwheel2"] = { distance = 2.0, nozzleOffset = { forward = 0.0, right = -0.60, up = 0.30} , nozzleRotation = { x = -75, y = 0, z = 90} },
["openwheel1"] = { distance = 2.0, nozzleOffset = { forward = 0.0, right = -0.60, up = 0.35} , nozzleRotation = { x = -75, y = 0, z = 90} },
["formula2"] = { distance = 2.0, nozzleOffset = { forward = 0.0, right = -0.50, up = 0.29} , nozzleRotation = { x = -75, y = 0, z = 90} },
["formula"] = { distance = 2.0, nozzleOffset = { forward = 0.0, right = -0.50, up = 0.29} , nozzleRotation = { x = -75, y = 0, z = 90} },
}