<!-- fivemad.com, Markdown source of https://fivemad.com/redm/docs/tools/item-generator -->
> Source: https://fivemad.com/redm/docs/tools/item-generator
> Section: Tools
> Tags: items, VORP, RSG, inventory, SQL, items.lua, icons, vorp_inventory, rsg-inventory
> Tool: https://fivemad.com/redm/tools/item-generator
> Last updated: 2026-10-01
> Site map for assistants: https://fivemad.com/redm/llms.txt

# Item Generator

Pick RDR2 items by their game icon, edit names, labels and weights, and get the VORP items SQL or the RSG items.lua rows with the icons as PNG.

The Item Generator turns RDR2's own inventory icons into inventory items for your framework. Click the items you want, adjust the name, label and the framework's options, and copy the result: an `INSERT` statement for a VORP database, or rows for RSG's `shared/items.lua`. One more click downloads the icons as PNG, already in the folder your inventory reads, together with the SQL or Lua.

## What it is for

Adding items by hand means finding an icon, renaming it, and writing a database row or a Lua table entry with the right columns for your framework. The game already has icons for coffee, arrows, pelts, tonics and over a thousand other things, and for many of them it also has a proper name and description. This tool puts those together so you only choose.

## Quick start

1. Pick your framework on the right: **VORP (SQL)** or **RSG (items.lua)**.
2. Search the item list, or narrow it with a group chip (**Provisions**, **Consumables**, **Weapons** and so on).
3. Click items to add them. Click again to remove one. Picked items are outlined in red.
4. Edit each picked item: **Item** name, **Label**, **Description** and the framework's own fields.
5. Copy the code under the list, or press **Download icons and SQL** (or **Download icons and Lua**).

## The item list

There are **1,229** icons, every texture of the game's three inventory icon dictionaries. **763** of them have their own name in the game's English text and **404** also have a description. Turn on **Only items with a game label** to hide the ones without a name.

The group chips come from the start of the texture name, with their counts:

| Group | Icons | Group | Icons |
| --- | --- | --- | --- |
| Provisions | 369 | Ammo | 38 |
| Consumables | 214 | Kits | 37 |
| Clothing | 181 | Reinforced | 36 |
| Weapons | 85 | Upgrades | 32 |
| Generic | 58 | Collector | 20 |
| Online | 58 | Money | 7 |
| Documents | 48 | Vouchers | 6 |
| Folders | 39 | Other | 1 |

The search matches both the texture name and the label. The grid shows 96 icons at a time with a button for more.

## Editing a picked item

| Field | What it does | Default |
| --- | --- | --- |
| **Item** | The item's key: the name your scripts and the database use, and the icon's file name. At most 50 characters. | The texture name, cut to 50 characters |
| **Label** | The name players see. At most 50 characters. | The game's own label, or one made from the texture name |
| **Description** | The item description. | The game's own description, or empty |
| **Limit** (VORP) | How many a player can carry. | 10 |
| **Weight** (RSG, or VORP with the weight column on) | VORP uses a decimal, RSG a whole number. | 0.25 for VORP, 100 for RSG |
| **Usable** | Whether the item can be used. | on |
| **Can be dropped** (VORP) | Written as `can_remove`. | on |
| **Unique (does not stack)** (RSG) | Written as `unique`. | off |

A label made from the texture name drops a leading `consumable_`, `provision_`, `document_`, `kit_`, `upgrade_`, `generic_`, `clothing_`, `collector_` or `mp_` and capitalises the rest, so `ammo_bullet_express` becomes `Ammo Bullet Express`. Change it to something better before you ship.

Switching between VORP and RSG keeps your picks and resets every weight to that framework's default, because the two use different scales.

## VORP output

With **Coffee** and **Arrows** picked:

```sql title="items.sql"
-- Generated with fivemad.com/redm/tools/item-generator
-- Run it on your VORP database. Icons go in vorp_inventory/html/img/items/<item>.png.
INSERT IGNORE INTO `items` (`item`, `label`, `limit`, `can_remove`, `type`, `usable`, `metadata`, `desc`) VALUES
('consumable_coffee', 'Coffee', 10, 1, 'item_standard', 1, '{}', 'Regular Coffee Brew. Moderately restores Stamina Core and Dead Eye Core.'),
('ammo_arrow', 'Arrows', 10, 1, 'item_standard', 1, '{}', 'Arrows');
```

These are the same columns the official VORP recipe uses for its own items. An item with no description gets its label as the description.

**Write the weight column** adds a `weight` column with each item's weight. Turn it on only if your `items` table has that column (newer VORP databases do, with a default of 0.25); on an older table the statement fails.

Run the SQL on your VORP database, put the icons in `vorp_inventory/html/img/items`, and restart the server.

## RSG output

The same two items for RSG:

```lua title="items.lua"
-- Generated with fivemad.com/redm/tools/item-generator
-- Paste these rows inside RSGShared.Items in rsg-core/shared/items.lua.
-- Icons go in rsg-inventory/html/images/<item>.png.
    consumable_coffee = { name = 'consumable_coffee', label = 'Coffee', weight = 100, type = 'item', image = 'consumable_coffee.png', unique = false, useable = true, shouldClose = true, description = 'Regular Coffee Brew. Moderately restores Stamina Core and Dead Eye Core.' },
    ammo_arrow = { name = 'ammo_arrow', label = 'Arrows', weight = 100, type = 'item', image = 'ammo_arrow.png', unique = false, useable = true, shouldClose = true, description = '' },
```

The rows have the same shape as the items RSG ships with. Paste them inside the `RSGShared.Items = { ... }` table, put the icons in `rsg-inventory/html/images`, and restart rsg-core and the inventory.

## The download

**Download icons and SQL** (or **Lua**) gives you `redm-items-vorp.zip` or `redm-items-rsg.zip` with:

- every picked icon as a PNG, named after your **Item** name, inside `vorp_inventory/html/img/items/` or `rsg-inventory/html/images/`;
- `items.sql` or `items.lua`, the same code shown on the page.

Rename an item before you download and its icon follows. The icons are 192 pixels.

## Common mistakes

The warning panel catches these:

- **"... is picked twice."** Two picks with the same item name. The legendary animal carcasses are the usual case: names such as `provision_role_naturalist_carcass_bear_legendary_01`, `_02` and `_03` are longer than 50 characters, so all three are cut to the same name. Rename them, for example to `legendary_bear_pelt_1`.
- **"... use only letters, digits and underscores."** Spaces or dashes in an item name.
- **"... the item has no name."** An empty **Item** field.

And two it cannot catch:

- **The item exists already.** VORP's `INSERT IGNORE` skips a row whose item name is already in the table, so running the SQL again does not change an existing item. Edit or delete the old row first if you want new values.
- **The icon does not show.** The PNG has to be named exactly like the item and sit in the folder above. If you rename an item in the database later, rename the PNG too.

## Limitations

- Picks are not saved. Reloading the page empties the list, so copy or download before you leave.
- It writes plain items only: no weapons, ammo types, metadata or item use handlers. Those still need code in your framework.
- The labels and descriptions are the game's English text. Translate them yourself for another language.

## Related tools

- [Game Text Search](/redm/docs/tools/text-search)
- [server.cfg Generator](/redm/docs/tools/server-cfg-generator)
- [Hash Calculator](/redm/docs/tools/hash-calculator)
