Configuration
Catalogs & Items
Define reusable item lists shared across shops.
A catalog is a named bundle of categories + items. Many shop locations can point at the same catalog, so you edit prices and items once and every shop using it updates.
The resource ships with two catalogs: convenience (LTD + 24/7) and liquor (Rob's Liquor).
config.lua
Config.ShopCatalogs = {
convenience = {
categories = {
{ id = 'food', label = 'Food' },
{ id = 'drinks', label = 'Drinks' },
{ id = 'tools', label = 'Tools' },
{ id = 'medical', label = 'Medical' },
},
items = {
{ name = 'bread', label = 'Bread', price = 5, category = 'food', image = 'bread.png' },
{ name = 'water', label = 'Water Bottle', price = 3, category = 'drinks', image = 'water.png' },
-- ...
},
},
liquor = {
categories = {
{ id = 'drinks', label = 'Drinks' },
{ id = 'snacks', label = 'Snacks' },
},
items = {
{ name = 'water', label = 'Water Bottle', price = 3, category = 'drinks', image = 'water.png' },
-- ...
},
},
}
Category fields
| Field | Type | Description |
|---|---|---|
id | string | Internal id used by items to group themselves. Must be unique in the catalog. |
label | string | The tab name shown in the UI. |
Item fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The inventory item name. Must exist in your framework's items. |
label | string | Yes | Display name in the UI. |
price | number | Yes | Price per unit (validated server-side). |
category | string | No | Matches a category id. Omit to leave it uncategorized. |
image | string | No | Image file shown in the UI (see below). |
name must match a real item in your inventory system. The server grants name via AddItem. A typo means the player pays but gets nothing.Adding an item
Append a new entry to the catalog's items list:
config.lua
{ name = 'sandwich', label = 'Sandwich', price = 12, category = 'food', image = 'sandwich.png' },
The
category must match an id from the same catalog's categories. Add a new category first if you need one.Item images
The image is loaded by the NUI from the item image folder. Make sure the file exists at:
html/assets/img/<image>
If an image is missing the UI simply shows no thumbnail; the item still works.
Adding a brand-new catalog
config.lua
Config.ShopCatalogs = {
-- existing catalogs...
ammunation = {
categories = {
{ id = 'gear', label = 'Gear' },
},
items = {
{ name = 'armor', label = 'Body Armor', price = 500, category = 'gear', image = 'armor.png' },
},
},
}
Then point a location at it with catalog = 'ammunation' — see Shop Locations.

