# Configuration

```lua
Config = {}

Config.framework = {
    name = 'auto',                          -- Only esx or qb or auto. If auto, it will detect the framework automatically.
    targetScript = 'ox_target',             -- Target script name (qb-target or ox_target)
    useOxNotify = true,                     -- Use ox_lib instead of ESX.ShowNotification or QBCore.Functions.Notify
    debug = false,                           -- Debug mode (only developers)
    imagePath = 'ox_inventory/web/images',  -- change this example for ox: 'ox_inventory/web/images' or qb: 'qb-inventory/html/images'
    imageFormat = 'png',                    -- Image format (png, jpg or webp)
}

Config.police = {
    dispatch = 'default',    -- cd_dispatch | qs-dispatch | ps-dispatch | rcore_dispatch | default
    dispatchJobs = { 'police', 'sheriff' },
    callChance = 10, -- chance to call the police
}

Config.placementOptions = {
    useGizmo = false, -- If true, this requires the object_gizmo script dependency (https://github.com/DemiAutomatic/object_gizmo)
    placementMaxDistance = 3.0, -- max distance to place the object
    keybinds = { -- If you change the order it will not work properly.
        {
            icon = 'RiSlowDownFill',
            title = "Increase Speed",
            key = 'Arrow Up',
            keyCode = 172,
            order = 1,
        },
        {
            icon = 'RiSpeedUpFill',
            title = "Decrease Speed",
            key = 'Arrow Down',
            keyCode = 173,
            order = 2,
        },
        {
            icon = 'FaLongArrowAltUp',
            title = "Move Forward",
            key = 'Numpad 8',
            keyCode = 111,
            order = 3,
        },
        {
            icon = 'FaLongArrowAltDown',
            title = "Move Backward",
            key = 'Numpad 5',
            keyCode = 110,
            order = 4,
        },
        {
            icon = 'FaLongArrowAltLeft',
            title = "Move Left",
            key = 'Numpad 4',
            keyCode = 108,
            order = 5,
        },
        {
            icon = 'FaLongArrowAltRight',
            title = "Move Right",
            key = 'Numpad 6',
            keyCode = 107,
            order = 6,
        },
        {
            icon = 'MdMoveDown',
            title = "Move Down",
            key = 'Arrow Left',
            keyCode = 174,
            order = 7,
        },
        {
            icon = 'MdMoveUp',
            title = "Move Up",
            key = 'Arrow Right',
            keyCode = 175,
            order = 8,
        },
        {
            icon = 'FaArrowRotateLeft',
            title = "Rotate Left",
            key = 'Numpad 7',
            keyCode = 117,
            order = 9,
        },
        {
            icon = 'FaArrowRotateRight',
            title = "Rotate Right",
            key = 'Numpad 9',
            keyCode = 118,
            order = 10,
        },
        {
            icon = 'FaExpandArrowsAlt',
            title = "Place on Ground",
            key = 'Left Shift',
            keyCode = 21,
            order = 11,
        },
        {
            icon = 'FaCheck',
            title = "Confirm Placement",
            key = 'Enter',
            keyCode = 191,
            order = 12,
        },
        {
            icon = 'GiCancel',
            title = "Cancel Action",
            key = 'Backspace',
            keyCode = 194,
            order = 13,
        },
    }
}

Config.torture = {
    itemName = "torture_chair",
    removeItem = true, -- remove the item after placing the torture chair
    staticChairs = {
        {
            coords = vector4(568.048, -3123.970, 18.2, 175.989)
        },
    },
    catchPlayer = {
        enabled = true,
        allowedVehicles = { "burrito", "burrito2", "burrito3", "burrito4" },
        allowedJobs = {}, -- if empty, all jobs are allowed
        toggleSkillBar = true,
        skillBarSettings = {'easy', 'easy', {areaSize = 60, speedMultiplier = 2}, 'hard'}, {'w', 'a', 's', 'd'}
    },
    wrenchOptions = {
        requiredItem = "torture_wrench", -- If you set it to false, no item requirement will be needed.
        removeItemOnUse = false,
        applyDamage = 10, -- apply damage to the player when using the wrench
    },
    pliersOptions = {
        requiredItem = "torture_pliers", -- If you set it to false, no item requirement will be needed.
        removeItemOnUse = false,
        applyDamage = 5, -- apply damage to the player when using the pliers
    },
    electrocuteOptions = {
        requiredItem = "torture_electrocute", -- If you set it to false, no item requirement will be needed.
        removeItemOnUse = false,
        applyDamage = 15, -- apply damage to the player when using the electrocute
    },
    syringeOptions = {
        requiredItem = "torture_syringe", -- If you set it to false, no item requirement will be needed.
        removeItemOnUse = true,
        applyDamage = 20, -- apply damage to the player when using the syringe
    },
    petrolcanOptions = {
        requiredItem = "torture_petrolcan", -- If you set it to false, no item requirement will be needed.
        removeItemOnUse = false,
        applyDamage = 20, -- apply damage to the player when using the petrolcan
    },
}

Config.keybinds = {
    standUpKey = 38, -- E
    trolley = {
        {
            icon =  "FaLongArrowAltLeft",
            title = "Left",
            key = "Arrow Left",
            keyCode = 174,
            order = 1,
        },
        {
            icon =  "FaLongArrowAltRight",
            title = "Right",
            key = "Arrow Right",
            keyCode = 175,
            order = 2,
        },
        {
            icon =  "FaCheck",
            title = "Take",
            key = "Enter",
            keyCode = 201,
            order = 3,
        },
        {
            icon =  "GiCancel",
            title = "Cancel",
            key = "Backspace",
            keyCode = 194,
            order = 4,
        },
    },
    wrench = {
        {
            icon =  "FaLongArrowAltLeft",
            title = "Left",
            key = "Arrow Left",
            keyCode = 174,
            order = 1,
        },
        {
            icon =  "FaLongArrowAltRight",
            title = "Right",
            key = "Arrow Right",
            keyCode = 175,
            order = 2,
        },
        {
            icon =  "FaLongArrowAltUp",
            title = "Mid",
            key = "Arrow Up",
            keyCode = 172,
            order = 3,
        },
        {
            icon =  "GiCancel",
            title = "Cancel",
            key = "Backspace",
            keyCode = 194,
            order = 4,
        },
    },
    pliers = {
        {
            icon =  "FaCheck",
            title = "Grab Tooth",
            key = "Mouse Left",
            keyCode = 24,
            order = 1,
        },
        {
            icon =  "FaCheck",
            title = "Pull Tooth",
            key = "E",
            keyCode = 38,
            order = 2,
        },
        {
            icon =  "GiCancel",
            title = "Cancel",
            key = "Backspace",
            keyCode = 194,
            order = 3,
        },
    },
    electrocute = {
        {
            icon =  "MdElectricBolt",
            title = "Spark",
            key = "E",
            keyCode = 38,
            order = 1,
        },
        {
            icon =  "FaLongArrowAltLeft",
            title = "Left",
            key = "Hold Mouse Left",
            keyCode = 69,
            order = 2,
        },
        {
            icon =  "FaLongArrowAltRight",
            title = "Right",
            key = "Hold Mouse Right",
            keyCode = 25,
            order = 3,
        },
        {
            icon =  "GiCancel",
            title = "Cancel",
            key = "Backspace",
            keyCode = 194,
            order = 4,
        },
    },
    syringe = {
        {
            icon =  "FaCheck",
            title = "Inject",
            key = "E",
            keyCode = 38,
            order = 1,
        },
        {
            icon =  "GiCancel",
            title = "Cancel",
            key = "Backspace",
            keyCode = 194,
            order = 2,
        },
    },
    petrolcan = {
        {
            icon =  "FaCheck",
            title = "Kick Chair",
            key = "E",
            keyCode = 38,
            order = 1,
        },
        {   
            icon =  "FaDroplet",
            title = "Pour Water",
            key = "Hold Mouse Left",
            keyCode = 24,
            order = 2,
        },
        {
            icon =  "GiCancel",
            title = "Cancel",
            key = "Backspace",
            keyCode = 194,
            order = 3,
        },
    }
}

Strings = {
    ["police_alert"] = "Police have been alerted of suspicious activity.",
    ["place_object_label"] = "Place Torture Chair",
    ["remove_object_label"] = "Remove Torture Chair",
    ["torture_stand_up_label"] = "[E] - Stand Up",
    ["torture_chair_action"] = "Sit Torture Chair",
    ["torture_in_chair_action"] = "[E] - Get up Torture Chair",
    ["torture_trolley_action"] = "Select Torture Tool",
    ["torture_chair_busy"] = "This torture chair is currently in use.",
    ["torture_remove_action"] = "Remove Torture Chair",
    ["torture_missing_items"] = "You don't have the required items to perform this action.",
    ["catch_player_info"] = "Position the vehicle behind the target, approach from the rear, and toss them into the vehicle",
    ["catch_player_failed"] = "You failed to catch the target!",
}
```


---

# 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/torture-v-kidnap-and-punish/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.
