> For the complete documentation index, see [llms.txt](https://mscripts.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mscripts.gitbook.io/docs/qbcore/jobs/qb-tunerjob/config.md).

# Config

```lua
Config = {}


-- ░██████╗░███████╗███╗░░██╗███████╗██████╗░░█████╗░██╗░░░░░
-- ██╔════╝░██╔════╝████╗░██║██╔════╝██╔══██╗██╔══██╗██║░░░░░
-- ██║░░██╗░█████╗░░██╔██╗██║█████╗░░██████╔╝███████║██║░░░░░
-- ██║░░╚██╗██╔══╝░░██║╚████║██╔══╝░░██╔══██╗██╔══██║██║░░░░░
-- ╚██████╔╝███████╗██║░╚███║███████╗██║░░██║██║░░██║███████╗
-- ░╚═════╝░╚══════╝╚═╝░░╚══╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝╚══════╝
Config.CoreName = "qb-core" -- Your Core Name
Config.Prefix = "m-TunerJob" -- Pre-fix events
Config.QBMenu = "qb-menu" -- Your QB-Menu Name
Config.Target = "qb-target"  -- Your QB-Target Name
Config.Input = "qb-input" -- Your qb-input Name
Config.VehicleKeysTrigger = "vehiclekeys:client:SetOwner" -- Trigger to give keys
Config.FuelSystem = "LegacyFuel" -- Your Fuel System | "ps-fuel" | "ti_fuel"
Config.Job = "mechanic" -- Name of job         
Config.Unemployed = "unemployed" -- Name of unemployed job                        
Config.EnableDebug = false -- If true, some prints goes to console.
Config.Skillbar = "none" -- "ps-ui" or "qb-lock" or "none"
Config.Billing = "okok" -- "qb", "jim", "okok"
Config.CustomSounds = true -- Use custom sounds?
Config.Volume = 0.5 -- Volume of custom sounds
Config.Menus = "qb" -- "qb" or "ox"
Config.Inventory = "qb" -- "qb" or "ox"

Config.Stash = { Name = "mechanicstash", Weight = 50000, Slots = 50 } -- Stash Settings

Config.Blip = { blipLocation = vector3(125.38, -3034.99, 7.04), blipSprite = 446, blipScale = 0.7, blipColour = 0, blipAplha = 0.7, blipName = "Tunners" } -- Blip Settings

Config.PSui = { NumberOfCircles = 2, MS = 20 } -- PS-UI Minigame Settings

Config.QBLock = { circles = math.random(2,4), time = math.random(7,10) } -- QB-Lock Minigame Settings

Config.Times = { -- Times of all progressBars
    InstallCoilovers = 5000,
    InstallWraps = 5000,
    InstallPlates = 5000,
    InstallTurbo = 5000,
    InstallWindows = 5000,
    InstallXenon = 5000,
    InstallDriftTires = 5000,
    RemoveDriftTires = 5000,
}


-- ░█████╗░██╗░░██╗░█████╗░██████╗░░█████╗░██╗░░██╗░█████╗░██████╗░
-- ██╔══██╗██║░░██║██╔══██╗██╔══██╗██╔══██╗██║░░██║██╔══██╗██╔══██╗
-- ██║░░╚═╝███████║██║░░██║██████╔╝██║░░╚═╝███████║██║░░██║██████╔╝
-- ██║░░██╗██╔══██║██║░░██║██╔═══╝░██║░░██╗██╔══██║██║░░██║██╔═══╝░
-- ╚█████╔╝██║░░██║╚█████╔╝██║░░░░░╚█████╔╝██║░░██║╚█████╔╝██║░░░░░
-- ░╚════╝░╚═╝░░╚═╝░╚════╝░╚═╝░░░░░░╚════╝░╚═╝░░╚═╝░╚════╝░╚═╝░░░░░
Config.ChopChop = {
    Enable = true, -- Enable or disable the chopchop
    OnlySpecVeh = false, -- Enable only specific vehicles?
    SpecificVehicles = { -- List of Specific Vehicles for chop chop
        "t20"
    },
    Cooldown = 15, -- Cooldown to chopchop again
    Locations = {
        vector3(144.06, -2998.79, 7.03),
    },
    Rewards = {
        Qty = {
            min = 2, -- Min quantity of the item
            max = 4, -- Max quantity of the item
        },
        Items = { -- List of possible items
            'plastic',
            'metalscrap',
            'copper',
            'aluminum',
            'iron',
            'steel',
            'rubber',
            'glass',
            'electronics',
        }
    },
}

-- ██╗░░░██╗███████╗██╗░░██╗██╗░█████╗░██╗░░░░░███████╗░██████╗
-- ██║░░░██║██╔════╝██║░░██║██║██╔══██╗██║░░░░░██╔════╝██╔════╝
-- ╚██╗░██╔╝█████╗░░███████║██║██║░░╚═╝██║░░░░░█████╗░░╚█████╗░
-- ░╚████╔╝░██╔══╝░░██╔══██║██║██║░░██╗██║░░░░░██╔══╝░░░╚═══██╗
-- ░░╚██╔╝░░███████╗██║░░██║██║╚█████╔╝███████╗███████╗██████╔╝
-- ░░░╚═╝░░░╚══════╝╚═╝░░╚═╝╚═╝░╚════╝░╚══════╝╚══════╝╚═════╝░
Config.PlateText = "TUNNERS" -- Plate of vehicles spawn on npc
Config.Vehicles = { -- List of car available to mechanic's spawn
    ["flatbed3"]    = "Flatbed",                  
    ["towtruck"]    = "Towtruck",                 
    ["minivan"]     = "Minivan (Rental Car)",     
    ["blista"]      = "Blista",                   
}

Config.CarItems = {  -- Items that will automatically be in the glovebox compartment of mechanics vehicles
    [1] = { name = "repairkit", amount = 2, info = {}, type = "item", slot = 1 },
    [2] = { name = "advancedrepairkit", amount = 2, info = {}, type = "item", slot = 2 },
    [3] = { name = "diagnosismachine", amount = 2, info = {}, type = "item", slot = 3 },
    [4] = { name = "cleaningkit", amount = 2, info = {}, type = "item", slot = 4 },
}


-- ░██████╗██╗░░██╗░█████╗░██████╗░
-- ██╔════╝██║░░██║██╔══██╗██╔══██╗
-- ╚█████╗░███████║██║░░██║██████╔╝
-- ░╚═══██╗██╔══██║██║░░██║██╔═══╝░
-- ██████╔╝██║░░██║╚█████╔╝██║░░░░░
-- ╚═════╝░╚═╝░░╚═╝░╚════╝░╚═╝░░░░░
Config.Shop = {
    [1] = { name = "hid_controller",        price = 125, amount = 1, info = {}, type = "item", slot = 1 },
    [2] = { name = "underglow_controller",  price = 125, amount = 1, info = {}, type = "item", slot = 2 },
    [3] = { name = "tint_supplies",         price = 125, amount = 1, info = {}, type = "item", slot = 3 },
    [4] = { name = "blackwrap",             price = 125, amount = 1, info = {}, type = "item", slot = 4 },
    [5] = { name = "graywrap",              price = 125, amount = 1, info = {}, type = "item", slot = 5 },
    [6] = { name = "redwrap",               price = 125, amount = 1, info = {}, type = "item", slot = 6 },
    [7] = { name = "orangewrap",            price = 125, amount = 1, info = {}, type = "item", slot = 7 },
    [8] = { name = "goldenwrap",            price = 125, amount = 1, info = {}, type = "item", slot = 8 },
    [9] = { name = "yellowwrap",            price = 125, amount = 1, info = {}, type = "item", slot = 9 },
    [10] = { name = "greenwrap",            price = 125, amount = 1, info = {}, type = "item", slot = 10 },
    [11] = { name = "bluewrap",             price = 125, amount = 1, info = {}, type = "item", slot = 11 },
    [12] = { name = "bronzewrap",           price = 125, amount = 1, info = {}, type = "item", slot = 12 },
    [13] = { name = "brownwrap",            price = 125, amount = 1, info = {}, type = "item", slot = 13 },
    [14] = { name = "whitewrap",            price = 125, amount = 1, info = {}, type = "item", slot = 14 },
    [15] = { name = "pinkwrap",             price = 125, amount = 1, info = {}, type = "item", slot = 15 },
    [16] = { name = "pink2wrap",            price = 125, amount = 1, info = {}, type = "item", slot = 16 },
    [17] = { name = "purplewrap",           price = 125, amount = 1, info = {}, type = "item", slot = 17 },
    [18] = { name = "yellowblackplate",     price = 125, amount = 1, info = {}, type = "item", slot = 18 },
    [19] = { name = "bluewhite2plate",      price = 125, amount = 1, info = {}, type = "item", slot = 19 },
    [20] = { name = "yellowblueplate",      price = 125, amount = 1, info = {}, type = "item", slot = 20 },
    [21] = { name = "bluewhiteplate",       price = 125, amount = 1, info = {}, type = "item", slot = 21 },
    [22] = { name = "bluewhite3plate",      price = 125, amount = 1, info = {}, type = "item", slot = 22 },
    [23] = { name = "diagnosismachine",     price = 125, amount = 1, info = {}, type = "item", slot = 23 },
    [24] = { name = "advancedrepairkit",    price = 125, amount = 1, info = {}, type = "item", slot = 24 },
    [25] = { name = "cleaningkit",          price = 125, amount = 1, info = {}, type = "item", slot = 25 },
    [26] = { name = "diagnosismachine",     price = 125, amount = 1, info = {}, type = "item", slot = 26 },
    [27] = { name = "mechaniccamera",       price = 125, amount = 1, info = {}, type = "item", slot = 27 },
    [28] = { name = "airsuspension",        price = 125, amount = 1, info = {}, type = "item", slot = 28 },
    [29] = { name = "coilovers",            price = 125, amount = 1, info = {}, type = "item", slot = 29 },
    [30] = { name = "mec_registration",     price = 125, amount = 1, info = {}, type = "item", slot = 30 },
}


-- ░█████╗░░█████╗░███╗░░░███╗███████╗██████╗░░█████╗░░██████╗
-- ██╔══██╗██╔══██╗████╗░████║██╔════╝██╔══██╗██╔══██╗██╔════╝
-- ██║░░╚═╝███████║██╔████╔██║█████╗░░██████╔╝███████║╚█████╗░
-- ██║░░██╗██╔══██║██║╚██╔╝██║██╔══╝░░██╔══██╗██╔══██║░╚═══██╗
-- ╚█████╔╝██║░░██║██║░╚═╝░██║███████╗██║░░██║██║░░██║██████╔╝
-- ░╚════╝░╚═╝░░╚═╝╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░
Config.SecurityCamera = {
    hideradar = false,
    cameras = {
        [1] = {label = "CAM#1", coords = vector3(156.28, -3006.42, 13.15),  r = {x = -25.0, y = 0.0, z = 235.85},    canRotate = true, isOnline = true},
        [2] = {label = "CAM#2", coords = vector3(156.07, -3059.22, 13.57),  r = {x = -25.0, y = 0.0, z = 159.23},    canRotate = true, isOnline = true},
        [3] = {label = "CAM#3", coords = vector3(153.90, -3051.26, 12.49),  r = {x = -35.0, y = 0.0, z = 68.09},     canRotate = true, isOnline = true},
        [4] = {label = "CAM#4", coords = vector3(123.2, -3017.04, 10.02),   r = {x = -35.0, y = 0.0, z = -168.91},   canRotate = true, isOnline = true},
    },
}


-- ░█████╗░░█████╗░███╗░░░███╗███╗░░░███╗░█████╗░███╗░░██╗██████╗░░██████╗
-- ██╔══██╗██╔══██╗████╗░████║████╗░████║██╔══██╗████╗░██║██╔══██╗██╔════╝
-- ██║░░╚═╝██║░░██║██╔████╔██║██╔████╔██║███████║██╔██╗██║██║░░██║╚█████╗░
-- ██║░░██╗██║░░██║██║╚██╔╝██║██║╚██╔╝██║██╔══██║██║╚████║██║░░██║░╚═══██╗
-- ╚█████╔╝╚█████╔╝██║░╚═╝░██║██║░╚═╝░██║██║░░██║██║░╚███║██████╔╝██████╔╝
-- ░╚════╝░░╚════╝░╚═╝░░░░░╚═╝╚═╝░░░░░╚═╝╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░╚═════╝░
-- You have more commands on file server/s_editable.lua
Config.CleanVehicle = "cleanvehicle" -- Clean closest vehicle   
Config.PrivateChat = "jobc" -- The command for private chat for mechanics


-- ██████╗░███████╗██████╗░░██████╗
-- ██╔══██╗██╔════╝██╔══██╗██╔════╝
-- ██████╔╝█████╗░░██║░░██║╚█████╗░
-- ██╔═══╝░██╔══╝░░██║░░██║░╚═══██╗
-- █║░░░░░███████╗██████╔╝██████╔╝
-- ╚═╝░░░░░╚══════╝╚═════╝░╚═════╝░
Config.PedListMechanic = { -- Peds that will be spawned in
    {
        model = "s_m_y_xmech_02",                                                         
        coords = vector3(125.31, -3026.32, 6.04),           
        heading = 358.52,
        gender = "male",
        scenario = "WORLD_HUMAN_STAND_MOBILE_UPRIGHT" 
    },
}


-- ███╗░░██╗██╗████████╗██████╗░░█████╗░
-- ████╗░██║██║╚══██╔══╝██╔══██╗██╔══██╗
-- ██╔██╗██║██║░░░██║░░░██████╔╝██║░░██║
-- ██║╚████║██║░░░██║░░░██╔══██╗██║░░██║
-- ██║░╚███║██║░░░██║░░░██║░░██║╚█████╔╝
-- ╚═╝░░╚══╝╚═╝░░░╚═╝░░░╚═╝░░╚═╝░╚════╝░
Config.HudNitroTrigger = "hud:client:UpdateNitrous" -- Hud to update nitrous
Config.ProgressBarTime = 3000 -- Time for installing nitrous (1000 = 1sec)
Config.NitroBoost = 5.0 -- How much power give nitro
Config.AccelerationBoost = 3.0 -- How much power give nitro
Config.SwitchKey = 21 -- Switch Between Nitro Mode and Smoke Extraction Mode(Purge) // Original is LEFT SHIFT
Config.NitroPurgeKey = 36 -- Key for using Nitro or Purge (Depends of Mode) // Original is LEFT CTRL
Config.FlowRateUpKey = 27 -- Incrase FlowRate // Original is ARROW UP
Config.FlowRateDownKey = 173 -- Decrease FlowRate // Original is ARRW DOWN
Config.MaxSpeed = 25 -- If you driving under this speed u can install Nitro and u can use Purge System
Config.PurgeFlowRate = 0.5 -- Thats the size of Purge Flow Rate when u restart the server or script (from 0.1 to 1.0)
Config.NitroUseRate = 0.3 -- How fast the nitrous drains
Config.PurgeUseRate = 0.2 -- How fast the purge drains
Config.PlaySoundOnSwitch = true -- if you want to have sound on switch leave it true
Config.PlaySoundOnFlowRate = true -- if you want to have sound on switch on flowrates leave it true
Config.SoundVolumeFlowRate = 0.05 -- Sound Volume for Purge Switch Flow Rate Sound File
Config.SoundVolumeSwitch = 0.05 -- Sound Volume for Switch Sound File
Config.UseMPH = true -- If true speed math will be done as MPH, if false KPH will be used
Config.OnlyAcceleration = false -- If its true then will affect only for acceleration if its false will affect on Top Speed and Acceleration
Config.UpdateLevelWait = 10000 -- This is only for test (after this time will update nitrous level in database)
Config.PressedWait = 5000 -- Waiting interval for Button Pressed (1000 is 1sec)
Config.TopSpeed = 200 -- This will be top speed when using nitro
Config.Cooldown = 3000 -- CoolDown for using Nitro (1000 = 1sec)



--░█████╗░░█████╗░██████╗░    ███╗░░░███╗███████╗███████╗████████╗██╗███╗░░██╗░██████╗░
-- ██╔══██╗██╔══██╗██╔══██╗    ████╗░████║██╔════╝██╔════╝╚══██╔══╝██║████╗░██║██╔════╝░
-- ██║░░╚═╝███████║██████╔╝    ██╔████╔██║█████╗░░█████╗░░░░░██║░░░██║██╔██╗██║██║░░██╗░
-- ██║░░██╗██╔══██║██╔══██╗    ██║╚██╔╝██║██╔══╝░░██╔══╝░░░░░██║░░░██║██║╚████║██║░░╚██╗
-- ╚█████╔╝██║░░██║██║░░██║    ██║░╚═╝░██║███████╗███████╗░░░██║░░░██║██║░╚███║╚██████╔╝
-- ░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝    ╚═╝░░░░░╚═╝╚══════╝╚══════╝░░░╚═╝░░░╚═╝╚═╝░░╚══╝░╚═════╝░
Config.EnableCarMeet = true -- Enable car-meeting?
Config.PoliceJob = "police" -- This is the job will dont receive the emails
Config.Phone = "qb-phone" -- "qs-smartphone" / "qb-phone" / "gksphone" / roadphone


-- ░█████╗░░█████╗░██████╗░    ░██╗░░░░░░░██╗░█████╗░░██████╗██╗░░██╗
-- ██╔══██╗██╔══██╗██╔══██╗    ░██║░░██╗░░██║██╔══██╗██╔════╝██║░░██║
-- ██║░░╚═╝███████║██████╔╝    ░╚██╗████╗██╔╝███████║╚█████╗░███████║
-- ██║░░██╗██╔══██║██╔══██╗    ░░████╔═████║░██╔══██║░╚═══██╗██╔══██║
-- ╚█████╔╝██║░░██║██║░░██║    ░░╚██╔╝░╚██╔╝░██║░░██║██████╔╝██║░░██║
-- ░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝    ░░░╚═╝░░░╚═╝░░╚═╝░░╚═╝╚═════╝░╚═╝░░╚═╝
Config.CarWash = {
    Price = 20, -- If you dont need a price, set this to 0
    DirtLevel = 0.1, -- Threshold for the dirt level to be counted as dirt
    Location = { -- carwash
        [1] = {
            ["poly"] = {
                coords = vector3(124.65, -3047.23, 7.04),
                length = 7.0,
                width = 8.8,
                heading = 359
            }
        },
    },
}

```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mscripts.gitbook.io/docs/qbcore/jobs/qb-tunerjob/config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
