> For the complete documentation index, see [llms.txt](https://tyrix.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tyrix.gitbook.io/docs/script-resources/tyrix-business/item-setup.md).

# Item Setup

Tyrix Business ships five items that `ox_inventory` needs to know about. This is a **one-time** setup — you never repeat it per business.

{% stepper %}
{% step %}

## Add the items

Paste all five into `ox_inventory/data/items.lua`:

```lua
['business_box'] = {
    label       = 'Business Box',
    weight      = 500,
    stack       = false,
    close       = true,
    consume     = 0,
    description = 'A branded portable storage box.',
    server = { export = 'tyrix_business.useBox' },
},

['business_drink'] = {
    label = 'Drink',
    weight = 350,
    stack = true,
    close = true,
    description = 'A business-made drink.',
    client = {
        status = { thirst = 200000 },
        anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' },
        prop = { model = `prop_ld_flow_bottle`, pos = vec3(0.03, 0.03, 0.02), rot = vec3(0.0, 0.0, -1.5) },
        usetime = 2500,
    }
},

['business_food'] = {
    label = 'Food',
    weight = 250,
    stack = true,
    close = true,
    description = 'A business-made dish.',
    client = {
        status = { hunger = 200000 },
        anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
        prop = { model = `prop_cs_burger_01`, pos = vec3(0.02, 0.02, -0.02), rot = vec3(0.0, 0.0, 0.0) },
        usetime = 2500,
    }
},

['business_joint'] = {
    label = 'Joint',
    weight = 20,
    stack = true,
    close = true,
    description = 'A business-rolled joint.',
    client = {
        status = { stress = -25000 },
        anim = { dict = 'amb@world_human_aa_smoke@male@idle_a', clip = 'idle_b' },
        prop = { model = `prop_cs_ciggy_01`, bone = 28422, pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0) },
        usetime = 5000,
    }
},

['business_alcohol'] = {
    label = 'Alcohol',
    weight = 500,
    stack = true,
    close = true,
    description = 'A business-served drink. 21+',
    client = {
        status = { thirst = 2000000, drunk = 175000 },
        anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' },
        usetime = 3000,
    }
},
```

{% endstep %}

{% step %}

## Add the fallback box image

Drop a `restaurant_box.png` into `ox_inventory/web/images/`.

This is the box icon used until a business sets its own. The filename comes from `Config.Boxes.fallbackImageName` — change one and change the other.
{% endstep %}

{% step %}

## Restart ox\_inventory

Once. That completes the setup.
{% endstep %}
{% endstepper %}

## What each item is for

| Item               | Used by         | Purpose                                   |
| ------------------ | --------------- | ----------------------------------------- |
| `business_box`     | Boxes           | The carryable per-business storage box.   |
| `business_drink`   | Product Manager | Base item for products of type `drink`.   |
| `business_food`    | Product Manager | Base item for products of type `food`.    |
| `business_joint`   | Product Manager | Base item for products of type `joint`.   |
| `business_alcohol` | Product Manager | Base item for products of type `alcohol`. |

Business owners never choose the underlying item. They pick a **product type**, and the server resolves that to the matching base item and applies the product's own name, description and image on top. That is what makes the Product Manager safe to hand to a player.

## Adding more product types

Add another item to `items.lua`, then add a matching entry to `Config.Products.baseItems`:

```lua
baseItems = {
    drink   = 'business_drink',
    food    = 'business_food',
    joint   = 'business_joint',
    alcohol = 'business_alcohol',
    snack   = 'business_snack',   -- your new type
},
```

The new type appears in the owner's Product Type dropdown automatically — no other changes needed.

## Related config

Box slots, weight, per-box use limit and storage restrictions live under `Config.Boxes`, and the product caps and ingredient pool under `Config.Products`. Both are on the [Configuration](broken://pages/2f4164bbc75da11d9309c8582b6ea11a628ea9c6) page.
