# Config

```lua
TZMCLootBoxesConfig = {}

--[[

    INSTALLATION 

    This resource requires 'memorygame'. You can install this by following this link: https://github.com/pushkart2/memorygame.

]]--

--[[

    DROP LOCATIONS

    To add new locations, add the vector4 coordinates below and this will choose a new drop location at random.

    vector4(1718.18, 3254.4, 40.34, 288.55) -- Preview Example

]]

TZMCLootBoxesConfig.DropLocations = {
    vector4(2951.57, 3134.84, 170.98, 83.15),
    vector4(2973.32, 3903.63, 55.27, 359.28),
    vector4(2876.3, 4653.13, 48.49, 127.06),
    vector4(2946.06, 5321.02, 101.15, 108.01),
    vector4(1639.16, 5198.48, 169.38, 221.47),
    vector4(2044.28, 4943.51, 41.08, 198.5),
    vector4(1060.18, 4258.03, 37.72, 30.52),
    vector4(443.86, 5567.28, 794.33, 341.71),
    vector4(1273.36, 6572.7, 2.59, 25.97),
    vector4(239.52, 7414.32, 17.38, 298.76),
    vector4(-974.54, 6226.33, 3.48, 218.53),
    vector4(-2246.88, 3835.73, 122.87, 147.98),
    vector4(-2753.44, 2783.86, 2.26, 351.36),
    vector4(-2138.02, 2557.92, 2.84, 24.57),
    vector4(-2968.73, 2151.04, 41.38, 170.97),
    vector4(-2900.12, 1409.59, 75.96, 155.13),
    vector4(-3247.19, 1225.66, 2.55, 266.58),
    vector4(-2505.68, 704.45, 274.8, 172.71),
    vector4(-1765.34, 613.62, 180.53, 198.93),
    vector4(-1260.11, 1135.58, 280.86, 320.35),
    vector4(-446.63, 1525.76, 387.79, 200.35),
    vector4(691.92, 1189.63, 321.82, 200.39),
    vector4(1637.43, 269.69, 249.16, 195.19),
    vector4(1138.0, 116.47, 80.85, 272.95),
    vector4(1246.01, -900.88, 71.31, 140.67),
    vector4(1359.45, -1447.24, 60.91, 159.41),
    vector4(1373.53, -2717.98, 2.75, 117.65),
    vector4(934.82, -3183.68, 5.9, 85.07),
    vector4(-529.41, -2812.58, 6.0, 260.19),
    vector4(-892.06, -3042.08, 13.94, 101.73),
    vector4(-1533.3, -2314.71, 7.14, 327.43)
}

--[[

    Drop Smoothness

    This setting allows you to control how smoothly the 
    drop animation occurs for clients. A smoother drop 
    will require more CPU resources, while a less smooth 
    drop will be less CPU intensive but may result in a 
    more "jumpy" animation, as the position updates less 
    frequently.

    Low: 0.01ms Resmon Usage
    Medium: 0.03ms Resmon Usage
    High: 0.7ms Resmon Usage
    Best: 0.14ms Resmon Usage

]]


TZMCLootBoxesConfig.DropSmoothness = "High"

TZMCLootBoxesConfig.Timing = {
    startTiming = 900,      -- When first starting this script, how many seconds do we wait till the first drop appears
    recurringTiming = 900,  -- When the last box was completed, how many seconds till the next box drops
    hackTiming = 60         -- How many seconds do players need to wait before the box becomes ready to be unlocked 
}

TZMCLootBoxesConfig.Minigame = {    -- This requires 'memorygame'. You can install this by following this link: https://github.com/pushkart2/memorygame.
    enabled = true,
    correctCubesRequired = 10,      -- How many cubes that need to be correct before passing
    incorrectCubesRequired = 3,     -- How many cubes that need to be incorrect before failing
    patternPreviewTime = 3,         -- How many seconds a player can see the complete patern to memorise it
    patternCompleteTime = 10        -- How many seconds a player has to complete the minigame
}

TZMCLootBoxesConfig.Target = {
    hack = {
        label = "Hack",
        icon = "fa-solid fa-user-secret"
    },
    unlock = {
        label = "Unlock",
        icon = "fa-solid fa-vault"
    }
}

--[[

    REWARD 

    ITEM_NAME = { 
        probability = 100,  -- The chance of receiving this item (percentage, 1-100)
        max = 20,           -- The maximum amount of this item that can be received (e.g., 1 weapon, but up to 20 ammo)
        info = {            -- Any additional data for this item. Some items may require specific information, such as 'worth' for marked bills.
            worth = 1000    -- Example: 'worth' is a required field for 'markedbills'. Add any necessary data for the item here.
        } 
    }

]]

TZMCLootBoxesConfig.LootBoxReward = {
    reward = {
        -- WEAPONS --
        weapon_pistol = { probability = 75, max = 1 },
        weapon_microsmg = { probability = 50, max = 1 },
        weapon_pumpshotgun = { probability = 25, max = 1 },
        weapon_assaultrifle = { probability = 25, max = 1 },
        weapon_mg = { probability = 25, max = 1 },
        weapon_sniperrifle = { probability = 25, max = 1 },

        -- AMMO --
        pistol_ammo = { probability = 100, max = 10 },
        rifle_ammo = { probability = 50, max = 10 },
        smg_ammo = { probability = 75, max = 10 },
        shotgun_ammo = { probability = 75, max = 10 },
        mg_ammo = { probability = 50, max = 10 },
        snp_ammo = { probability = 50, max = 10 },

        -- DRUGS --
        joint = { probability = 10, max = 5 },
        cokebaggy = { probability = 5, max = 3 },
        crack_baggy = { probability = 5, max = 3 },
        xtcbaggy = { probability = 5, max = 3 },
        coke_brick = { probability = 1, max = 1 },
        weed_brick = { probability = 5, max = 1 },
        coke_small_brick = { probability = 3, max = 2 },
        oxy = { probability = 5, max = 3 },
        meth = { probability = 5, max = 3 },

        -- MISC --
        markedbills = { probability = 100, max = 20, info = { worth = 1000 } }
    },
    money = {
        type = 'cash',
        min= 1000,
        max = 5000
    }
}
```


---

# 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.tzmc.dev/docs/qb-core/loot-box-drops/config.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.
