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

DependencyRequiredPurpose
o-linkYesShared integration layer for character, money, clothing, phone, target, menu, fuel, vehicle keys, notifications, and callbacks
ox_libYesLocale loading, input dialogs, and shared utility support
oxmysqlYesPersistent progression storage
xsoundNo3D 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-link context 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 (default bank) through olink.money.Add(...).
  • Company vehicle destruction fines are taken from the account set in Config.Payment.fineAccount (default cash) through olink.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 (with o-link 1.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.lua for reuse or manual merging.

Documentation