Oxide Landscaping
Landscaping job system for FiveM servers.
Overview
oxide-landscapingjob is a landscaping gig job. Players clock in at a landscaping office, receive a company vehicle and a set of assigned yards, then complete those yards by unloading a mower, cutting grass patches, clearing obstacles, and returning to the office for payout.
The current resource is built around o-link for framework-facing integrations, uses oxmysql for persistent progression data, and optionally uses xsound for 3D mower audio.
Technical
| Dependency | Required | Purpose |
|---|---|---|
o-link | Yes | Shared integration layer for character, money, clothing, phone, target, menu, fuel, vehicle keys, notifications, and callbacks |
ox_lib | Yes | Locale loading, input dialogs, and shared utility support |
oxmysql | Yes | Persistent progression storage |
xsound | No | 3D mower audio; the job still works without it |
Database: Unified job_progression table with one row per char_id and job, where this resource stores progression under the landscaping job key. Pay owed to a player who disconnects or logs out on shift waits in the shared job_pending_payouts table, created automatically on first start, and is paid at their next login.
Frontend: Vue 3 + Vite + Tailwind CSS for the default shift menu and in-shift HUD overlay.
Features
- 5-level progression with persistent yard count, streaks, complaints, and timeout state
- Company van plus ride-on mower workflow with loading, unloading, repair, and breakdown handling
- Yard timers, size tiers, speed bonuses, streak bonuses, tips, taxes, gas fees, and vehicle damage deductions
- Two-player crews with shared yards, shared vehicle flow, and an ID-based invite system, each member paid on their own level with a co-op bonus
- Configurable default NUI shift menu or
o-linkcontext menu fallback - Optional work uniforms with automatic reversion on clock-out and character unload
- In-game yard builder with export, import, listing, and removal commands
Current Runtime Notes
- Shift payouts are deposited to the account set in
Config.Payment.payoutAccount(defaultbank) througholink.money.Add(...). - Company vehicle destruction fines are taken from the account set in
Config.Payment.fineAccount(defaultcash) througholink.money.Remove(...). - When
Config.usePhone = true, shift messages and the end-of-shift pay summary go to the player's phone as texts on phones that support them (witho-link1.11.0 or newer) and as mail on the rest. On Oxide Phone, the Gigs app shows the offices, the player's shift and their level, and receives shift messages as Gigs notifications; the pay summary always arrives as a text or mail. See Phone Shift Messages. - The builder exports merged yard and location data to
exported_locations.luafor reuse or manual merging.
Documentation
Installation
Setup flow and verification.
Features
Shift flow, mowing, crews, and more.
Configuration
How settings work, the /landscaping settings editor, and every default.
Yard Building
In-game builder workflow.
Admin Commands
Settings editor, builder commands, and permissions.
API Reference
Server exports for other resources: IsOnShift, GetSetting, SetSetting, GetInfo, GetShift, GetProgression, SetUpdateHandler.
Troubleshooting
Common issues and fixes.