> For the complete documentation index, see [llms.txt](https://code-after-sex.gitbook.io/script-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://code-after-sex.gitbook.io/script-documentation/cas-metabolism-v2/items.md).

# Items

Add your own food, drink, tonics and smokes to CAS Metabolism V2 for RedM — restore values, RDR2 animations and props, VORP and RSG item wiring.

The resource ships a list of food, drink, tonics and smokes already wired up. This page is for adding your own.

***

## Adding one item

Open `config/items_vorp.lua` or `config/items_rsg.lua` and add a line:

```lua
Vorp('apple', 'fruit', 'Apple', { hunger = 20 })
Rsg('apple',  'fruit', 'Apple', { hunger = 20 })
```

|                   |                                                               |
| ----------------- | ------------------------------------------------------------- |
| `'apple'`         | The item name **exactly as it is in your inventory database** |
| `'fruit'`         | The recipe — which animation and prop the character uses      |
| `'Apple'`         | What the notification calls it                                |
| `{ hunger = 20 }` | What it restores                                              |

That is all. The resource registers it as usable with your framework on start.

***

## Recipes

A recipe is the animation, the prop and the timing. Pick the one that genuinely suits the item:

| Recipe      | Looks like                         |
| ----------- | ---------------------------------- |
| `fruit`     | A round fruit, eaten from the hand |
| `carrot`    | A rod — carrot, jerky, corn        |
| `bread`     | A sandwich or a roll               |
| `cheese`    | A wedge                            |
| `can`       | A tin, eaten with the fingers      |
| `bowl`      | Stew, from a bowl                  |
| `plate`     | A meal from a plate                |
| `canteen`   | A canteen, drunk standing          |
| `cup`       | A tin cup — coffee, tea            |
| `bottle`    | A glass bottle                     |
| `beer`      | A beer bottle                      |
| `tonic`     | A small medicine bottle            |
| `bandage`   | Wrapping a wound                   |
| `wash`      | Washing — raises hygiene           |
| `cigarette` | A cigarette, held and smoked       |
| `cigar`     | A cigar                            |
| `pipe`      | A pipe                             |
| `chew`      | Chewing tobacco                    |

{% hint style="info" %}
RDR2 ships exactly six eating animations. An item that fits none of them ends up as an oversized prop stuck to the hand, so the shipped list is deliberately short rather than padded out. Pick the nearest honest match.
{% endhint %}

***

## What an item can restore

```lua
Vorp('stew', 'bowl', 'Beef Stew', {
    hunger  = 45,
    thirst  = 10,
    stress  = -8,      -- negative lowers it
    hygiene = 0,
    alcohol = 0,
    health  = 15,
    stamina = 25,
})
```

Drinks fill the bladder on their own — you do not need to add `urine`.

### A different prop

```lua
Vorp('pear', 'fruit', 'Pear', { hunger = 18 }, { prop = 'p_pear01x' })
```

***

## Eating too much

Forcing a meal down on a full stomach brings it straight back up, and the character loses more than they ate. Same for drink.

```lua
Config.Consume.overeat = {
    enabled = true,
    fullAt = 92,       -- how full counts as full
    atLeast = 4,       -- how much the item has to offer to count
    effects = { hunger = -18, thirst = -12, hygiene = -12, stress = 5 },
}
```

***

## Water sources

Rivers, wells and troughs are already drinkable. The prompt appears when the character is close enough and looking at water.

```lua
Config.Consume.water = {
    enabled = true,
    thirst = 18,
    hygiene = -4,      -- river water is not clean
}
```

***

## Registering an item from another resource

If your items come from somewhere else and you would rather not edit a file:

```lua
exports['cas-metabolism']:registerConsumable('apple', {
    recipe  = 'fruit',
    label   = 'Apple',
    effects = { hunger = 20 },
})
```
