Installation

Dependency Installation

Jim_Bridge

This is required for the script to function, it won't work without it

1

Download

Get it free from github - https://github.com/jimathy/jim_bridge

2

Extract

Extract jim_bridge and make sure -main is removed from the script folder name

3

Install

Place the extracted jim_bridge folder into /resources/[standalone]

4

Done


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

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

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

Item Images

  • There are two image folders:

    • images contains standard coloured items

    • images_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.

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