Progression
Current 10-level business progression system for Oxide Vending.
Overview
Businesses level up only when they satisfy both:
- The XP threshold
- The lifetime revenue milestone
The system is controlled by Config.Progression in config/progression.lua.
Level Table
| Lvl | Name | XP | Revenue | Max Machines | Max Employees | Unlocks | Price Range | Wholesale | NPC Boost |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Newcomer | 0 | 0 | 3 | 1 | drinks | 0.90x - 1.5x | 0% | 0% |
| 2 | Vendor | 500 | 5000 | 4 | 2 | drinks, snacks | 0.85x - 1.8x | 2% | 5% |
| 3 | Supplier | 1500 | 15000 | 5 | 2 | drinks, snacks | 0.85x - 2.0x | 4% | 8% |
| 4 | Distributor | 3500 | 35000 | 6 | 3 | drinks, snacks, general | 0.80x - 2.2x | 6% | 12% |
| 5 | Merchant | 6500 | 65000 | 7 | 3 | drinks, snacks, general | 0.80x - 2.4x | 8% | 15% |
| 6 | Retailer | 11000 | 110000 | 8 | 4 | drinks, snacks, general, electronics | 0.80x - 2.6x | 10% | 18% |
| 7 | Entrepreneur | 18000 | 180000 | 9 | 4 | All current types | 0.80x - 2.8x | 12% | 22% |
| 8 | Tycoon | 28000 | 280000 | 10 | 5 | All current types | 0.80x - 3.0x | 14% | 25% |
| 9 | Mogul | 42000 | 420000 | 12 | 6 | All current types | 0.80x - 3.0x | 16% | 28% |
| 10 | Vending King | 60000 | 600000 | 15 | 8 | All current types | 0.75x - 3.0x | 20% | 35% |
XP Sources
Sales
| Source | Formula |
|---|---|
| Player sale | 10 + (saleAmount * 0.1) |
| NPC sale | 5 + (saleAmount * 0.1) |
Operations
| Source | Formula |
|---|---|
| Stock items | 3 + (quantity * 0.5) |
| Collect revenue | 5 + (amount * 0.02) |
| Wholesale order | 15 |
| Repair machine | 20 |
| Place machine | 100 |
| Hire employee | 50 |
fireEmployee and removeMachine default to 0 XP.
Daily Bonus
The daily bonus uses UTC date comparison in the current implementation.
Defaults:
dailyLoginBase = 25dailyStreakBonus = 5dailyStreakMax = 7
Effective streak payout:
| Streak Day | Total XP |
|---|---|
| 1 | 30 |
| 2 | 35 |
| 3 | 40 |
| 4 | 45 |
| 5 | 50 |
| 6 | 55 |
| 7+ | 60 |
If a day is missed, the streak resets to 1.
Milestones
Milestones are one-time XP rewards stored in vending_milestones.
Revenue Milestones
1000->100 XP10000->250 XP50000->500 XP100000->1000 XP500000->2500 XP1000000->5000 XP
Sales Milestones
100->150 XP500->400 XP1000->800 XP5000->1500 XP
Machine Milestones
3->150 XP5->300 XP10->600 XP
Employee Milestones
1->100 XP5->250 XP
Runtime Behavior
When a business gains XP or tracked revenue:
- The cache is updated first
- The database row is updated
- The level is recalculated
- Milestone rewards are checked where applicable
- The owner receives notifications and level-up effects if online
The owner level-up flow triggers:
- A success notification
- The
oxide-vending:client:levelUpclient event
Dashboard Integration
The dashboard progression panel displays:
- Level and level name
- Current XP
- Lifetime revenue
- Next-level thresholds
- Reward summary
- Daily bonus availability
Admin Tools
Useful progression commands:
/vendingsetlevel <businessId> <level>/vendingdebug progression status/vendingdebug progression init/vendingdebug progression create <businessId>/vendingdebug daily [businessId]
Exports
Current progression exports:
GetBusinessLevel(businessId)GetBusinessProgression(businessId)AddXP(businessId, amount, source, notifySource)AddRevenue(businessId, amount)GetMaxMachines(businessId)GetMaxEmployees(businessId)IsMachineTypeUnlocked(businessId, machineType)IsWarehouseUnlocked(businessId)GetPricingRange(businessId, itemName)GetWholesaleDiscount(businessId)GetNPCRevenueBoost(businessId)CreateProgressionRecord(businessId)ClaimDailyBonus(source, businessId)
Disabling Progression
If Config.Progression.Enabled = false:
- Machine type checks return unlocked
- Machine and employee caps fall back to
Config.Business - Pricing falls back to
Config.Pricing - Warehouse unlock checks return
true - XP and level tracking stop