> For the complete documentation index, see [llms.txt](https://docs.t1ger.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.t1ger.net/resources/t1ger-tuning/configuration/config.md).

# Config

t1ger\_tuning/shared/config.lua

```lua
Config = {}

Config.Debug = true

Config.Currency = "$" -- currency used for pricing

Config.ServerSideProps = true -- create objects/props on server or client?

Config.UseCharacterNames = true -- if true, shows character (first+last) names instead of game/Rockstar names in player lists.

Config.ModCategories = { -- All mods from Config.ModTypes are sorted in these categories. You are only allowed to change title, position and icon (also supports fontawesome icons). Changing anything else will break the script functionality.
    ["styling"]     = { title = "Styling",     position = "top-left", icon = "https://i.postimg.cc/YG4Jj5mR/mod-bodywork.png" },
    ["performance"] = { title = "Performance", position = "top-left", icon = "https://i.postimg.cc/G8Z6DXk7/mod-engine.png" },
    ["wheels"]      = { title = "Wheels",      position = "top-left", icon = "https://i.postimg.cc/yWZMKzK6/mod-wheels.png" },
    ["respray"]     = { title = "Respray",     position = "top-left", icon = "https://i.postimg.cc/4HVqQpPK/mod-respray.png" },
    ["lights"]      = { title = "Lights",      position = "top-left", icon = "https://i.postimg.cc/dkzgC52w/mod-headlights.png" },
    ["extras"]      = { title = "Extras",      position = "top-left", icon = "https://i.postimg.cc/62DFZMrs/mod-extras.png" },
}

Config.ModTypes = require("shared/modtypes") -- all mod types, prices etc. defined inside shared/modtypes.lya
Config.Paints = require("shared/paints")

--Not all servers prefer the players being able to install special mods, such as weapons, proximity mines and so on. The resource have disabled some of the most common mods that are seen in-game. You can alter this array by finding the config option inside the mods.lua file.
Config.DisableMods = { -- Add specific mods in here you want to disable. If you find more in-game, you can add them in here. By default, weapon mods are disabled
    'Primary Weapons', 'Proximity Mine', 'Armor Plating', 'Ram Weapons', 'Imani Tech', 'Blades', 'Spikes', 'Secondary Weapons'
}

Config.ModSlotNames = {
    CMOD_ROOF_ACC = "Roof Accessories",
    -- Add more slot name overrides here if needed
}

Config.ModsMenu = {
	Menu = {title = 'Mods Menu', position = 'top-left'}, -- mods main menu title and position

	UseGameModLabels = true, -- true = GTA native labels (language dependent), false = Config.ModTypes labels

	Repair = {
		allow = true, -- allow quick repair for $Repair.price (below) in mod menu marker. Set to false to force customers to go to a mechanic first.
		price = 1000, -- 1000$ to repair vehicle, before installing mods.
	},

	IncentivizedPricing = {
		enable = true, -- set to true to enable incentivized pricing. Only applies if purchasing and applying mods directly through the mods menu. This incentivized price is ignored if a mod order is created.
		percent = 25 -- percentage to increase the price of mods in the mod menu, to kinda force players to RP with tuners.
	},

	DisableCheckout = false -- set to true to disable direct checkout, forcing players to place mod orders with tuners instead
}

Config.ModStations = {
    enable   = true,
    distance = 2.0,
    keybind = 38, -- Default keybind: [E]

    -- Global blip settings for all stations
    blip = {
        sprite = 72, color = 0, scale = 0.65, display = 4, label = "Mod Station",
    },

    -- Global marker settings for all stations
    marker = {
        enable = true, type = 20, size = vector3(0.35, 0.35, 0.35), color = { r = 100, g = 200, b = 255, a = 100 }, bobUpAndDown = true,
    },

    -- Global text UI settings for all stations
    textUi = {
        label = "[E] Open Mod Station", position = "right-center", icon = "spray-can", style = {borderRadius = 0, backgroundColor = 'FF488DBB', color = 'white'},
    },

    locations = require("shared/modstations"),
}

--- Workflow UI
Config.WorkflowUI = {
    Commands = {
        open   = "tuning:workflow:open",
        close  = "tuning:workflow:close",
        cursor = "tuning:workflow:cursor",
        clear  = "tuning:workflow:clear"
    },
    CursorKeybind = {
        description = "Toggle Tuning Workflow Cursor",
        defaultKey  = "J"
    },
    DefaultTitle = "Mod Order",
    ShowItemName    = true,  -- show item name in brackets e.g. (mod_engine)
    ShowModLabel    = true,  -- show mod type label prefix e.g. "Engine — "
}

Config.ModOrder = {
    InstallDuration = 5000,
    ConsumeOnUse    = true,
    OpenHoodForEngineBay = true,
    NotifyCustomer  = true,

    CancelInstall = {
        button = 252,
        label  = "[X] Cancel Install",
    },

    SkillCheck = {
        enable     = true,
        difficulty = { "easy", "easy", "easy" },
        inputs     = { "w", "a", "s", "d" },
    },

    Target = {
        label = "Install Mod",
        icon  = "fa-solid fa-wrench",
        distance  = 2.0,
    },

    InstallZones = {
        front = {
            bones    = { "bumper_f", "bonnet", "headlight_l", "headlight_r", "wing_lf", "wing_rf", "indicator_lf", "indicator_rf" },
            fallback = vec3(0.0, 2.5, 0.5),
            openHood = false, openDoor = false,
        },
        rear = {
            bones    = { "bumper_r", "boot", "spoiler", "taillight_l", "taillight_r", "indicator_lr", "indicator_rr" },
            fallback = vec3(0.0, -2.5, 0.5),
            openHood = false, openDoor = false,
        },
        wheel = {
            bones    = { "wheel_lf", "wheel_rf", "wheel_lr", "wheel_rr", "wheel_lm1", "wheel_rm1", "suspension_lf", "suspension_rf", "hub_lf", "hub_rf" },
            fallback = vec3(-1.2, 0.0, 0.3),
            openHood = false, openDoor = false,
        },
        engine = {
            bones    = { "engine", "bonnet", "engineblock", "petroltank", "transmission_f", "transmission_m" },
            fallback = vec3(0.0, 1.0, 0.5),
            openHood = true, openDoor = false,
        },
        interior = {
            bones    = { "seat_dside_f", "seat_pside_f", "seat_dside_r", "seat_pside_r", "door_dside_f", "door_pside_f", "steering", "dials", "interiorlight", "dashglow" },
            fallback = vec3(0.0, 0.0, 0.3),
            openHood = false, openDoor = true,
        },
        vehicle = {
            bones    = { "chassis", "bodyshell", "roof", "roof2", "exhaust", "exhaust_2", "numberplate", "petrolcap", "struts" },
            fallback = vec3(0.0, 0.0, 0.0),
            openHood = false, openDoor = false,
        },
    },

    -- Approximate RGB values for predefined paint colors used in spray particles.
    -- String matched against the color label — add more as needed.
    SprayColors = {
        white   = { 255, 255, 255 },
        red     = { 246, 75,  60  },
        pink    = { 253, 226, 226 },
        blue    = { 0,   168, 204 },
        yellow  = { 245, 252, 193 },
        green   = { 99,  154, 103 },
        orange  = { 255, 164, 27  },
        brown   = { 156, 85,  24  },
        purple  = { 190, 121, 223 },
        grey    = { 50,  50,  50  },
        gray    = { 50,  50,  50  },
        black   = { 0,   0,   0   },
        gold    = { 255, 215, 0   },
        silver  = { 192, 192, 192 },
        bronze  = { 205, 127, 50  },
    },
}

Config.TunerTablet = {
    -- Enable/disable individual tablet sections
    Enable = {
        VehicleInfo         = true,
        ExaminePerformance  = true,
        Dyno                = true,
        Billing             = true,
        NpcJobs             = true,
        ModOrders           = true,
        Nitrous             = true,
    },

    -- Icons used throughout the tablet menu (FontAwesome classes)
    Icons = {
        VehicleInfo        = "circle-info",
        ExaminePerformance = "magnifying-glass",
        Dyno               = "chart-line",
        Billing            = "file-invoice-dollar",
        NpcJobs            = "comment-dots",
        ModOrders          = "cart-shopping",
        Refund             = "rotate-left",
        Abandon            = "trash",
        Locked             = "lock",
        Nitrous            = "fire-flame-simple",
    },
}

Config.RepairKit = {
    Enable          = true,
    RequireTunerJob = true,
    Duration        = 3000,
}

Config.EngineSwaps = {

    Enable = true, -- enable/disable the engine swap feature entirely

    Engines = require("shared/engine_swap"), -- configure engines for each class in shared/engine_swap.lua

    -- Command used to cancel an active engine swap task (refunds the shop)
    CancelCommand = "cancelengineswap",

    -- Default icon shown for engines with no custom icon set
    DefaultIcon = "gear",

    -- Keybind used to place/detach the hoist while carrying
    HoistKeybind = 47, -- G

    -- Play the hook engage sound when lifting/lowering an engine
    HoistPlaySound = true,

    -- Text UI shown while carrying the hoist
    HoistTextUi = {
        string   = "[G] - Detach Hoist",
        icon     = "location-crosshairs",
        position = "right-center",
    },

    -- Icons/labels only — internal target names are fixed in code
    VehicleTarget = {
        access   = { icon = "fa-solid fa-screwdriver", label = "Access Engine Bay" },
        complete = { icon = "fa-solid fa-screwdriver", label = "Complete Engine Swap" },
    },

    ExtractTarget = {
        icon  = "fa-solid fa-trash-can",
        label = "Dump Engine",
    },

    HoistTarget = {
        carry   = { icon = "fa-solid fa-up-down-left-right", label = "Carry Hoist" },
        extract = { icon = "fa-solid fa-arrow-up-long",      label = "Extract Engine" },
        attach  = { icon = "fa-solid fa-link",               label = "Attach Engine" },
        detach  = { icon = "fa-solid fa-link-slash",         label = "Detach Engine" },
        remove  = { icon = "fa-solid fa-hand",                label = "Collect Hoist" },
    },

    -- Marker colors only — type/scale are fixed in code
    VehiclePointColor = {
        default = vector4(194, 80, 80, 200),  -- red — target marker
        success = vector4(63, 195, 128, 200), -- green — aligned
        hoist   = vector4(20, 20, 20, 200),   -- black — hoist hook marker
    },

    EnginePointColor = {
        default = vector4(194, 80, 80, 200),  -- red — target marker
        success = vector4(63, 195, 128, 200), -- green — aligned
        hoist   = vector4(20, 20, 20, 200),   -- black — hoist hook marker
    },
}

Config.Nitrous = require("shared/nitrous")
Config.Dyno = require("shared/dyno")
Config.NpcJobs = require("shared/npc_jobs")

Config.CustomTires = {
    Enable            = true, -- master enable/disable for the whole feature
    RequireCarJack    = true, -- if t1ger_mechanic is detected, require the vehicle to be raised on a car jack
    RequireTunerJob   = false, -- if true, only employed tuners can use these items
    DriftTires        = true, -- enable/disable the drift tires item specifically
    BulletproofTires  = true, -- enable/disable the bulletproof tires item specifically
}

T1GER_Mechanic = false
CreateThread(function()
	Wait(3000)
	if GetResourceState("t1ger_mechanic") == "started" then
		T1GER_Mechanic = true
		print("DETECTED: T1GER Mechanic")
	end
end)
```
