# Configuration

<p align="center">This section includes all configurable files for the selected script. Most settings are configured automatically, but each <kbd>config.lua</kbd> file contains a comment explaining the purpose and usage of every configuration type. Be sure to read the comments of each file carefully to fully understand how to customize and adapt the system for QBCORE, ESX, or standalone environments, ensuring seamless integration with your server.</p>

```lua
Config = {}

Config.Debug = true -- Enable debug mode (shows zone boundaries and console logs)

-- Enable this if you're using b14ck-parking (Prevents it from deleting parked cars and sends abandoned cars to the impound lot)
Config.UseB14ckParking = true

-- Command Configuration
-- You can rename the commands here to whatever you prefer.
Config.Commands = {
    -- [Server] Starts the carwipe countdown
    -- Usage: /carwipe [seconds]
    CarWipe = 'carwipe',

    -- [Server] Same as carwipe, alias command
    -- Usage: /grua [seconds]
    Grua = 'grua',

    -- [Server] Instantly deletes vehicles without countdown
    -- Usage: /grua_now
    GruaNow = 'grua_now',

    -- [Server] Debugs permissions for a specific player ID
    -- Usage: /cw_debug_perm [source]
    DebugPerm = 'cw_debug_perm',

    -- [Client] Opens the Zone Creator UI to create Safe Zones
    -- Usage: /zone_create
    ZoneCreate = 'zone_create',

    -- [Client] Toggles debug mode for PolyZones (visualize zones)
    -- Usage: /zone_debug
    ZoneDebug = 'zone_debug',

    -- [Client] Opens UI to move the countdown HUD
    -- Usage: /carwipe_ui
    MoveUI = 'carwipe_ui'
}

Config.Command = {
    Time = 30, -- Default time in Seconds if no argument provided
    Permissions = 'admin' -- Default permission level required
}

-- Default countdown (in seconds) used when no value is passed to commands.
-- Config.CountdownSeconds = 30 <-- DEPRECATED (Moved to Config.Command.Time)

-- Automatic scheduler:
Config.Automatic = {
    Active = true,    -- true or false
    Time = 3600,      -- in Seconds (Interval between wipes) - 1 Hour
    Cooldown = 60     -- in Seconds (Pre-warning duration) - 1 Minute
}

-- When true, the server tries to keep vehicles with any player inside (driver or passengers).
-- When false, every vehicle not in blacklist will be deleted.
Config.IgnoreOccupiedVehicles = true

-- Vehicle blacklist:
-- Accepts model names (strings) or model hashes (numbers). Case-insensitive for names.
-- Examples:
--   { 'police', 'ambulance', `sultan`, 0x79FBB0C5 }
Config.BlacklistModels = {}

-- Play short beeps in the last 5 seconds of countdown (client side)
Config.EnableSounds = true

-- Enable blinking of the timer when time is running out
Config.EnableBlinking = true

-- Notification System
-- Options: 'esx', 'qb', 'ox', 'okok', 'chat'
Config.NotifySystem = 'ox'

-- Also print Chat notifications (besides server framework notifications)
Config.ChatNotify = true

-- Discord Webhook for Logs
Config.DiscordWebhook = "YOUR_WEBHOOK_URL_HERE"

-- Language. Options: 'en' (English) | 'es' (Spanish)
Config.Language = 'es'

-- Target framework. Options:
--   'standalone' -> only chat + optional ox_lib notifications if installed
--   'esx'        -> uses esx:showNotification in addition to chat
--   'qb'         -> uses QBCore:Notify in addition to chat
Config.Framework = 'qb'

-- Permission system selector. Options:
--   type = 'ace'   -> uses ACE permissions (server.cfg)
--   type = 'group' -> framework groups/roles (ESX group or QB permission role)
--   type = 'job'   -> whitelist jobs (esx job.name / qb PlayerData.job.name)
-- Aliases accepted: 'groups' => 'group', 'jobs' => 'job'
Config.Permissions = {
    type = 'group',
    -- ACE mapping used only when type = 'ace'
    ace = {
        carwipe = 'command.carwipe',
        grua = 'command.grua',
        grua_now = 'command.grua_now'
    },
    -- Framework groups/roles used only when type = 'group'
    -- ESX: xPlayer.getGroup(); QB: QBCore.Functions.HasPermission(source, group)
    groups = { 'admin', 'god' },
    -- Framework jobs used only when type = 'job'
    -- ESX: xPlayer.job.name; QB: PlayerData.job.name
    jobs = { 'police' }
}

Config.Zones = {
    -- ["Name"] = { Coords = vector3(x, y, z), Radius = 50.0, ShowZone = true, Color = 3 }
}

```


---

# Agent Instructions: 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://b14ck.gitbook.io/b14ck-scripts/scripts/car-wipe/configuration.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.
