Features Guide
Current behavior reference for oxide-landscapingjob.
Current behavior reference for oxide-landscapingjob.
Shift Flow
A typical shift looks like this:
- Walk up to the manager NPC at the landscaping office.
- Open the shift menu and clock in.
- Get assigned a set of yards — higher-level workers get more yards per shift.
- Drive the company van to each yard.
- Start the yard, unload the mower, cut all the grass, and pick up any junk lying around.
- 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.
Menu System
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
menuCamerais 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:
| Level | Title | Required Yards | Max Yards |
|---|---|---|---|
| 1 | Trainee | 0 | 3 |
| 2 | Groundskeeper | 12 | 4 |
| 3 | Landscaper | 35 | 5 |
| 4 | Senior Landscaper | 70 | 5 |
| 5 | Foreman | 130 | 6 |
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
bison3company van - a
mowervehicle 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 = trueby default- on-foot pickup uses a progress bar
- holding
Hhighlights 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 Key | Command | Action |
|---|---|---|
G | landscaping_blades | Toggle mower blades while seated in the mower during a shift |
H (hold) | +landscaping_highlight | Highlight 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.