Stores & Zones
Default Locations
ORB Clothing ships with 25+ pre-configured store locations across the map (clothing, barber, tattoo, and accessories). These are seed data: on the first server start they are copied once into the editable admin panel, and from then on every store is managed in-game via /storeadmin.
In test mode (`Config.TestMode = true`) only a small set seeds — one of each type. The seed runs once; deleting a store in `/storeadmin` will **not** bring it back on restart.
Adding a New Store
The recommended way to add stores is the in-game admin panel (/storeadmin) — see the Admin Panel page. The lists in config.lua are only used to seed the panel on first run.
If you are editing the seed list directly (before the first-run seed), store locations are defined in Config.AllStoreLocations. Each entry needs the player coords (vector4 with heading), a type, and the pedPosition. Blip, zone size, and camera come from the store type (Config.StoreTypes):
Config.AllStoreLocations = {
{
coords = vector4(x, y, z, heading), -- player-facing position
type = "clothing", -- clothing | accessories | barber | tattoo
pedPosition = vector4(x, y, z, heading), -- where the shopkeeper ped stands
-- size = vector2(11.0, 13.0), -- optional: override the type's default zone size
},
}Barber Chairs
Barber locations support an optional chairs table so the player sits down during customization:
{
coords = vector4(-33.675, -152.162, 57.076, 158.017), type = "barber",
chairs = {
{ coords = vector3(-34.89, -150.09, 57.09), h = 65.31, offset = vector3(0.03, -0.75, 0.0) },
},
},Zone Interaction
When a player enters a store zone, a help text appears. Press E to open the customization menu. The player is teleported to a routing bucket for isolated customization.
On exit or cancel, the player returns to their original position. If the player presses ESC, all changes are reverted (snapshot/restore system).
Admin-Managed Stores
All stores — both the first-run seeded defaults and any you create — live in data/admin_stores.json and are managed through the admin panel (/storeadmin). They persist across server restarts and are synced to all connected clients in real-time.