WENTUS

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.

  • Seed menu defines initial products and prices.
  • Managers can edit prices within 75%-125% of seed price.
  • menuCatalog defines 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 READY state.

Courier Delivery

Accepting Orders

  • Couriers see available orders in the phone app.
  • Must have the configured job role (Config.CourierJobs).
  • Limited to MaxConcurrentDeliveries at once.

Pickup & Delivery

  1. Courier travels to store location.
  2. Picks up order within PickupDistance.
  3. Travels to customer location.
  4. 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:

  1. Staff member accesses onboarding.
  2. Enters store details (name, location, menu).
  3. Store is created with default settings.
  4. Manager can then customize via app.

Requires Config.MerchantOnboarding.Enabled = true.


Cash on Delivery (COD)

When enabled:

  1. Customer selects COD payment.
  2. Courier collects cash on delivery.
  3. 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.