Installation
Do not skim the instructions. You need to follow every step of the Install Guide to make sure you're installing the script correctly
Dependency Installation
Jim_Bridge
Download
Get it free from github - https://github.com/jimathy/jim_bridge
Framework Installation
Add the script to the server resources
It is highly recommend to put this script folder in a new folder called
[jim]
Then add
ensure [jim]
AFTER your other scripts in your server.cfg
Ensure List
GO TO YOUR server.cfg
The ORDER of the load order is important, check information here
Resources (EXAMPLE)
# Default & Standalone Resources
# ------------------------------
ensure chat
ensure hardcap
ensure oxmysql
start ox_lib
# ESX Legacy Core
# ----------
ensure [core]
ensure [esx_addons]
start ox_inventory
start ox_target
ensure [standalone] # Place `jim_bridge` here
# ESX Addons
# ----------
# Other
ensure [jimextras] # Place `jim-payments` / `jim-consumables` / `jim-jobgarage` / `jim-djbooth` here
ensure [jim] # Place all other jim scripts here
IF YOU ALREADY HAVE A [jim] FOLDER, PUT IT IN THAT FOLDER YOU DO NOT NEED TO CREATE A NEW ONE.
Jim-Payments (Required/Optional)
This is the default system for payments in the script but can easily be changed in
client.lua
When triggered gets a list of the nearest players and lets you choose which one to charge
I class it as
optional
because you don't specifically need it if you have another you want to use.
Job Installation
Import the esx_jobs.sql
into your database to add the jobs and their grades
INSERT INTO `jobs` (name, label) VALUES
('mechanic', 'Mechanic')
;
INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_female) VALUES
('mechanic',0,'recruit','Recruit',12,'{}','{}'),
('mechanic',1,'novice','Novice',24,'{}','{}'),
('mechanic',2,'experienced','Experienced',36,'{}','{}'),
('mechanic',3,'advanced',"Advanced",48,'{}','{}'),
('mechanic',4,'boss','Manager',0,'{}','{}')
;
Item Installation
These items work for both old and new qb-inventory
Item Images
There are two image folders:
images
contains standard coloured itemsimages_alt
contains tiered images with their rank included
Add the chosen images to your inventory folder eg.
qb-inventory > html > images
Item Data
If using qb-inventory
or similar, add the lines from qb_items.txt
to your qb-core > shared > items.lua
-- Jim-Mechanic --
mechanic_tools = { name = "mechanic_tools", label = "Mechanic tools", weight = 0, type = "item", image = "mechanic_tools.png", unique = true, useable = true, shouldClose = true, description = "Needed for vehicle repairs"},
toolbox = { name = "toolbox", label = "Toolbox", weight = 0, type = "item", image = "toolbox.png", unique = true, useable = true, shouldClose = true, description = "Needed for Performance part removal"},
ducttape = { name = "ducttape", label = "Duct Tape", weight = 0, type = "item", image = "bodyrepair.png", unique = true, useable = true, shouldClose = true, description = "Good for quick fixes"},
mechboard = { name = "mechboard", label = "Mechanic Sheet", weight = 0, type = "item", image = "mechboard.png", unique = true, useable = true, shouldClose = true, description = ""},
-- Nitrous/Nos
nos = { name = "nos", label = "NOS Bottle", weight = 0, type = "item", image = "nos.png", unique = true, useable = true, shouldClose = true, description = "A full bottle of NOS"},
noscan = { name = "noscan", label = "Empty NOS Bottle", weight = 0, type = "item", image = "noscan.png", unique = false, useable = true, shouldClose = true, description = "An Empty bottle of NOS"},
noscolour = { name = "noscolour", label = "NOS Colour Injector", weight = 0, type = "item", image = "noscolour.png", unique = false, useable = true, shouldClose = true, description = "Make that purge spray"},
--Performance
turbo = { name = "turbo", label = "Supercharger Turbo", weight = 0, type = "item", image = "turbo.png", unique = true, useable = true, shouldClose = true, description = ""},
car_armor = { name = "car_armor", label = "Vehicle Armor", weight = 0, type = "item", image = "car_armour.png", unique = true, useable = true, shouldClose = true, description = ""},
engine1 = { name = "engine1", label = "Tier 1 Engine", weight = 0, type = "item", image = "engine1.png", unique = true, useable = true, shouldClose = true, description = ""},
engine2 = { name = "engine2", label = "Tier 2 Engine", weight = 0, type = "item", image = "engine2.png", unique = true, useable = true, shouldClose = true, description = ""},
engine3 = { name = "engine3", label = "Tier 3 Engine", weight = 0, type = "item", image = "engine3.png", unique = true, useable = true, shouldClose = true, description = ""},
engine4 = { name = "engine4", label = "Tier 4 Engine", weight = 0, type = "item", image = "engine4.png", unique = true, useable = true, shouldClose = true, description = ""},
engine5 = { name = "engine5", label = "Tier 5 Engine", weight = 0, type = "item", image = "engine5.png", unique = true, useable = true, shouldClose = true, description = ""},
transmission1 = { name = "transmission1", label = "Tier 1 Transmission", weight = 0, type = "item", image = "transmission1.png", unique = true, useable = true, shouldClose = true, description = ""},
transmission2 = { name = "transmission2", label = "Tier 2 Transmission", weight = 0, type = "item", image = "transmission2.png", unique = true, useable = true, shouldClose = true, description = ""},
transmission3 = { name = "transmission3", label = "Tier 3 Transmission", weight = 0, type = "item", image = "transmission3.png", unique = true, useable = true, shouldClose = true, description = ""},
transmission4 = { name = "transmission4", label = "Tier 4 Transmission", weight = 0, type = "item", image = "transmission4.png", unique = true, useable = true, shouldClose = true, description = ""},
brakes1 = { name = "brakes1", label = "Tier 1 Brakes", weight = 0, type = "item", image = "brakes1.png", unique = true, useable = true, shouldClose = true, description = ""},
brakes2 = { name = "brakes2", label = "Tier 2 Brakes", weight = 0, type = "item", image = "brakes2.png", unique = true, useable = true, shouldClose = true, description = ""},
brakes3 = { name = "brakes3", label = "Tier 3 Brakes", weight = 0, type = "item", image = "brakes3.png", unique = true, useable = true, shouldClose = true, description = ""},
suspension1 = { name = "suspension1", label = "Tier 1 Suspension", weight = 0, type = "item", image = "suspension1.png", unique = true, useable = true, shouldClose = true, description = ""},
suspension2 = { name = "suspension2", label = "Tier 2 Suspension", weight = 0, type = "item", image = "suspension2.png", unique = true, useable = true, shouldClose = true, description = ""},
suspension3 = { name = "suspension3", label = "Tier 3 Suspension", weight = 0, type = "item", image = "suspension3.png", unique = true, useable = true, shouldClose = true, description = ""},
suspension4 = { name = "suspension4", label = "Tier 4 Suspension", weight = 0, type = "item", image = "suspension4.png", unique = true, useable = true, shouldClose = true, description = ""},
suspension5 = { name = "suspension5", label = "Tier 5 Suspension", weight = 0, type = "item", image = "suspension5.png", unique = true, useable = true, shouldClose = true, description = ""},
-- Tire Style Changers
bprooftires = { name = "bprooftires", label = "Bulletproof Tires", weight = 0, type = "item", image = "bprooftires.png", unique = true, useable = true, shouldClose = true, description = ""},
drifttires = { name = "drifttires", label = "Drift Tires", weight = 0, type = "item", image = "drifttires.png", unique = true, useable = true, shouldClose = true, description = ""},
-- Vehicle Extra Damage Items
oilp1 = { name = "oilp1", label = "Tier 1 Oil Pump", weight = 0, type = "item", image = "oilp1.png", unique = true, useable = true, shouldClose = true, description = ""},
oilp2 = { name = "oilp2", label = "Tier 2 Oil Pump", weight = 0, type = "item", image = "oilp2.png", unique = true, useable = true, shouldClose = true, description = ""},
oilp3 = { name = "oilp3", label = "Tier 3 Oil Pump", weight = 0, type = "item", image = "oilp3.png", unique = true, useable = true, shouldClose = true, description = ""},
drives1 = { name = "drives1", label = "Tier 1 Drive Shaft", weight = 0, type = "item", image = "drives1.png", unique = true, useable = true, shouldClose = true, description = ""},
drives2 = { name = "drives2", label = "Tier 2 Drive Shaft", weight = 0, type = "item", image = "drives2.png", unique = true, useable = true, shouldClose = true, description = ""},
drives3 = { name = "drives3", label = "Tier 3 Drive Shaft", weight = 0, type = "item", image = "drives3.png", unique = true, useable = true, shouldClose = true, description = ""},
cylind1 = { name = "cylind1", label = "Tier 1 Cylinder Head", weight = 0, type = "item", image = "cylind1.png", unique = true, useable = true, shouldClose = true, description = ""},
cylind2 = { name = "cylind2", label = "Tier 2 Cylinder Head", weight = 0, type = "item", image = "cylind2.png", unique = true, useable = true, shouldClose = true, description = ""},
cylind3 = { name = "cylind3", label = "Tier 3 Cylinder Head", weight = 0, type = "item", image = "cylind3.png", unique = true, useable = true, shouldClose = true, description = ""},
cables1 = { name = "cables1", label = "Tier 1 Battery Cables", weight = 0, type = "item", image = "cables1.png", unique = true, useable = true, shouldClose = true, description = ""},
cables2 = { name = "cables2", label = "Tier 2 Battery Cables", weight = 0, type = "item", image = "cables2.png", unique = true, useable = true, shouldClose = true, description = ""},
cables3 = { name = "cables3", label = "Tier 3 Battery Cables", weight = 0, type = "item", image = "cables3.png", unique = true, useable = true, shouldClose = true, description = ""},
fueltank1 = { name = "fueltank1", label = "Tier 1 Fuel Tank", weight = 0, type = "item", image = "fueltank1.png", unique = true, useable = true, shouldClose = true, description = ""},
fueltank2 = { name = "fueltank2", label = "Tier 2 Fuel Tank", weight = 0, type = "item", image = "fueltank2.png", unique = true, useable = true, shouldClose = true, description = ""},
fueltank3 = { name = "fueltank3", label = "Tier 3 Fuel Tank", weight = 0, type = "item", image = "fueltank3.png", unique = true, useable = true, shouldClose = true, description = ""},
antilag = { name = "antilag", label = "AntiLag", weight = 0, type = "item", image = "antiLag.png", unique = true, useable = true, shouldClose = true, description = ""},
--Cosmetics
underglow_controller = { name = "underglow_controller", label = "Neon Controller", weight = 0, type = "item", image = "underglow_controller.png", unique = false, useable = true, shouldClose = true, description = "RGB LED Vehicle Remote"},
headlights = { name = "headlights", label = "Xenon Headlights", weight = 0, type = "item", image = "headlights.png", unique = true, useable = true, shouldClose = true, description = ""},
tint_supplies = { name = "tint_supplies", label = "Window Tint Kit", weight = 0, type = "item", image = "tint_supplies.png", unique = false, useable = true, shouldClose = true, description = "Supplies for window tinting"},
customplate = { name = "customplate", label = "Customized Plates", weight = 0, type = "item", image = "plate.png", unique = true, useable = true, shouldClose = true, description = ""},
hood = { name = "hood", label = "Vehicle Hood", weight = 0, type = "item", image = "hood.png", unique = true, useable = true, shouldClose = true, description = ""},
roof = { name = "roof", label = "Vehicle Roof", weight = 0, type = "item", image = "roof.png", unique = true, useable = true, shouldClose = true, description = ""},
spoiler = { name = "spoiler", label = "Vehicle Spoiler", weight = 0, type = "item", image = "spoiler.png", unique = true, useable = true, shouldClose = true, description = ""},
bumper = { name = "bumper", label = "Vehicle Bumper", weight = 0, type = "item", image = "bumper.png", unique = true, useable = true, shouldClose = true, description = ""},
skirts = { name = "skirts", label = "Vehicle Skirts", weight = 0, type = "item", image = "skirts.png", unique = true, useable = true, shouldClose = true, description = ""},
exhaust = { name = "exhaust", label = "Vehicle Exhaust", weight = 0, type = "item", image = "exhaust.png", unique = true, useable = true, shouldClose = true, description = ""},
seat = { name = "seat", label = "Seat Cosmetics", weight = 0, type = "item", image = "seat.png", unique = true, useable = true, shouldClose = true, description = ""},
rollcage = { name = "rollcage", label = "Roll Cage", weight = 0, type = "item", image = "rollcage.png", unique = true, useable = true, shouldClose = true, description = ""},
rims = { name = "rims", label = "Custom Wheel Rims", weight = 0, type = "item", image = "rims.png", unique = true, useable = true, shouldClose = true, description = ""},
livery = { name = "livery", label = "Livery Roll", weight = 0, type = "item", image = "livery.png", unique = true, useable = true, shouldClose = true, description = ""},
paintcan = { name = "paintcan", label = "Vehicle Spray Can", weight = 0, type = "item", image = "spraycan.png", unique = true, useable = true, shouldClose = true, description = ""},
tires = { name = "tires", label = "Drift Smoke Tires", weight = 0, type = "item", image = "tires.png", unique = true, useable = true, shouldClose = true, description = ""},
horn = { name = "horn", label = "Custom Vehicle Horn", weight = 0, type = "item", image = "horn.png", unique = true, useable = true, shouldClose = true, description = ""},
internals = { name = "internals", label = "Internal Cosmetics", weight = 0, type = "item", image = "internals.png", unique = true, useable = true, shouldClose = true, description = ""},
externals = { name = "externals", label = "Exterior Cosmetics", weight = 0, type = "item", image = "mirror.png", unique = true, useable = true, shouldClose = true, description = ""},
--Repair Parts
newoil = { name = "newoil", label = "Car Oil", weight = 0, type = "item", image = "caroil.png", unique = false, useable = false, shouldClose = false, description = ""},
sparkplugs = { name = "sparkplugs", label = "Spark Plugs", weight = 0, type = "item", image = "sparkplugs.png", unique = false, useable = false, shouldClose = false, description = ""},
carbattery = { name = "carbattery", label = "Car Battery", weight = 0, type = "item", image = "carbattery.png", unique = false, useable = false, shouldClose = false, description = ""},
axleparts = { name = "axleparts", label = "Axle Parts", weight = 0, type = "item", image = "axleparts.png", unique = false, useable = false, shouldClose = false, description = ""},
sparetire = { name = "sparetire", label = "Spare Tire", weight = 0, type = "item", image = "sparetire.png", unique = true, useable = false, shouldClose = false, description = ""},
manual = { name = 'manual', label = 'Manual Transmission', weight = 0, type = 'item', image = 'manual.png', unique = true, useable = true, shouldClose = true, combinable = nil, description = 'Manual Transmission change for vehicles' },
underglow = { name = 'underglow', label = 'Underglow LEDS', weight = 0, type = 'item', image = 'underglow.png', unique = true, useable = true, shouldClose = true, combinable = nil, description = 'Underglow addition for vehicles' },
stancerkit = { name = 'stancerkit', label = 'Stancer Kit', weight = 0, type = 'item', image = 'stancerkit.png', unique = true, useable = true, shouldClose = true, combinable = nil, description = 'Stancer Kit for vehicles' },
newplate = { name = 'newplate', label = 'New Plate', weight = 250, type = 'item', image = 'newplate.png', unique = true, useable = true, shouldClose = true, combinable = nil, description = 'A Customizable licence plate' },
--Already in QBCore
--harness = { name = 'harness', label = 'Race Harness', weight = 1000, type = 'item', image = 'harness.png', unique = true, useable = true, shouldClose = true, combinable = nil, description = 'Racing Harness so no matter what you stay in the car' },
--repairkit = { name = 'repairkit', label = 'Repairkit', weight = 2500, type = 'item', image = 'repairkit.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A nice toolbox with stuff to repair your vehicle' },
--advancedrepairkit = { name = 'advancedrepairkit', label = 'Advanced Repairkit', weight = 4000, type = 'item', image = 'advancedkit.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A nice toolbox with stuff to repair your vehicle' },
--cleaningkit = { name = 'cleaningkit', label = 'Cleaning Kit', weight = 250, type = 'item', image = 'cleaningkit.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A microfiber cloth with some soap will let your car sparkle again!' },
vehicleProperties
I recommend if you have both qb-core and ox-lib, to replace the vehicleProperties functions in both scripts.
If you update either of these scripts, you will need to apply these again (please stop making tickets and check)
For `qb-core` you need to go to the file: qb-core/client/functions.lua
Search for the function: QBCore.Functions.GetVehicleProperties(vehicle)
Delete the whole function.
Search for the function: QBCore.Functions.SetVehicleProperties(vehicle)
Delete the whole function.
You then need to paste these functions in their place:
function QBCore.Functions.GetVehicleProperties(vehicle)
local gameBuild = GetGameBuildNumber()
if DoesEntityExist(vehicle) then
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local xenonColor
local hasCustomXenon, xenonR, xenonG, xenonB = GetVehicleXenonLightsCustomColor(vehicle)
if hasCustomXenon == 1 or hasCustomXenon == true then
xenonColor = { xenonR, xenonG, xenonB }
else
xenonColor = GetVehicleHeadlightsColour(vehicle)
end
if GetIsVehiclePrimaryColourCustom(vehicle) then
colorPrimary = { GetVehicleCustomPrimaryColour(vehicle) }
end
if GetIsVehicleSecondaryColourCustom(vehicle) then
colorSecondary = { GetVehicleCustomSecondaryColour(vehicle) }
end
local extras = {}
for i = 1, 15 do
if DoesExtraExist(vehicle, i) then extras[i] = IsVehicleExtraTurnedOn(vehicle, i) and 0 or 1 end
end
local modLivery = GetVehicleLivery(vehicle)
if GetVehicleLiveryCount(vehicle) == -1 or modLivery == -1 then modLivery = GetVehicleMod(vehicle, 48) end
local tireHealth = {}
local tireBurstState = {}
local tireBurstCompletely = {}
for _, id in pairs({0, 1, 2, 3, 4, 5, 45, 47}) do
tireHealth[id] = GetVehicleWheelHealth(vehicle, id, false)
tireBurstState[id] = IsVehicleTyreBurst(vehicle, id, false)
tireBurstCompletely[id] = IsVehicleTyreBurst(vehicle, id, true)
end
local windowStatus = {}
for i = 0, 7 do windowStatus[i] = IsVehicleWindowIntact(vehicle, i) == 1 end
local doorStatus = {}
for i = 0, 5 do doorStatus[i] = IsVehicleDoorDamaged(vehicle, i) == 1 end
local neonEnabled = {}
for i = 0, 3 do
neonEnabled[i + 1] = IsVehicleNeonLightEnabled(vehicle, i)
end
return {
model = GetEntityModel(vehicle),
plate = GetVehicleNumberPlateText(vehicle),
plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
bodyHealth = math.floor(GetVehicleBodyHealth(vehicle) + 0.5),
engineHealth = math.floor(GetVehicleEngineHealth(vehicle) + 0.5),
tankHealth = math.floor(GetVehiclePetrolTankHealth(vehicle) + 0.5),
fuelLevel = math.floor(GetVehicleFuelLevel(vehicle) + 0.5),
oilLevel = math.floor(GetVehicleOilLevel(vehicle) + 0.5),
dirtLevel = math.floor(GetVehicleDirtLevel(vehicle) + 0.5),
color1 = colorPrimary,
color2 = colorSecondary,
pearlescentColor = pearlescentColor,
dashboardColor = GetVehicleDashboardColour(vehicle),
wheelColor = wheelColor,
wheels = GetVehicleWheelType(vehicle),
wheelSize = GetVehicleWheelSize(vehicle),
wheelWidth = GetVehicleWheelWidth(vehicle),
tireHealth = tireHealth,
tireBurstState = tireBurstState,
tireBurstCompletely = tireBurstCompletely,
windowTint = GetVehicleWindowTint(vehicle),
windowStatus = windowStatus,
doorStatus = doorStatus,
xenonColor = xenonColor,
neonEnabled = neonEnabled,
neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)),
interiorColor = GetVehicleInteriorColour(vehicle),
extras = extras,
tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)),
modSpoilers = GetVehicleMod(vehicle, 0),
modFrontBumper = GetVehicleMod(vehicle, 1),
modRearBumper = GetVehicleMod(vehicle, 2),
modSideSkirt = GetVehicleMod(vehicle, 3),
modExhaust = GetVehicleMod(vehicle, 4),
modFrame = GetVehicleMod(vehicle, 5),
modGrille = GetVehicleMod(vehicle, 6),
modHood = GetVehicleMod(vehicle, 7),
modFender = GetVehicleMod(vehicle, 8),
modRightFender = GetVehicleMod(vehicle, 9),
modRoof = GetVehicleMod(vehicle, 10),
modEngine = GetVehicleMod(vehicle, 11),
modBrakes = GetVehicleMod(vehicle, 12),
modTransmission = GetVehicleMod(vehicle, 13),
modHorns = GetVehicleMod(vehicle, 14),
modSuspension = GetVehicleMod(vehicle, 15),
modArmor = GetVehicleMod(vehicle, 16),
modKit17 = GetVehicleMod(vehicle, 17),
modTurbo = IsToggleModOn(vehicle, 18),
modKit19 = GetVehicleMod(vehicle, 19),
modSmokeEnabled = IsToggleModOn(vehicle, 20),
modKit21 = GetVehicleMod(vehicle, 21),
modXenon = IsToggleModOn(vehicle, 22),
modFrontWheels = GetVehicleMod(vehicle, 23),
modBackWheels = GetVehicleMod(vehicle, 24),
modCustomTiresF = GetVehicleModVariation(vehicle, 23),
modCustomTiresR = GetVehicleModVariation(vehicle, 24),
modPlateHolder = GetVehicleMod(vehicle, 25),
modVanityPlate = GetVehicleMod(vehicle, 26),
modTrimA = GetVehicleMod(vehicle, 27),
modOrnaments = GetVehicleMod(vehicle, 28),
modDashboard = GetVehicleMod(vehicle, 29),
modDial = GetVehicleMod(vehicle, 30),
modDoorSpeaker = GetVehicleMod(vehicle, 31),
modSeats = GetVehicleMod(vehicle, 32),
modSteeringWheel = GetVehicleMod(vehicle, 33),
modShifterLeavers = GetVehicleMod(vehicle, 34),
modAPlate = GetVehicleMod(vehicle, 35),
modSpeakers = GetVehicleMod(vehicle, 36),
modTrunk = GetVehicleMod(vehicle, 37),
modHydrolic = GetVehicleMod(vehicle, 38),
modEngineBlock = GetVehicleMod(vehicle, 39),
modAirFilter = GetVehicleMod(vehicle, 40),
modStruts = GetVehicleMod(vehicle, 41),
modArchCover = GetVehicleMod(vehicle, 42),
modAerials = GetVehicleMod(vehicle, 43),
modTrimB = GetVehicleMod(vehicle, 44),
modTank = GetVehicleMod(vehicle, 45),
modWindows = GetVehicleMod(vehicle, 46),
modKit47 = GetVehicleMod(vehicle, 47),
modLivery = modLivery,
modKit49 = GetVehicleMod(vehicle, 49),
liveryRoof = GetVehicleRoofLivery(vehicle),
modDrift = GetDriftTyresEnabled(vehicle),
modBProofTires = not GetVehicleTyresCanBurst(vehicle),
}
else
return
end
end
function QBCore.Functions.SetVehicleProperties(vehicle, props)
local gameBuild = GetGameBuildNumber()
if DoesEntityExist(vehicle) then
if props.extras then
for id, disable in pairs(props.extras) do
SetVehicleExtra(vehicle, tonumber(id), disable == 1)
end
end
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
SetVehicleModKit(vehicle, 0)
if props.plate then SetVehicleNumberPlateText(vehicle, props.plate) end
if props.plateIndex then SetVehicleNumberPlateTextIndex(vehicle, props.plateIndex) end
if props.bodyHealth then SetVehicleBodyHealth(vehicle, props.bodyHealth + 0.0) end
if props.engineHealth then SetVehicleEngineHealth(vehicle, props.engineHealth + 0.0) end
if props.fuelLevel then SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0) end
if props.dirtLevel then SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0) end
if props.color1 then
if type(props.color1) == 'number' then
ClearVehicleCustomPrimaryColour(vehicle)
SetVehicleColours(vehicle, props.color1 --[[@as number]], colorSecondary --[[@as number]])
else
if props.paintType1 then SetVehicleModColor_1(vehicle, props.paintType1, colorPrimary, pearlescentColor) end
SetVehicleCustomPrimaryColour(vehicle, props.color1[1], props.color1[2], props.color1[3])
end
end
if props.color2 then
if type(props.color2) == 'number' then
ClearVehicleCustomSecondaryColour(vehicle)
SetVehicleColours(vehicle, props.color1 or colorPrimary --[[@as number]], props.color2 --[[@as number]])
else
if props.paintType2 then SetVehicleModColor_2(vehicle, props.paintType2, colorSecondary) end
SetVehicleCustomSecondaryColour(vehicle, props.color2[1], props.color2[2], props.color2[3])
end
end
if props.neonEnabled then
for i = 1, #props.neonEnabled do
SetVehicleNeonLightEnabled(vehicle, i - 1, props.neonEnabled[i])
end
end
if props.windowStatus then
for windowIndex, smashWindow in pairs(props.windowStatus) do
if not smashWindow then RemoveVehicleWindow(vehicle, windowIndex) end
end
end
if props.doorStatus then
for doorIndex, breakDoor in pairs(props.doorStatus) do
if breakDoor then
SetVehicleDoorBroken(vehicle, tonumber(doorIndex), true)
end
end
end
if props.tireHealth then
for wheelIndex, health in pairs(props.tireHealth) do
SetVehicleWheelHealth(vehicle, wheelIndex, health)
end
end
if props.tireBurstState then
for wheelIndex, burstState in pairs(props.tireBurstState) do
if burstState then
SetVehicleTyreBurst(vehicle, tonumber(wheelIndex), false, 1000.0)
end
end
end
if props.tireBurstCompletely then
for wheelIndex, burstState in pairs(props.tireBurstCompletely) do
if burstState then
SetVehicleTyreBurst(vehicle, tonumber(wheelIndex), true, 1000.0)
end
end
end
if props.pearlescentColor then SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor) end
if props.interiorColor then SetVehicleInteriorColor(vehicle, props.interiorColor) end
if props.dashboardColor then SetVehicleDashboardColour(vehicle, props.dashboardColor) end
if props.wheelColor then SetVehicleExtraColours(vehicle, props.pearlescentColor or pearlescentColor, props.wheelColor) end
if props.wheels then SetVehicleWheelType(vehicle, props.wheels) end
if props.windowTint then SetVehicleWindowTint(vehicle, props.windowTint) end
if props.doorStatus then
for doorIndex, breakDoor in pairs(props.doorStatus) do
if breakDoor then
SetVehicleDoorBroken(vehicle, tonumber(doorIndex), true)
end
end
end
if props.neonColor then SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3]) end
if props.xenonColor then
if type(props.xenonColor) == "number" then
ClearVehicleXenonLightsCustomColor(vehicle)
SetVehicleXenonLightsColor(vehicle, props.xenonColor)
else
SetVehicleXenonLightsCustomColor(vehicle, props.xenonColor[1], props.xenonColor[2], props.xenonColor[3])
SetVehicleXenonLightsColor(vehicle, -1)
end
end
if props.interiorColor then SetVehicleInteriorColour(vehicle, props.interiorColor) end
if props.wheelSize then SetVehicleWheelSize(vehicle, props.wheelSize) end
if props.wheelWidth then SetVehicleWheelWidth(vehicle, props.wheelWidth) end
if props.tyreSmokeColor then SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3]) end
if props.modSpoilers then SetVehicleMod(vehicle, 0, props.modSpoilers, false) end
if props.modFrontBumper then SetVehicleMod(vehicle, 1, props.modFrontBumper, false) end
if props.modRearBumper then SetVehicleMod(vehicle, 2, props.modRearBumper, false) end
if props.modSideSkirt then SetVehicleMod(vehicle, 3, props.modSideSkirt, false) end
if props.modExhaust then SetVehicleMod(vehicle, 4, props.modExhaust, false) end
if props.modFrame then SetVehicleMod(vehicle, 5, props.modFrame, false) end
if props.modGrille then SetVehicleMod(vehicle, 6, props.modGrille, false) end
if props.modHood then SetVehicleMod(vehicle, 7, props.modHood, false) end
if props.modFender then SetVehicleMod(vehicle, 8, props.modFender, false) end
if props.modRightFender then SetVehicleMod(vehicle, 9, props.modRightFender, false) end
if props.modRoof then SetVehicleMod(vehicle, 10, props.modRoof, false) end
if props.modEngine then SetVehicleMod(vehicle, 11, props.modEngine, false) end
if props.modBrakes then SetVehicleMod(vehicle, 12, props.modBrakes, false) end
if props.modTransmission then SetVehicleMod(vehicle, 13, props.modTransmission, false) end
if props.modHorns then SetVehicleMod(vehicle, 14, props.modHorns, false) end
if props.modSuspension then SetVehicleMod(vehicle, 15, props.modSuspension, false) end
if props.modArmor then SetVehicleMod(vehicle, 16, props.modArmor, false) end
if props.modKit17 then SetVehicleMod(vehicle, 17, props.modKit17, false) end
if props.modTurbo then ToggleVehicleMod(vehicle, 18, props.modTurbo) end
if props.modKit19 then SetVehicleMod(vehicle, 19, props.modKit19, false) end
if props.modSmokeEnabled then ToggleVehicleMod(vehicle, 20, props.modSmokeEnabled) end
if props.modKit21 then SetVehicleMod(vehicle, 21, props.modKit21, false) end
if props.modXenon then ToggleVehicleMod(vehicle, 22, props.modXenon) end
if props.modFrontWheels then SetVehicleMod(vehicle, 23, props.modFrontWheels, false) end
if props.modBackWheels then SetVehicleMod(vehicle, 24, props.modBackWheels, false) end
if props.modCustomTiresF then SetVehicleMod(vehicle, 23, props.modFrontWheels, props.modCustomTiresF) end
if props.modCustomTiresR then SetVehicleMod(vehicle, 24, props.modBackWheels, props.modCustomTiresR) end
if props.modPlateHolder then SetVehicleMod(vehicle, 25, props.modPlateHolder, false) end
if props.modVanityPlate then SetVehicleMod(vehicle, 26, props.modVanityPlate, false) end
if props.modTrimA then SetVehicleMod(vehicle, 27, props.modTrimA, false) end
if props.modOrnaments then SetVehicleMod(vehicle, 28, props.modOrnaments, false) end
if props.modDashboard then SetVehicleMod(vehicle, 29, props.modDashboard, false) end
if props.modDial then SetVehicleMod(vehicle, 30, props.modDial, false) end
if props.modDoorSpeaker then SetVehicleMod(vehicle, 31, props.modDoorSpeaker, false) end
if props.modSeats then SetVehicleMod(vehicle, 32, props.modSeats, false) end
if props.modSteeringWheel then SetVehicleMod(vehicle, 33, props.modSteeringWheel, false) end
if props.modShifterLeavers then SetVehicleMod(vehicle, 34, props.modShifterLeavers, false) end
if props.modAPlate then SetVehicleMod(vehicle, 35, props.modAPlate, false) end
if props.modSpeakers then SetVehicleMod(vehicle, 36, props.modSpeakers, false) end
if props.modTrunk then SetVehicleMod(vehicle, 37, props.modTrunk, false) end
if props.modHydrolic then SetVehicleMod(vehicle, 38, props.modHydrolic, false) end
if props.modEngineBlock then SetVehicleMod(vehicle, 39, props.modEngineBlock, false) end
if props.modAirFilter then SetVehicleMod(vehicle, 40, props.modAirFilter, false) end
if props.modStruts then SetVehicleMod(vehicle, 41, props.modStruts, false) end
if props.modArchCover then SetVehicleMod(vehicle, 42, props.modArchCover, false) end
if props.modAerials then SetVehicleMod(vehicle, 43, props.modAerials, false) end
if props.modTrimB then SetVehicleMod(vehicle, 44, props.modTrimB, false) end
if props.modTank then SetVehicleMod(vehicle, 45, props.modTank, false) end
if props.modWindows then SetVehicleMod(vehicle, 46, props.modWindows, false) end
if props.modKit47 then SetVehicleMod(vehicle, 47, props.modKit47, false) end
if props.modLivery then SetVehicleMod(vehicle, 48, props.modLivery, false) SetVehicleLivery(vehicle, props.modLivery) end
if props.modKit49 then SetVehicleMod(vehicle, 49, props.modKit49, false) end
if props.liveryRoof then SetVehicleRoofLivery(vehicle, props.liveryRoof) end
if props.modDrift then SetDriftTyresEnabled(vehicle, true) end
if props.oilLevel then SetVehicleOilLevel(vehicle, props.oilLevel + 0.0) end
if props.tankHealth then SetVehiclePetrolTankHealth(vehicle, props.tankHealth + 0.0) end
SetVehicleTyresCanBurst(vehicle, not props.modBProofTires)
if NetworkGetEntityIsNetworked(vehicle) then
TriggerServerEvent('jim-mechanic:server:loadStatus', props, VehToNet(vehicle))
end
end
end
Last updated