Player Owned Vending
19.99 USD
Description
🥤 Elixir Player Owned Vending Machines | v2.0 | QBCore · QBox · ESX
Not another vending script. Players buy a machine, place it, stock it, hire staff, defend it from thieves — and actually have to make it profitable. AI customers keep it earning while they're offline.
▶️ Showcase | 📖 Documentation | 💬 Discord Support
⭐ What makes it different
- 🤖 AI Customers — NPCs walk up, buy items and pay the owner. Machines earn passively, even with nobody around. The sale is processed server-side before the NPC is even rendered, so it can't be exploited.
- 👔 AI Employees — Hire NPC staff who restock, clean and pay the power bill for a salary. They have moods: underpay them and they'll demand raises, slack off, skim cash from the machine, or quit on you.
- 🕵️ Crime & Defence — Tamper to cut the power, then rob it. Requires police online. Owners repair with items — or buy the Security upgrade and the machine electrocutes thieves.
- 📊 Real Profit Accounting — A chart that counts everything: upgrades, wages, supply, electricity, repairs and theft losses. Not just revenue — actual profit.
- 💰 Economy Protection — Per-machine earnings caps, payout limits on theft, and dirty-money support. Vending stays a business, not a money printer.
🎮 Full features
Core
- Place, name, stock, price and carry machines — with a cinematic move (walk over → pick up → carry → set down)
- Cash or bank payment · buy by quantity · per-machine custom pricing
- Public map blips with a per-machine hide/show toggle
- Searchable item pickers everywhere — no typing spawn names
Economy
- Tax · employee commission · happy-hour discounts
- Dynamic supply & demand pricing (optional)
- Per-cycle earnings cap to protect your server's economy
/vendingcollect— gather cash from every machine at once
Maintenance & upgrades
- Machines get dirty — dirty machines pay more tax, drain power faster, and turn customers away
- Cleaning is a scripted routine around the machine
- 4 upgrade tracks: Capacity · Power Efficiency · Cleanliness Retention · Security
Crime
- Tampering and robbery, optionally chained (cut the power first — a planned job, not a smash-and-grab)
- Police requirement across all three frameworks · dispatch alerts (rate-limited)
- Payout caps, cooldowns, and an in-progress lock so two players can't rob the same machine
- Repair with items, via progress bar or minigame
Owner tools
- Profit/loss analytics chart · receipts (on-screen + a readable item) · per-machine sales log
- Transfer or sell machines to other players · recruit employees
- Stock rules — whitelist/blacklist what can be sold, from config or live in-game
- Leaderboard · low-stock alerts · Discord webhook logging
- One tidy command:
/vendingopens a role-aware menu — owners, employees and admins each see only what applies to them
🧰 Compatibility
- Frameworks: QBCore · QBox (qbx_core) · ESX — auto-detected, one build, no separate versions
- Inventories: ox_inventory · qb-inventory · qs-inventory · codem · ESX inventories
- Targets: ox_target · qb-target · qtarget — or keyless textui / 3dtext modes
- Dispatch: ps-dispatch · cd_dispatch · qs-dispatch · core_dispatch · rcore_dispatch · linden_outlawalert
Dependencies
- Required: ox_lib · oxmysql · a framework (QBCore / QBox / ESX) · an inventory
- Optional: a target system (only for target mode) · a dispatch script
⚡ Performance
- ~0.01ms idle. State is pushed on change instead of polled, NPCs are proximity-gated and capped, and the machine list is served from memory — no database hit per request.
🔓 Escrow — what you can edit
Escrow-protected, but everything you'd reasonably change is open:
config.lua— every setting, price and togglelocales.lua— all wording / translationsbridge/server.lua+bridge/client.lua— framework & inventory adapters (add your own)bridge/dispatch.lua— dispatch adapter (add your own)server/logs.lua— Discord webhook embedsclient/open_client.lua+server/open_server.lua— progressbar / notify / drawtext wrappers
Only the core logic (client/prop.lua, server/main.lua) is encrypted. Even every animation is configurable — you never need protected code to configure, translate, re-skin, or add support for your framework, inventory or dispatch.