~/docs/supermarket-simulator/configuration/catalog-manager
supermarket simulator docs›
Supermarket Simulator
Catalog Manager
-- 2 min read
The catalog is the master list of everything the system knows about : the prop categories, the placeable props (shelves, fridges, registers, décor) and the sellable goods. It is server-authoritative and lives in server/catalog.json.
How it works
- On first start the catalog is built from the Lua config seed (
config/categories.lua+config/catalog.lua+config/items.lua). - From then on,
server/catalog.jsonis the single source of truth and is broadcast to every client. - Technical rendering parameters (container grids, visual params) stay in the config and are only extended for admin-added shelves/fridges — never wiped.
Editing via the UI (recommended)
Open /smadmin → Catalog Manager. It gives you a form-driven editor with a live 3D preview:
- Add / edit / remove props, set the label, price, category and role.
- Add / edit / remove goods, set the label, price and how the item displays inside a container.
- Changes are authenticated server-side, persisted to
server/catalog.json, and broadcast to all clients immediately.
Prop roles
Each prop has a role: register, shelf, fridge or decor. The role drives the market badge and whether the prop becomes a functional goods container. A prop becomes a working container only if it's a shelf/fridge (a default grid is synthesised) or has an explicit container definition in config.
Editing via config (the seed)
Prefer the config seed for bulk/versioned changes :
- Edit
config/categories.lua,config/catalog.luaand/orconfig/items.lua. - Run
/smcatalogreseed(or deleteserver/catalog.jsonand restart).
/smcatalogreseedis destructive, it rebuildsserver/catalog.jsonfrom the config and discards catalog edits made through the UI. Use it when the config is your source of truth.
Note on goods-display models
The small meshes used to render goods on shelves are not offered as standalone placeable props (you shouldn't be able to place a loose loaf of bread as décor). They're filtered out of the editor automatically.