# Configuration Guide

```lua
lib.locale('en')

cfg = {}

---@type 'auto' | 'qb' | 'esx'
cfg.framework = 'auto'

---@type 'auto' | 'ox_target' | 'qb-target' | false
cfg.target = 'auto'

---@type 'ox_lib' | 'qb' | 'esx' | 'okokNotify' | 'ps-ui'
cfg.notification = 'ox_lib'

---@type 'ox_lib' | 'esx' | 'qb' | 'okokTextUI' | 'jg-textui'
cfg.textUI = 'ox_lib'

---@type 'ox_lib' | 'qb' | 'esx' | false
cfg.progressbar = 'ox_lib'

cfg.interaction = {
    controlId = 38, ---@type number
    text = 'E', ---@type string
    colors = {
        background = { r = 241, g = 93, b = 56, a = 255 }, ---@type { r: number, g: number, b: number, a: number }
        text = { r = 226, g = 232, b = 240, a = 255 }, ---@type { r: number, g: number, b: number, a: number }
    },
}

cfg.npcs = {
    ['mechanic'] = {
        coords = {
            vehicle = vec4(-362.839844, -119.355042, 38.201218, 345.500000), ---@type vector4
            idle = vec4(-357.902222, -120.594521, 38.601257, 75.000000), ---@type vector4
            rack = vec4(-356.260162, -121.034515, 37.701302, 74.999992), ---@type vector4
        },
        model = `mp_m_waremech_01`, ---@type number
        blip = false, ---@type boolean | { sprite: number, color: number, scale: number, label: string }
        label = 'Mechanic', ---@type string
    },
}

cfg.moneyType = 'cash' ---@type string

cfg.prices = {
    repair = {
        engine = 0.2, ---@type number -- damage amount * this value | damage amount can be maximum 1000
        petroltank = 0.1, ---@type number -- damage amount * this value | damage amount can be maximum 1000
        body = 0.1, ---@type number -- damage amount * this value | damage amount can be maximum 1000
        tire = 20, ---@type number -- broken tire * this value
        door = 25, ---@type number -- broken door * this value
        window = 7, ---@type number
    },
    clear = 2, ---@type number -- dirt level * this value | dirt level can be maximum 15
}

cfg.items = {
    wash_cloth = 'rm_washcloth', ---@type string
    engine_repairkit = 'rm_enginerepairkit', ---@type string
}

-- deactivate the sales menu, equate cfg.buy to empty table
cfg.buy = {
    [cfg.items.wash_cloth] = {
        label = 'Wash Cloth', ---@type string
        price = 50, ---@type number
    },
    [cfg.items.engine_repairkit] = {
        label = 'Engine Repairkit', ---@type string
        price = 250, ---@type number
    },
}

cfg.durations = {
    engine = 10, ---@type number -- seconds
    body = 10, ---@type number -- seconds
    windows = 10, ---@type number -- seconds
    door = 10, ---@type number -- seconds
    tyre = 10, ---@type number -- seconds
    clear = 15, ---@type number -- seconds
}

cfg.disableDefaultItems = false ---@type boolean
cfg.removeItemOnUse = true ---@type boolean

cfg.editorCommand = 'mn_editor' ---@type string
cfg.editorAlloweds = {
    -- ['steam:00000000a000a00'] = true,
    -- ['license:0aa00a00a00aa000a000000a00000a00a00aa000'] = true,
    -- ['license2:0aa00a00a00aa000a000000a00000a00a00aa000'] = true,
    -- ['fivem:0000000'] = true,
}

cfg.callMechanicPedModel = `mp_m_waremech_01` ---@type number
cfg.callMechanicVehicleModel = `towtruck2` ---@type number
cfg.callMechanicCommand = 'callmech' ---@type string | false -- If false, the command will be deactivated

cfg.rackModel = `imp_prop_impexp_parts_rack_02a` ---@type number

if not lib.checkDependency('ox_lib', '3.23.1') then print('^3[WARN] ox_lib version 3.23.1 or higher is required for the script to run stably, please update') end
```


---

# 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://docs.rainmad.com/resources/npc-mechanic/configuration-guide.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.
