# Configuration

```lua
Config = {}

Config.Options = {
    ShopMiddle = vector3(-622.18,-230.77,38.05), -- Store middle position for correcting the paintings to spawn for everyone and for starting the robbery if not "ShootToStartRobbery"
    MarkerOptions = { -- These are only used if UseTarget is false AND ShootToStartRobbery is false
        MarkerDistance = 15.0, -- How close the ped need to be before the marker appears (Only if UseTarget is false)
        DisplayDistance = 1.5, -- How close the ped need to be before the Text appears (Only if UseTarget is false)
        DrawMarkerColor = {34, 67, 153, 200}, -- Drawmarker Color (Only if UseTarget is false)
    },
    KeypadPos = vector3(-629.0, -231.17, 38.06), -- Keypad position for the police to turn of the alarm
    KeypadHeading = 37.58, -- Keypad Heading, the heading of the ped in action
    JobCheckTime = 10, -- How many seconds to check if you´re a cop or not
    AllowPoliceRobbing = false, -- True = Police can rob paintings and trays, False = Police cant rob paintings and trays
    Blip = { -- All the different Index´s can be found on https://docs.fivem.net/docs/game-references/blips/
        EnableBlip = true, -- If there should appear a Blip for the Vangelico Store
        BlipCoords = vector3(-632.72,-238.62,38.07), -- Blip coords
        BlipIcon = 439, -- Blip icon Index
        BlipColor = 4, -- Blip color Index
        BlipText = "Vangelico Jewelry Store" -- Blip Name label
    },
    RobItemAmount = { -- How many items you can get from the trays
        Min = 1,
        Max = 3
    },
    PoliceRequired = 0, -- Police Required to start the vangelico robbery
    ShootToStartRobbery = true, -- True = Need to shoot in the store to begin the robbery, False = Can start directly to loot
    CooldownTime = 60 * 180, -- Cooldown time for the robbery (3 hours | 180 minutes)
    LockTime = 1, -- How many minutes to lock the door after the alarm has been triggered
}

Config.Keybindings = {
    ["up"] = {
        defaultKey = "W",
        description = "Cut Up, default W"
    },
    ["down"] = {
        defaultKey = "S",
        description = "Cut Down, default S"
    },
    ["right"] = {
        defaultKey = "D",
        description = "Cut Right, default D"
    },
    ["left"] = {
        defaultKey = "A",
        description = "Cut Left, default A"
    },
}

Config.PoliceJobs = { -- Jobs that is counted as cops [Both for "PoliceRequired", "AllowPoliceRobbing" and the Keypad for resetting the alarm]
    Jobs = {"police"}
}

Config.DoorObjects = {
    ["p_jewel_door_l"] = {
        Hash = GetHashKey("p_jewel_door_l"),
        Location = vector3(-631.14, -237.32, 38.08),
        ClosedHeading = 306.0
    },
    ["p_jewel_door_r1"] = {
        Hash = GetHashKey("p_jewel_door_r1"),
        Location = vector3(-631.14, -237.32, 38.08),
        ClosedHeading = 306.0
    }
}

Config.WeaponsNeeded = {
    Trays = { -- All available weapons that can destroy the Trays
        GetHashKey("weapon_pumpshotgun"),
        GetHashKey("weapon_assaultrifle"),
        GetHashKey("weapon_assaultrifle_mk2"),
        GetHashKey("weapon_assaultshotgun"),
        GetHashKey("weapon_bullpuprifle"),
        GetHashKey("weapon_bullpupshotgun"),
        GetHashKey("weapon_carbinerifle"),
        GetHashKey("weapon_carbinerifle_mk2"),
        GetHashKey("weapon_combatpdw"),
        GetHashKey("weapon_bullpuprifle"),
        GetHashKey("weapon_bullpuprifle_mk2"),
        GetHashKey("weapon_assaultsmg"),
        GetHashKey("weapon_advancedrifle"),
        GetHashKey("weapon_gusenberg"),
        GetHashKey("weapon_heavyshotgun"),
        GetHashKey("weapon_sawnoffshotgun"),
        GetHashKey("weapon_dbshotgun"),
        GetHashKey("weapon_pumpshotgun_mk2"),
        GetHashKey("weapon_smg"),
        GetHashKey("weapon_specialcarbine"),
        GetHashKey("weapon_specialcarbine_mk2")
    },
    Paintings = { -- All available weapons that can cut the Paintings
        GetHashKey("weapon_switchblade")
    }
}

-- What Items you can receive when looting the trays
Config.Items = {
    "ring_deluxe",
    "ring",
    "watch",
    "watch_deluxe",
    "necklace",
    "necklace_deluxe",
    "dia_box",
    "gold",
    "diamond"
}

Config.Paintings = {
    "painting_1",
    "painting_2",
    "painting_3",
    "painting_4"
}

Strings = {
    ["start_robbery"] = "Start Jewelry Robbery",
    ['police_notify'] = 'The alarm at Vangelico Jewelry Store has been triggered',
    ['not_enough_cops'] = 'The robbery cannot be started as there are not enough police officers in the city.',
    ['keypad_text'] = 'to disable the alarm',
    ['smash_tray'] = 'to smash the display case',
    ['no_weapon'] = 'You need a weapon to smash the display case',
    ['no_switch'] = 'You need a folding knife to cut down the painting',
    ['cancel'] = 'You canceled the interaction and received nothing',
    ['start_painting'] = 'to steal the painting',
    ['cut_right'] = 'to cut to the right',
    ['cut_left'] = 'to cut to the left',
    ['cut_down'] = 'to cut down',
    ['cut_up'] = 'to cut up',
    ['cooldown'] = 'The store cannot be robbed as it was recently robbed',
    ['alarm_doors'] = 'The alarm has been triggered, and the store doors are now locked for %s minutes.',
    ['doors_opened'] = 'The doors have now been unlocked',
    ['error'] = 'An error occured',

    -- Logging
    ["discord_abuse_jewel"] = 'Player **%s** (**%s**) tried to recieve tray reward without smashing the tray',
    ["discord_abuse_painting"] = 'Player **%s** (**%s**) tried to recieve painting reward without cutting the painting',
    ["discord_recieved_reward"] = 'Player **%s** (**%s**) recieved `%s` items from robbing a `%s`',
    ["discord_robbery_started"] = "Player **%s** (**%s**) started the robbery at Vangelico Jewelry Store with %s police officers online",
    ["discord_robbery_ended"] = "Player **%s** (**%s**) pressed the keypad to end the Vangelico Jewelry Store Robbery",
}
```


---

# 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.txos.dev/resources/txos-jewel/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.
