Skip to content

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 only

Target 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 parts

Billing & 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-servicing

Vehicle 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 damage

TIP

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.