Alamo Studio Logo
Advanced

Custom Shops

One-off shops with their own items, not tied to a catalog.

Most shops should use the catalog + location system. But sometimes you want a single, unique shop with its own items that no other shop shares — for example a police armory.

That's what Config.CustomShops is for. Each entry defines its own categories and items inline.

config.lua
Config.CustomShops = {
    ['police_armory'] = {
        label = 'Police Armory',
        coords = vector4(452.3, -980.0, 30.7, 90.0),
        jobs = { 'police' },
        paymentMethods = { 'card' },
        marker = { enabled = true, color = { r = 50, g = 120, b = 255, a = 180 } },
        blip = { enabled = false },
        categories = { { id = 'gear', label = 'Gear' } },
        items = {
            { name = 'bandage', label = 'Bandage', price = 0, category = 'gear', image = 'bandage.png' },
        },
    },
}

Fields

FieldTypeDescription
key (['police_armory'])stringThe unique shop id.
labelstringShop name in the UI.
coordsvector4Position + heading.
categoriestableIts own category list (same shape as a catalog).
itemstableIts own item list (same shape as a catalog).
bliptableOptional blip (set enabled = false to hide).
markertableOptional marker override.
jobs / minJobGradeOptional job restrictions.
paymentMethodstableOptional payment override.

Catalog vs. custom shop — which to use?

Use a Catalog + Location

When several shops sell the same things (LTD, 24/7, etc.). Edit prices once.

Use a Custom Shop

When a single shop has a unique item list nothing else shares (armory, dealer, etc.).
categories and items use the exact same fields as catalogs — see Catalogs & Items for the field reference.
Custom shops are merged into the live shop list at start, alongside the catalog-based locations. They support jobs, payments and markers just like normal shops.
Copyright © 2026