Features

Overview of Oxide Vending features including multi-framework support, business management, machine types, and revenue systems.

Framework Support

oxide-vending supports multiple FiveM frameworks through its bridge system:

  • QBCore - Full support with native QBCore resources
  • QBx (Qbox) - Full support with ox_target and ox_inventory
  • ESX - Full support with ox_target, optional ox_inventory
  • Standalone - No framework required, uses ox_inventory and ox_target with configurable money/inventory functions

The framework is auto-detected at startup. See Installation for setup details.


Business System

Business Registration

Players can register a vending machine business through the NPC showroom:

  • Pay a one-time registration fee (default: $5,000)
  • Choose a unique business name
  • One business per player (configurable)
  • Business automatically creates a progression record

Employee Management

Hire employees to help manage your business:

Permission LevelCapabilities
ownerAll permissions (manage, stock, collect, place, remove, hire, fire, pricing, withdraw, deposit, view_balance)
manageStock items, collect revenue, place/remove machines, adjust pricing, deposit, view balance
collectCollect revenue, view balance
stockStock items only

Employee limits are determined by business level (see Progression).


Machine System

Machine Types

Four machine types with different characteristics:

TypePriceSlotsCapacityDescription
drinks$15,000850/slotBeverages and drinks
snacks$12,000640/slotFood and snacks
general$20,0001230/slotVarious items
electronics$35,000620/slotPhones and electronics

Machine type availability is unlocked through the progression system.

Machine Placement

Interactive placement system with:

  • Preview ghost model
  • Mouse rotation controls
  • Distance limits from player
  • Minimum distance between machines
  • Blocked zone support
  • Collision detection

Machine Status

Machines can have three statuses:

StatusDescription
activeFully operational, can sell items
inactiveManually disabled by owner
brokenDurability reached 0, requires repair

Durability System

Machines degrade over time based on sales:

  • Player sales: 0.5 durability per sale (configurable)
  • NPC sales: 0.3 durability per sale (configurable)
  • Warning notification at 20% durability
  • Machine breaks at 0% durability
  • Repair costs vary by machine type

Inventory System

Stocking Items

Stock items into machines from your inventory:

  • Item whitelist per machine type
  • Maximum capacity per slot
  • Price setting within allowed range

Price Constraints

Item prices must fall within markup limits:

Minimum Price = Base Price × MinMarkup (0.8x default)
Maximum Price = Base Price × MaxMarkup (3.0x default)
Default Price = Base Price × DefaultMarkup (1.5x default)

Pricing range improves with business level.

Wholesale Ordering

Bulk purchase items at discounted rates:

  • 20% markup on wholesale orders (configurable)
  • Minimum order quantities per item
  • Delivery to warehouse or pickup location
  • Delivery delay (default: 5 minutes)
  • Wholesale discount improves with level

Revenue System

Sales Processing

When a customer purchases an item:

  1. Item is removed from machine stock
  2. Revenue is added to machine balance
  3. Transaction is logged
  4. Machine durability decreases
  5. Business XP is awarded

Revenue Collection

Collect accumulated revenue from machines:

  • Requires collect permission
  • Revenue stored per-machine
  • Transfers to business bank account (or owner's bank)

Banking Integration

With oxide-banking installed:

  • Separate business account created automatically
  • Account name: vending-{business_id}
  • Supports deposits, withdrawals, balance viewing

Without oxide-banking:

  • Revenue goes directly to owner's bank account
  • Owner must be online for some operations

NPC Sales Simulation

Server-side passive income generation. See NPC Sales for details.

Key features:

  • Configurable tick interval (default: 60 seconds)
  • Time of day multipliers
  • Location-based hotzones
  • Machine type modifiers
  • Price competitiveness affects sales
  • Competition system between nearby machines

Progression System

10-level business progression. See Progression for details.

Key features:

  • Dual requirement: XP threshold AND revenue milestone
  • XP earned from sales, stocking, collecting
  • Daily bonus with streak multiplier
  • One-time milestone bonuses
  • Level rewards unlock features and improve limits

Warehouse System

Physical warehouse for bulk storage:

  • Purchasable at level 3+ (default)
  • 4-digit access code
  • Separate routing bucket per business
  • Transfer items between warehouse and machines
  • Maximum capacity: 5,000 items (configurable)

Dashboard (NUI)

Full-featured management dashboard:

Opening the Dashboard

  • Command: /vendingdashboard or /vdb
  • Event: TriggerEvent('oxide-vending:client:openDashboard')
  • Export: exports['oxide-vending']:OpenDashboard()

Dashboard Tabs

TabFeatures
OverviewStats cards, quick actions, recent activity, progression display
StockMachine stock management, wholesale ordering, price updates, warehouse inventory
MapInteractive GTA V map with machine markers, zoom/pan controls
TransactionsSearchable, filterable transaction history with pagination
AnalyticsRevenue charts with period selection (7d, 30d, 90d), market competition analysis

Auto-Refresh

Dashboard data auto-refreshes every 45 seconds while open.


Pickup Location

Physical location for wholesale order collection:

  • Pallet with stacked boxes
  • Each order creates a collectible box
  • Progress bar during pickup
  • Items go to player inventory or warehouse inventory

Rate Limiting and Anti-Abuse

All player actions are rate-limited with configurable cooldowns and window-based limits to prevent exploitation. Actions include purchases, stocking, collecting, placement, pricing, and more.


Transaction Pruning

Automatic cleanup of old transaction records based on configurable retention period (default 90 days). Runs periodically and optionally on resource startup.


Showroom

NPC showroom for purchasing machines:

  • Blip on map (configurable)
  • NPC vendor with clipboard scenario
  • View available machine types
  • Purchase machines (stored in owned_machines)