Configuration
All configuration is done in config.lua. Below is a breakdown of each section.
Framework
lua
Framework = 'qb-core', -- 'qb-core' or 'esx'
FrameworkResource = 'qb-core', -- Resource name
NewFrameworkVersion = true, -- ESX only: false for < 1.8
SharedObject = 'es_extended:getSharedObject', -- ESX onlyTarget System
The script auto-detects your target system:
lua
UseQbTarget = GetResourceState('qb-target') == 'started',
UseOxTarget = GetResourceState('ox_target') == 'started',No manual configuration needed — it checks which target resource is running.
Mechanic Points System
Players earn skill points while working. Points gate what parts they can install.
lua
Points = {
Job = {
PointsPerMinute = 5, -- Points earned per minute (with job)
MaxPoints = 100 -- Maximum point cap
},
NoJob = {
PointsPerMinute = 1, -- Points earned per minute (no job)
MaxPoints = 10 -- Maximum point cap
}
},Skill Requirements Per Part
lua
PointsRequired = {
['engine'] = {
[0] = {label = 'Lower Engine', points = 20},
[1] = {label = 'Drill in Engine', points = 10,
repairLabel = 'Repair Engine', repairPoints = 5}
},
['transmission'] = {
[0] = {label = 'Install Transmission', points = 20,
repairLabel = 'Repair Transmission', repairPoints = 10}
},
-- tires, brakes, suspension, oil, sparkplugs, nitro, turbo...
}Job & Economy
lua
WhitelistedJobs = {'mechanic', 'bennys', 'lscustom'},
UseItemsForMechanicAccess = false, -- Use items instead of money
UseJobAccount = true, -- Deduct from job account
UseItemsForInstallation = false, -- Use items for part installation
ItemUseToRepairPart = 'metalscrap', -- Item used to repair partsBilling & Markup System
lua
EnableBillingSystem = true,
EnableMarkupSystem = true, -- Enable markup percentage
MarkupMechanicSplit = true, -- Split markup to mechanic
MarkupMechanicPercent = 50, -- % to mechanic (0-100)
MarkupAccountSplit = true, -- Split to job account
MarkupAccountPercent = 50, -- % to job account (0-100)
DefaultMarkupSelfPay = 30, -- Markup for non-mechanics self-servicingVehicle Wear & Tear
lua
WearRate = 200000, -- Higher = slower degradation
UseMiles = false, -- Use miles instead of km
EngineStallChance = 0.1, -- Stall chance with broken engine
ImpactWearMultiplier = 1.5, -- Multiplier for crash damageTIP
Set WearRate higher for a more casual experience, lower for hardcore realism.
UI & Controls
lua
UIColor = '#ff2663', -- Main UI accent color
ShiftUp = 'LEFTSHIFT', -- Manual transmission shift up
ShiftDown = 'LEFTCTRL', -- Manual transmission shift down
NitroKey = 'LEFTSHIFT', -- Nitro activation key
AllowCustomNumberPlates = false, -- Custom plate text
ItemsContainerMode = 'vertical', -- 'vertical' or 'horizontal'Quick Actions
Pre-configured service buttons available at access points:
lua
QuickButtons = {
['bodyfix'] = {label = 'Fix body', price = 1500},
['washcar'] = {label = 'Wash car', price = 30},
['fuelcar'] = {label = 'Fuel car', price = 50},
['patchengine'] = {label = 'Patch Engine', price = 500},
['scrapcar'] = {label = 'Scrap car'},
['buycosmetics'] = {label = 'Buy cosmetics'}
},Cosmetic Prices
lua
CosmeticPrice = {
['exhaust'] = 350,
['hood'] = 750,
['spoiler'] = 500,
['bumperfront'] = 800,
['bumperrear'] = 650,
['sideskirt'] = 400,
['primarycolors'] = 600,
['secondarycolors'] = 600,
['wheels'] = 850,
-- ... and more
},Workshop Lifts
Physical lift props for transmission installations:
lua
Lifts = {
{coords = vector3(-223.04, -1329.76, 30.89 - 1.02), heading = 269.66},
{coords = vector3(731.76, -1088.83, 22.17 - 1.02), heading = 88.44},
{coords = vector3(1175.05, 2640.41, 37.75 - 1.02), heading = 0.96},
},Vehicle Scrap System
Define scrap reward amounts by vehicle class:
lua
ScrapAmount = {
[0] = 100, -- Compacts
[1] = 150, -- Sedans
[2] = 200, -- SUVs
[3] = 250, -- Coupes
[4] = 300, -- Muscle
-- ... up to [21]
},INFO
Vehicle classes follow the GTA V vehicle class IDs.
