Oxide Vending
Complete vending machine business system for FiveM servers using o-link.
Oxide Vending is a vending machine business system for FiveM servers. Players register a business, purchase machine types they have unlocked, place them in the world, stock them from inventory or warehouse storage, and manage revenue and progression through the built-in dashboard and menu flows.
o-link handles the framework-facing integrations used by the resource:
- Player identity and lifecycle
- Inventory access and item metadata
- Money operations
- Target interactions
- Notifications
- Menu, input, progress bar, and helptext UI
Key Features
- Business Ownership: Register vending businesses, manage employees, and control permissions.
- Machine Variety: Four packaged machine categories with different slots, capacities, prices, and prop models.
- World Placement: Two-step placement flow with distance checks, blocked zones, and rotation controls.
- Built-in Business Balance: Revenue stays inside the resource's business balance system rather than depending on an external banking integration.
- NPC Sales Simulation: Passive income based on time, location, pricing, stock variety, and competition.
- 10-Level Progression: Dual XP and revenue progression with machine unlocks, employee caps, pricing range changes, wholesale discounts, and NPC revenue boosts.
- Warehouse and Pickup Flow: Wholesale ordering, pickup boxes, and instanced warehouse storage.
- Management Dashboard: Overview, stock, map, transaction, and analytics views.
Requirements
| Resource | Purpose |
|---|---|
ox_lib | Shared library, locale loading, callbacks, and utility helpers |
oxmysql | Database driver |
o-link | Framework and system abstraction used by the resource |
Optional Resource
| Resource | Purpose |
|---|---|
oxide-weather | Supplies in-game hour data to NPC sales. If it is not running, Oxide Vending falls back to real server time |
Quick Start
exports["oxide-vending"]:OpenDashboard()
local stats = exports["oxide-vending"]:GetBusinessStats(businessId)
local level = exports["oxide-vending"]:GetBusinessLevel(businessId)