Shops

The shop panel, payment methods, defining shops and the world prompt.

Shops open in the right column with a product grid, a basket and a choice of cash or card. A floating world prompt shows where the shop is, with no target script needed.

Shop

24/7 Supermarket: products on the left, the basket and payment on the right

Buying

  • Click a product to add one to the basket, Shift-click to add five, or drag it straight onto a slot to buy it immediately.
  • Switch between the grid and list layout at the top; the choice is remembered per player.
  • Pick Cash or Card under the basket and press CONFIRM PURCHASE.
  • Products that ran out show OUT OF STOCK.

Cash is the money item. Card pays from the framework bank account.

Defining a shop

Shops use the upstream data/shops.lua format, with one extra field, paymentMethods:

data/shops.lua
General = {
    name = 'Shop',
    paymentMethods = { 'cash', 'card' },
    blip = { id = 59, colour = 69, scale = 0.8 },
    inventory = {
        { name = 'burger', price = 10 },
        { name = 'water', price = 10 },
    },
    locations = {
        vec3(25.7, -1347.3, 29.49),
    },
},

A shop without paymentMethods accepts both (shop.defaultPayment). groups, targets, licences and the other upstream fields work as before.

World prompt

Without ox_target, each shop location shows a small card in the world. Walk up to it and press E.

Setting in shop.interaction (data/obsi/interact.lua)DefaultMeaning
enabledtrueBuilt-in world prompt
distance2.0Metres to use the shop
drawDistance8.0Metres the prompt becomes visible
key / keyLabel38 / EControl index and its label

The card is drawn in the player's own Obsi colours (shop.dui); a plain text prompt is the fallback. The Shop world prompt addon switches it off for the whole server.