Skip to main content
Modern Shops emits server events so other resources can react to shop activity, phones, banking, MDTs, tax or loan systems, analytics, without editing the resource. To read shop state on demand, see the Server Exports. Listen for any event with a standard handler:
Every event fires after the change is committed. The event runtime isolates a throwing handler, so a listener that errors never breaks the shop. It does not isolate latency: events are dispatched synchronously, and purchase, sale, deposit and withdraw fire inside a per-player money lock. A slow handler serializes that player’s transactions behind your code, so keep handlers fast and offload heavy work (a timer, a queue, an async call).

lation_shops:purchase

A customer bought items from a shop (fired after payment is taken, items are granted and revenue is credited).
shopRevenue is the intended credit. In the rare event the credit write fails, the purchase still completes and the value reflects intent, not confirmation.

lation_shops:sale

A customer sold items back to a shop (fired after the payout).

lation_shops:ownerChanged

A shop changed hands. Fires on every ownership path, identified by reason.
An abandon or an adminRemove wipes the shop’s staff without a per-employee event; a transfer or an adminAssign keeps them. Re-read the staff list whenever ownerChanged fires.

lation_shops:employeeChanged

A shop’s staff changed, identified by action.
updated is a role or permission change; compensation is a commission change.

lation_shops:balanceChanged

A shop’s balance moved. This is a catch-all: every balance movement emits exactly one event, so it fires alongside the richer events above (for example, a purchase emits both purchase and balanceChanged).
Common reason tags: sale_revenue, sell_payout, deposit, withdraw, stock_order, order_refund, bonus, purchase_reset, and bank for money that moved at the bank rather than in the shop.

lation_shops:orderPlaced

A restock order was placed (manual or auto-restock).

lation_shops:orderPosted

A restock order was handed to a delivery system (Config → Orders → Delivery system) instead of the timer.

lation_shops:orderClaimed

A driver took the trucking job for a restock order; the order is in transit.

lation_shops:orderCancelled

A pending restock order was cancelled (by staff, by an abandon or repossession, or by a delivery system that gave up) and the shop refunded at the order-cancel rate.

lation_shops:orderDelivered

A restock order was delivered and its stock applied.

lation_shops:shopUpdated

An admin saved the shop, or its owner renamed it.

lation_shops:shopDeleted

An admin deleted the shop. Its rows are already gone.
Want an event we don’t emit yet? Contact us and we’ll do what we can!