Configuration Guide

Reference for the current oxide-landscapingjob config surface.

Config File Map

FilePurpose
shared/config.luaCore toggles
shared/config/job.luaProgression, pay, timer, crew, complaints
shared/config/vehicles.luaVan, mower, blades, damage, audio, particles
shared/config/mowing.luaGrass models, obstacle models, interaction, animations
shared/config/visuals.luaNPC, blips, markers, waypoints, yard editor
shared/config/locations.luaOffice locations and shipped yard data
shared/config/outfits.luaOptional uniforms
shared/config/tutorials.luaTutorial text and onboarding toggles

Core Settings

shared/config.lua

SettingDefaultDescription
Config.DebugfalseEnables debug logging via LandscapingDebug(...)
Config.usePhonetrueUses the phone/email flow for text-based shift messaging
Config.shiftSummary"text"End-of-shift summary mode: "text" or "nui"
Config.menuStyle"nui"Manager menu mode: "nui" or "menu"
Config.MaxSlotsPerLocation3Max concurrent workers per office
Config.Debug = false
Config.usePhone = true
Config.shiftSummary = 'text'
Config.menuStyle = 'nui'
Config.MaxSlotsPerLocation = 3

Crew Settings

shared/config/job.lua

SettingDefault
Config.Crew.maxSize2
Config.Crew.inviteRange15.0
Config.Crew.inviteTimeout30
Config.Crew.coopBonusPercent0.15

Notes:

  • Crew invites are ID-based in the current UI flow.
  • The server still enforces inviteRange when validating the invite.

Payment Settings

shared/config/job.lua

SettingDefault
Config.Payment.basePayPerYard75
Config.Payment.speedBonusAmount30
Config.Payment.speedBonusTimePercent0.60
Config.Payment.vehicleDestroyFine100
Config.Payment.streakBonusPerDay10
Config.Payment.maxStreakDays7
Config.Payment.gasFeePercent0.05
Config.Payment.taxPercent0.10

Runtime behavior:

  • completed shift payouts are deposited to bank
  • van-destruction fines are removed from cash

Level Definitions

shared/config/job.lua

LevelTitle KeyRequired YardsMax YardsPay MultiplierMower SpeedTip ChanceTip Range
1level.trainee031.0x1.0x10%$5-$15
2level.groundskeeper1241.1x1.1x15%$5-$20
3level.landscaper3551.2x1.2x25%$10-$30
4level.senior_landscaper7051.35x1.35x30%$10-$40
5level.foreman13061.5x1.5x40%$15-$50

The resource stores localized title keys in config and resolves them at runtime.

Yard Tiers and Timer

shared/config/job.lua

Tier thresholds:

SettingDefault
Config.YardTiers.smallMax50
Config.YardTiers.mediumMax149

Tier multipliers are defined in shared/init.lua:

  • small: 1.0
  • medium: 1.5
  • large: 2.0

Timer settings:

SettingDefault
Config.Timer.baseTime120
Config.Timer.timePerPatch5
Config.Timer.expiredPenalty0.85

Complaint Settings

shared/config/job.lua

SettingDefault
Config.Complaints.maxComplaints3
Config.Complaints.timeoutMinutes30
Config.Complaints.vehicleDestroyPenalty1
Config.Complaints.deathPenalty1
Config.Complaints.decayPerYard1

Vehicle Settings

shared/config/vehicles.lua

Company Vehicle

SettingDefault
Config.Rumpo.model'bison3'
Config.Rumpo.primaryColor{ 255, 255, 255 }
Config.Rumpo.secondaryColor{ 255, 255, 255 }
Config.Rumpo.plate'LAWN'
Config.Rumpo.healthCheckInterval1000
Config.Rumpo.destroyedThreshold150
Config.Rumpo.damageChargeRate0.50
Config.Rumpo.damageChargeThreshold950

Config.Rumpo.mowerAttach controls the cosmetic mower position on the van.

Mower

SettingDefault
Config.Mower.model'mower'
Config.Mower.spawnOffsetBehind1.5
Config.Mower.healthCheckInterval1000
Config.Mower.destroyedThreshold150
Config.Mower.repairHealth800
Config.Mower.showOpenHoodfalse
Config.Mower.allowFinishYardOnBreakdowntrue

When allowFinishYardOnBreakdown = true, the current yard can be resumed after repair. The breakdown still counts toward complaint handling.

Blade Settings

SettingDefault
Config.Mower.blades.key'G'
Config.Mower.blades.baseMowingSpeed3.0
Config.Mower.blades.basePowerMultiplier0.3
Config.Mower.blades.normalMaxSpeed15.0
Config.Mower.blades.normalPowerMultiplier1.0

Blade Audio

xsound-backed audio settings:

  • toggle = 'lower_mechanical_whirr.ogg'
  • mowerLoop = 'lawn_mower_engine_loop.ogg'
  • engineFail = 'engine_fail.ogg'
  • toggleVolume = 0.2
  • loopVolume = 0.3
  • engineFailVolume = 0.4
  • distance = 30

Mowing and Obstacles

shared/config/mowing.lua

Grass Props

Config.GrassProps contains the valid patch models used by the shipped yards and the yard editor.

Obstacle Props

Config.ObstacleProps contains the valid obstacle models used by the shipped yards and the yard editor.

Obstacle Settings

SettingDefault
Config.Obstacles.detectionRadius2.0
Config.Obstacles.damagePerHit350
Config.Obstacles.pickupRadius5.0
Config.Obstacles.useTargettrue
Config.Obstacles.highlight.key'H'

Mowing Detection

SettingDefault
Config.Mowing.detectionRadius2.0
Config.Mowing.fadeSteps17
Config.Mowing.fadeStepInterval60
Config.Mowing.mowerCheckInterval100

Animations

Configured actions:

  • unload mower
  • load mower
  • repair mower
  • pick up obstacle

Animation labels are locale keys, not hardcoded strings.

Visual Settings

shared/config/visuals.lua

NPC

SettingDefault
Config.NpcModel's_m_y_construct_01'
Config.NpcScenario'WORLD_HUMAN_CLIPBOARD'

Office Blip

SettingDefault
Config.Blip.sprite616
Config.Blip.color2
Config.Blip.scale0.6
Config.Blip.labelblip.landscaping_office

Yard Blip

SettingDefault
Config.YardBlip.sprite496
Config.YardBlip.color2
Config.YardBlip.scale0.7

Yard Marker

SettingDefault
Config.YardMarker.type25
Config.YardMarker.approachDistance30.0
Config.YardMarker.interactDistance5.0

Floating Waypoints

SettingDefault
Config.Waypoints.enabledtrue
Config.Waypoints.heightOffset5.0
Config.Waypoints.updateInterval0
Config.Waypoints.scaleMin0.5
Config.Waypoints.scaleMax1.0
Config.Waypoints.scaleNearDist30.0
Config.Waypoints.scaleFarDist300.0

Yard Editor

SettingDefault
Config.YardEditor.ghostAlpha150
Config.YardEditor.mouseSensitivity3.0
Config.YardEditor.headingSensitivity2.0
Config.YardEditor.zStep0.01
Config.YardEditor.raycastDistance100.0
Config.YardEditor.defaultSpeed0.5
Config.YardEditor.maxSpeed5.0
Config.YardEditor.minSpeed0.05
Config.YardEditor.speedStep0.25

Locations and Menu Camera

shared/config/locations.lua

Each office entry includes:

  • name
  • coords
  • heading
  • vehicleSpawn
  • optional menuCamera

menuCamera is used only by the NUI menu flow and contains:

  • coords
  • heading
  • fov

Yards contain:

  • name
  • coords
  • patches
  • optional obstacles

Uniforms

shared/config/outfits.lua

SettingDefaultDescription
Config.uniformsEnabledtrueEnables the uniform toggle in the menu and the server uniform callbacks

The file also defines:

  • Config.LandscapingOutfitMale
  • Config.LandscapingOutfitFemale

These outfits are applied through olink.clothing.

Notes on Builder Exports

The builder writes merged yard/location data to exported_locations.lua in the resource folder. That output is useful as an export artifact and source-of-truth snapshot for your edits.

The shipped runtime yard data lives in shared/config/locations.lua, so review how you want to manage exported builder output in your own workflow before assuming exports are automatically consumed.