Features Guide

Current behavior reference for oxide-landscapingjob.

Shift Flow

The resource uses these shift states:

  • idle
  • clocked_in
  • driving_to_yard
  • mowing
  • returning_to_office

Typical shift flow:

  1. Interact with the manager NPC at a configured office.
  2. Open the shift menu.
  3. Clock in.
  4. Receive assigned yards based on your progression level.
  5. Drive the company van to each yard.
  6. Start the yard, unload the mower, mow patches, and clear obstacles.
  7. Return to the office and clock out for payout.

The resource checks office slot availability with Config.MaxSlotsPerLocation.

Two menu modes are supported:

  • Config.menuStyle = "nui": default Vue-based fullscreen shift menu
  • Config.menuStyle = "menu": o-link context menu fallback

The NUI menu supports:

  • progression summary
  • next-level preview
  • crew state display
  • uniform toggle
  • ID-based crew invites
  • per-location menu camera when menuCamera is configured on the office

The context menu mode exposes the same core actions through olink.menu.Open(...).

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 bank
  • company vehicle destruction fine is removed from 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 is cosmetically attached to the van before unloading
  • the van gets full fuel through olink.fuel.SetFuel(...)
  • keys are issued through olink.vehiclekey.Give(...)
  • blades toggle with G
  • mowing speed and power are reduced while blades are down
  • patches are detected by proximity to the mower
  • obstacle hits damage the mower

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

Notifications and Lifecycle

This resource uses o-link lifecycle and UI integrations for:

  • olink:client:playerReady
  • olink:client:playerUnload
  • olink:server:playerUnload
  • notifications
  • help text
  • targets
  • progress bars
  • phone/email messages

That is the current supported integration path for the landscaping job.