> For the complete documentation index, see [llms.txt](https://docs.kuzquality.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kuzquality.com/resources/premium-resources/stunt-zones-creator/config.md).

# Config

```lua
Config = {}

-- This enabled additional debug commands and logs
Config.debug = false

-- Display units:
-- - false = imperial (mph / ft),
-- - true = metric (km/h / m).
-- Affects all HUDs, results, leaderboards, blips and the zone editor
-- Internal config thresholds below are always km/h regardless of this setting
Config.useMetric = false

-- Set false to disable all stunt zone sound effects
Config.sounds = true

-- Vehicles that may never trigger or score a zone (planes, jets, helis, boats, etc.)
Config.vehicleBlacklist = {
    -- Vehicle class IDs reference:
    -- 0 Compacts | 1 Sedans | 2 SUVs | 3 Coupes | 4 Muscle | 5 Sports Classics | 6 Sports
    -- 7 Super | 8 Motorcycles | 9 Off-road | 10 Industrial | 11 Utility | 12 Vans | 13 Cycles
    -- 14 Boats | 15 Helicopters | 16 Planes | 17 Service | 18 Emergency | 19 Military
    -- 20 Commercial | 21 Trains | 22 Open Wheel
    classes = {
        14, -- Boats
        15, -- Helicopters
        18, -- Emergency
        16, -- Planes
        21, -- Trains
    },

    -- Specific models to blacklist
    models = {
        'oppressor',
        'oppressor2',
    },
}

Config.props = {
    -- Distance at which the flags should be rendered at
    drawDistance = 250.0,

    -- Model of the speed camera prop
    speedCamera = 'kq_stuntzone_flag_cam',

    -- Flag models
    gateFlags = {
        -- Checkpoint flag
        default = 'kq_stuntzone_flag',

        -- Drift zone Start/Finish prop model
        drift = 'kq_stuntzone_flag_drift',

        -- Speed zone Start/Finish prop model
        speedzone = 'kq_stuntzone_flag_speed',

        -- Time trial Start/Finish prop model
        timetrial = 'kq_stuntzone_flag_time',
    },
}

Config.blips = {
    -- Pause-map info card banner. Set enabled = false to hide the banner image
    infoImage = {
        enabled = true,
        dict = 'kq_stuntzone_blip_images',
        textures = {
            camera = 'kq_camzone',
            drift = 'kq_driftzone',
            driftstreak = 'kq_freestylezone',
            speedzone = 'kq_speedzone',
            timetrial = 'kq_timezone',
        },
    },

    -- Map blips
    camera = {
        enabled = true,
        sprite = 127,
        color = 30,
        scale = 0.7
    },
    drift = {
        enabled = true,
        sprite = 127,
        color = 5,
        scale = 0.7
    },
    driftfreestyle = {
        enabled = true,
        sprite = 127,
        color = 17,
        scale = 0.7
    },
    speedzone = {
        enabled = true,
        sprite = 127,
        color = 24,
        scale = 0.7
    },
    timetrial = {
        enabled = true,
        sprite = 127,
        color = 7,
        scale = 0.7
    },
    route = {
        sprite = 38,
        color = 24,
        scale = 0.9
    },
}

Config.leaderboard = {
    -- Set false to disable the browse command entirely
    enabled = true,
    command = 'stuntzones',

    -- Save the player's (roleplay) character name on leaderboards instead of their username
    useCharacterName = true,
}

Config.editor = {
    -- Admin command to open the zone editor
    command = 'stuntzones:admin',
}

Config.drift = {
    minSpeed = 10.0,
    minAngle = 12.0,
    maxAngle = 130.0,
    pointsRate = 0.2,

    -- Combo gifts smooth drifting by adding a hidden combo multiplier for consecutive drifting
    combo = {
        -- Multiplier increment per interval
        increment = 0.4,
        -- Interval between multiplier increments
        interval = 1000,

        -- Max drift score combo multiplier
        max = 5.0,
    },

    -- On a crash, optionally remove points based on the body damage taken
    -- Penalty = bodyHealth lost (0-1000 scale) * perDamage
    crashPenalty = {
        enabled = true,
        perDamage = 20.0,
    },

    -- Drift freestyle ends after this long without drifting
    streakIdleStop = 2000,

    -- Drift freestyle ends immediately on a hit/collision
    streakCrashEnds = true,
}

-- Ghost mode: nearby vehicles turn semi-transparent and stop colliding with you
Config.ghost = {
    -- Enable ghost mode per zone type
    zoneTypes = {
        drift = true,
        driftFreestyle = true,
        speedzone = true,
        timetrial = true,
    },

    -- Semi-transparency on ghosted vehicles
    transparency = {
        enabled = true,
        -- 0 = invisible, 255 = solid
        alpha = 127,
    },

    -- Disable collision between ghosted vehicles and your own
    collision = {
        enabled = true,
    },
}

-- All styling options of the UI
Config.uiStyling = {
    ['color-background'] = '20, 22, 21',
    ['color-background-light'] = '30, 33, 31',

    ['color-primary-dark'] = '120, 170, 0',
    ['color-primary'] = '178, 243, 0',
    ['color-primary-light'] = '211, 252, 98',

    ['color-secondary'] = '193, 207, 176',
    ['color-secondary-light'] = '226, 245, 203',
    ['color-secondary-dark'] = '111, 117, 103',

    ['color-white'] = '251, 251, 251',
    ['color-black'] = '10, 10, 10',

    ['border-radius-sm'] = '0.25rem',
    ['border-radius-md'] = '0.5rem',
    ['border-radius-lg'] = '0.75rem',
    ['border-radius-xl'] = '1.5rem',

    ['backdrop-blur'] = '16px',
}

Config.sql = {
    driver = 'oxmysql', -- oxmysql or mysql
    newOxMysql = true,
}

```
