Features Guide

Current behavior reference for oxide-landscapingjob.

Current behavior reference for oxide-landscapingjob.


Shift Flow

A typical shift looks like this:

  1. Walk up to the manager NPC at the landscaping office.
  2. Open the shift menu and clock in.
  3. Get assigned a set of yards — higher-level workers get more yards per shift.
  4. Drive the company van to each yard.
  5. Start the yard, unload the mower, cut all the grass, and pick up any junk lying around.
  6. Return to the office and clock out to get paid.

Each office only has room for a limited number of workers at once (Config.MaxSlotsPerLocation, default 3). If the office is full, players have to wait for a slot to open.


Two menu modes are supported:

  • Config.menuStyle = 'nui': the full custom menu (default)
  • Config.menuStyle = 'menu': a simple text menu for servers that prefer something lightweight

The full menu shows:

  • the player's level, title, and progress toward the next level
  • crew status and a field to invite a partner by their server ID
  • the uniform on/off button (when uniforms are enabled)
  • a nice camera shot of the office while the menu is open (when menuCamera is set on the office)

The simple text menu offers the same core actions — clock in/out, crew invite, and uniform — just without the visuals.


Progression

Progression is stored in job_progression with job = 'landscaping'.

Tracked values:

  • level
  • total completed yards
  • daily streak
  • complaints
  • timeout state

Levels:

LevelTitleRequired YardsMax Yards
1Trainee03
2Groundskeeper124
3Landscaper355
4Senior Landscaper705
5Foreman1306

Each level improves:

  • pay multiplier
  • mower speed multiplier
  • tip chance
  • max yards per shift

Payment

The resource calculates per-yard earnings and then builds a shift payout.

Key factors:

  • base pay
  • yard size multiplier
  • level multiplier
  • speed bonus
  • timer penalty
  • streak bonus
  • random tip
  • gas fee
  • tax
  • van damage deduction

Current money behavior:

  • net shift payout is deposited to Config.Payment.payoutAccount (default 'bank')
  • company vehicle destruction fine is removed from Config.Payment.fineAccount (default 'cash')

The end-of-shift breakdown can be sent through the phone/text flow or shown through the NUI flow depending on Config.shiftSummary.


Vehicles and Mowing

The job uses:

  • a bison3 company van
  • a mower vehicle for yard work

Key behaviors:

  • the mower rides on the van's roof rack until it is unloaded at a yard
  • the van spawns with a full tank and the player automatically gets the keys (both through o-link, so they work with your fuel and key systems)
  • blades toggle with G
  • the mower is slow and sluggish while the blades are down — raise them to drive normally
  • grass is cut by driving the mower over the patches
  • running over obstacles damages the mower's engine

If xsound is installed, mower audio includes:

  • blade toggle
  • mower loop
  • engine failure

Yard System

Each yard has:

  • a center point
  • patch definitions
  • optional obstacle definitions

Yard size tiers are based on patch count:

  • small: 1-50
  • medium: 51-149
  • large: 150+

Players:

  • drive to the yard
  • start it at the marker
  • mow all patches
  • clear remaining obstacles

Assigned yards also get:

  • map blips
  • floating waypoint indicators if enabled

Obstacles

Obstacle interaction is controlled by Config.Obstacles.

Current shipped behavior:

  • useTarget = true by default
  • on-foot pickup uses a progress bar
  • holding H highlights remaining obstacles
  • mower contact causes engine damage

Crews

Crews support up to two players.

Current flow:

  • the leader opens the menu
  • enters a target server ID
  • the server validates range and shift state
  • the invited player can accept or decline

Crew behavior includes:

  • shared yards
  • shared vehicle flow
  • shared completion progress
  • co-op bonus via Config.Crew.coopBonusPercent

The resource also handles crew transfer and cleanup when a member clocks out, unloads, dies, or disconnects.


Uniforms

Uniform support is optional and controlled by Config.uniformsEnabled.

When enabled:

  • players can equip or remove a landscaping uniform while clocked in
  • the resource snapshots current clothing before applying the outfit
  • uniforms revert on normal clock-out
  • uniforms also revert on player unload while on shift

Uniform application and restoration use olink.clothing.


Builder Tooling

The resource ships with an in-game builder for:

  • office creation
  • yard creation
  • patch placement
  • obstacle placement
  • export / import / listing / removal

The visual editor supports:

  • free camera movement
  • patch and obstacle modes
  • model cycling
  • precision rotation and height adjustment
  • undo
  • export of merged session data

Tutorials

The resource ships with a one-time onboarding hint system. Each tutorial fires the first time a player encounters a specific situation: first clock-in, first mower unload, first blades lowered, first obstacle, first yard completion, first timer expiry, first vehicle damage, first mower damage, first level-up, and first crew.

Player commands:

  • /landscapingtutorials — toggle tutorials on/off for the player
  • /landscapingtutorialreset — re-show all tutorials from scratch

Tutorial content is defined in shared/config/tutorials.lua. See CONFIGURATION.md.


Player Keybinds

Default KeyCommandAction
Glandscaping_bladesToggle mower blades while seated in the mower during a shift
H (hold)+landscaping_highlightHighlight remaining obstacles in the active yard; otherwise shows yard waypoints

Both keys are registered through RegisterKeyMapping and can be rebound from the FiveM keybinds menu. Defaults come from Config.Mower.blades.key and Config.Obstacles.highlight.key.


Notifications and Lifecycle

All player-facing UI (notifications, help text, the interaction eye, progress bars, phone messages) goes through o-link, so it automatically matches whatever systems your server already uses.

The job also cleans up after players automatically: if someone switches character or disconnects mid-shift, their shift ends, their yards are freed up for other workers, and any uniform is removed.


Next Steps