Features
Detailed feature overview of Los Santos Eats.
Order Lifecycle
Orders follow a state machine:
PLACED → PREPARING → READY → COURIER_SEARCH → ACCEPTED → PICKED_UP → EN_ROUTE → DELIVERED
- Cancel is available from any non-terminal state.
- If no courier is found within
CourierSearchTimeout, the order is auto-cancelled and refunded. - If a courier drops the order, it returns to
COURIER_SEARCH.
Store Management
Store Registry
Stores are defined in Config.Stores and persisted in eats_stores.metadata. Runtime changes (delivery fee, enabled state) are saved via the phone app.
Menu Management
- Seed menu defines initial products and prices.
- Managers can edit prices within 75%-125% of seed price.
menuCatalogdefines approved products for adding to menu.- Max items and price change percent configurable per-store.
Store States
- Open/Closed — Toggle via phone app.
- Auto-ready — Orders skip to
READYstate.
Courier Delivery
Accepting Orders
- Couriers see available orders in the phone app.
- Must have the configured job role (
Config.CourierJobs). - Limited to
MaxConcurrentDeliveriesat once.
Pickup & Delivery
- Courier travels to store location.
- Picks up order within
PickupDistance. - Travels to customer location.
- Delivers within
DropoffDistance.
Delivery Modes
- Direct — Food auto-added to customer inventory on delivery.
- Courier — Courier receives food at pickup, hands over manually (RP mode).
Venue Self-Delivery
When enabled, venue staff can deliver their own orders if no courier accepts.
Payment System
Payment Methods
- Cash — Deducted from player cash.
- Bank — Deducted from player bank account.
- Card — Via tgg-banking card charge.
- Society — Deducted from society account (requires minimum grade).
Society Payments
Revenue goes to the store's society account. Supports:
- Renewed-Banking
- tgg-banking
- qb-banking / qb-management
- okokBanking
- codem-bank
Refunds
- Auto-refund on order cancellation.
- Refund method matches payment method.
- COD orders refunded via
Payouts.pay.
Promotions
Store managers can create promotions:
- Percentage discount — Up to
MaxPromoPercent(default: 30%). - Flat discount — Up to
MaxPromoFlat(default: $500). - Promotions apply to order total before delivery fee.
Customer Features
Favorites
- Save preferred stores for quick access.
- Stored per-player in database.
Addresses
- Save delivery addresses.
- Named locations for easy selection.
Reviews
- Rate stores after delivery.
- Stored in database.
Phone Apps
npwd
- External app API integration.
- React-based UI with hot-reload support.
lb-phone
- Custom app integration.
- Vue.js-based UI.
qb-phone
- iframe-based UI integration.
- Patches qb-phone to host the app.
Merchant Onboarding
Staff can create new stores through the phone app:
- Staff member accesses onboarding.
- Enters store details (name, location, menu).
- Store is created with default settings.
- Manager can then customize via app.
Requires Config.MerchantOnboarding.Enabled = true.
Cash on Delivery (COD)
When enabled:
- Customer selects COD payment.
- Courier collects cash on delivery.
- Courier deposits cash to society account.
Validated server-side to prevent exploitation.
Security
- All prices validated server-side.
- Items verified against inventory.
- Permissions checked on every action.
- Rate limiting on courier search and venue accept.
- Max item price and menu size caps.