Back to Community Apps
Portis Delivery — Phone-Based Courier App
by Portis


1 / 4
Give your players a fully immersive courier job, built entirely around their in-game phone. No job menus, no NPCs — just open the app and start delivering.
:sparkles: Features
- 🗂️ 5 Order Types — Package, Food, Market, Special Cargo, VIP. Each with unique props, time limits, and base prices.
- 🏆 Progression System — 25 levels with XP rewards, streak bonuses, and unlockable order types as players advance.
- ⏱️ Time Bonus System — Early delivery gives +30% payment. Late delivery applies a penalty. Auto-cancel after 2× time limit.
- 📊 Weekly Leaderboard — Top couriers ranked by deliveries, earnings, and speed. Resets every Monday automatically.
- 🌍 Zone System — 5 delivery zones (Starter → Full Map) that unlock with player level and apply price multipliers.
- 🎒 Animated Props — Order-type-specific hand props with carry animations and seamless vehicle transitions.
- 🔔 Discord Webhook Logs — Delivery complete, level up, cancel, and leaderboard reset events. Per-event toggle.
- 🔒 Server-Side Validation — All critical actions validated server-side with position checks, rate limiting, and anti-exploit logic.
- 🌐 Multi-Framework — ESX, QBCore, QBox with auto-detection. Cash or bank payment.
- 🌍 Fully Localizable — All UI and in-game text driven from a single
locales/en.jsonfile. - ⚡ Optimized — Resmon 0.00ms idle. Built with ox_lib zones, callbacks, and progress circles.
🛠️ Configuration
Everything is configured through config.lua :
- Phone/framework selection (auto or manual)
- Order types, prices, time limits, XP values
- Pickup & delivery locations (vector3 coords)
- Zone system with price multipliers
- Rate limits, cancel cooldown, level curve
- Discord webhook
:package: Installation (Quick)
🛠️ Installation (Quick)
1. Extract portis-delivery into your resources folder
2. Add to server.cfg:
ensure portis-delivery
3. Import the database:
portis-delivery/sql/install.sql
4. Restart your server — that's it.