> For the complete documentation index, see [llms.txt](https://project-07.gitbook.io/project_07-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://project-07.gitbook.io/project_07-docs/scripts/project07-lootprop-v2/configuration.md).

# Configuration

Config Files

{% code title="Config.lua" overflow="wrap" lineNumbers="true" %}

```lua
--[[
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    Project07 — Loot Props v2.0
    Sleepless Lootbox UI  |  Multi-Framework
    by Pehesara
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
]]

Config = {}

-- ─────────────────────────────────────────────────
--  Framework  ('auto' | 'esx' | 'qbcore' | 'qbx')
-- ─────────────────────────────────────────────────
Config.Framework = 'auto'

-- ─────────────────────────────────────────────────
--  Target System  ('auto' | 'ox_target' | 'qb-target')
-- ─────────────────────────────────────────────────
Config.Target = 'auto'
Config.Distance = 1.3  -- target interaction distance

-- ─────────────────────────────────────────────────
--  Inventory  ('auto' | 'ox_inventory' | 'qb-inventory' | 'qs-inventory')
-- ─────────────────────────────────────────────────
Config.Inventory = 'auto'

-- ─────────────────────────────────────────────────
--  Loot Roll Top Name
-- ─────────────────────────────────────────────────
Config.RollTopName = 'Project07'  -- or whatever name

-- ────────────────────────────────────────────────
-- kg weight full
-- ────────────────────────────────────────────────
Config.MaxWeight = 118  -- adjust to your inventory's max weight for better "inventory full" checks (client-side fast check)

-- ─────────────────────────────────────────────────
--  General Settings
-- ─────────────────────────────────────────────────
Config.Debug        = true   -- enables /clearlootstates command
Config.ProgressTime = 0    -- progress bar duration (ms) (0 = 1ms to trigger anim with Bar)

-- ───────────────────────────────────────────────
--  Discord Webhook  (leave '' to disable)
-- ───────────────────────────────────────────────
Config.Webhook = ''  -- paste your Discord webhook URL here

-- ─────────────────────────────────────────────────
--  Rarity Auto-Calculation Thresholds
--  If you don't set rarity manually on an item,
--  it's decided by weight vs these thresholds.
-- ─────────────────────────────────────────────────
Config.RarityThresholds = {
    common    = 17,
    uncommon  = 4,
    rare      = 1,
    epic      = 0.3,
    -- legendary = anything below 0.3
}

-- ─────────────────────────────────────────────────
--  PROPS
--
--  model       → GTA prop model string
--  label       → display name shown in UI / notifications
--  icon        → FontAwesome icon for target menu
--  NOTE: Each search = 1 loot roll (sleepless_lootbox limitation)
--  cooldown    → seconds before prop resets (after maxAttempts used)
--  maxAttempts → how many times players can search before cooldown
--
--  items[].weight  → relative drop weight (higher = more common)
--                    weights DON'T need to sum to 100
--  items[].min/max → amount range given when that item drops
--  items[].rarity  → optional override ('common'|'uncommon'|'rare'|'epic'|'legendary')
-- ─────────────────────────────────────────────────
Config.Props = {

    -- ── Dumpster ──────────────────────────────────────
    ['dumpster'] = {
        model       = 'prop_dumpster_01a',
        label       = 'Dumpster',
        icon        = 'fas fa-trash',
        cooldown    = 120,   -- 2 min
        maxAttempts = 3,
        items = {
            { name = 'metalscrap',  weight = 60,  min = 1, max = 4 },
            { name = 'plastic',     weight = 70,  min = 2, max = 6 },
            { name = 'rubber',      weight = 50,  min = 1, max = 3 },
            { name = 'phone',       weight = 5,   min = 1, max = 1, rarity = 'epic' },
            { name = 'lockpick',    weight = 10,  min = 1, max = 2, rarity = 'rare' },
        }
    },
    -- ── Food Prop ─────────────────────────────────────
    ['foodprop'] = {
        model       = 'docktrailer',
        label       = 'Food Dock',
        icon        = 'fas fa-utensils',
        cooldown    = 120,   -- 2 min
        maxAttempts = 3,
        items = {
            { name = 'water',    weight = 70, min = 1, max = 2 },
            { name = 'bread',    weight = 50, min = 1, max = 2 },
            { name = 'sandwich', weight = 30, min = 1, max = 1 },
            { name = 'coffee',   weight = 40, min = 1, max = 1 },
            { name = 'beer',     weight = 25, min = 1, max = 2 },
        }
    },

    --[[
    ── ADD MORE PROPS BELOW ──────────────────────────

    ['myprop'] = {
        model       = 'prop_model_name_here',
        label       = 'My Prop',
        icon        = 'fas fa-box',
        cooldown    = 120,   -- 2 min
        maxAttempts = 3,
        items = {
            { name = 'item_name', weight = 80, min = 1, max = 3 },
            { name = 'rare_item', weight = 5,  min = 1, max = 1, rarity = 'epic' },
        }
    },

    ─────────────────────────────────────────────────
    ]]
}

-- ─────────────────────────────────────────────────
--  NOTIFICATIONS  (ox_lib notify style)
-- ─────────────────────────────────────────────────
Config.Notifications = {
    searching      = 'Searching...',
    noLoot         = 'Nothing useful found here.',
    onCooldown     = 'This has been thoroughly searched. Come back later.',
    inventoryFull  = 'Your inventory is full!',
    -- %s = item label, %d = amount, %d = total items
    singleLooted   = 'Found: %s x%d',
    bulkLooted     = 'Collected %d item(s)!',
}
```

{% endcode %}
