Admin Commands Reference

Complete guide to administrative commands for oxide-landscapingjob.

Command Overview

CommandDescriptionPermission
/mowerlocationCreate a landscaping office at your positionadmin.landscapingjob
/mowervehicleSet vehicle spawn for current locationadmin.landscapingjob
/moweryardStart a new yard definition and open visual editoradmin.landscapingjob
/mowerpatchOpen grass model picker dialogadmin.landscapingjob
/mowerundoRemove the last added patch from current yardadmin.landscapingjob
/mowerfinishyardFinish current yard and save itadmin.landscapingjob
/mowerexportExport all locations and yards to file (auto-merges existing data)admin.landscapingjob
/mowercancelCancel current in-progress setupadmin.landscapingjob
/mowerimportLoad existing config locations and yards into sessionadmin.landscapingjob
/mowerlistShow all locations and yards in current sessionadmin.landscapingjob
/mowerremoveyardRemove a yard from the session by nameadmin.landscapingjob

Coordinate Builder

The coordinate builder is a set of server commands for capturing world positions and building yard definitions.

Location Commands

/mowerlocation

Create a new landscaping office at your current position.

Usage:

/mowerlocation <name>

Parameters:

ParameterTypeRequiredDescription
namestringYesDisplay name for the office location

Examples:

/mowerlocation Downtown Office
/mowerlocation Sandy Shores Branch

Output:

  • Chat: "Location 'Downtown Office' created at X, Y, Z (heading H). Use /mowervehicle to set vehicle spawn."

Notes:

  • Captures your exact position and heading
  • You must run /mowervehicle next to set the van spawn point
  • The location is not saved until the vehicle spawn is set

/mowervehicle

Set the vehicle spawn point for the current location setup.

Usage:

/mowervehicle

Parameters: None

Behavior:

  • Captures your current position and heading as the van spawn point
  • Auto-saves the location with both the NPC and vehicle positions

Output:

  • Chat: "Vehicle spawn set. Location 'Downtown Office' saved. Total locations: N"

Notes:

  • Requires an active location from /mowerlocation
  • Stand where you want the company van to spawn and face the direction it should point
  • Choose a flat, open area near a road for best results

Yard Commands

/moweryard

Start a new yard definition at your current position and open the visual editor.

Usage:

/moweryard <name>

Parameters:

ParameterTypeRequiredDescription
namestringYesDisplay name for the yard

Examples:

/moweryard Vinewood Hills #1
/moweryard Mirror Park Residence

Output:

  • Chat: "Yard 'Vinewood Hills #1' started at X, Y, Z. Visual editor opened."
  • The visual yard editor opens in freecam mode

Notes:

  • Only one yard can be in progress at a time
  • Your player ped is frozen and hidden while the editor is active
  • Use the visual editor controls to place patches and obstacles
  • Finish with Enter key or /mowerfinishyard

/mowerpatch

Open the grass model picker dialog to add a patch at your position.

Usage:

/mowerpatch

Parameters: None

Notes:

  • Alternative to the visual editor for placing individual patches
  • Requires an active yard from /moweryard
  • Opens a client-side dialog to select the grass model
  • Patch is placed at your current position

/mowerundo

Remove the last added patch from the current yard.

Usage:

/mowerundo

Parameters: None

Output:

  • Chat: "Removed patch #N (model). Remaining patches: N"

Notes:

  • Only undoes patches added via /mowerpatch (not the visual editor)
  • For visual editor undo, use Ctrl+Z or Backspace while in the editor

/mowerfinishyard

Finish the current yard and save it.

Usage:

/mowerfinishyard

Parameters: None

Output:

  • Chat: "Yard 'Name' saved! N patches, M obstacles, tier: SMALL. Total yards: N"

Notes:

  • Yard must have at least one patch
  • Automatically determines the yard tier based on patch count
  • Closes the visual editor if active
  • Cleans up all preview props

Export & Cancel

/mowerexport

Export all saved locations and yards to a Lua file.

Usage:

/mowerexport

Parameters: None

Behavior:

  • Auto-saves any in-progress location or yard
  • Auto-merges all existing locations and yards from the runtime config (deduplicates by name)
  • Serializes the merged data to exported_locations.lua in the resource folder
  • Prints the full output to the server console

Output:

  • Chat: "Exported N location(s) and M yard(s) to exported_locations.lua"
  • Server console: Full Lua table output

Notes:

  • Previously exported data is automatically preserved — you never lose existing yards
  • New session entries with the same name as existing ones take priority
  • Restart the resource after exporting for changes to take effect

/mowercancel

Cancel any in-progress location or yard setup.

Usage:

/mowercancel

Parameters: None

Output:

  • Chat: "Active setup cancelled." or "No setup in progress."

Notes:

  • Discards unsaved location and yard data
  • Closes the visual editor if active
  • Cleans up all preview props

Session Management

/mowerimport

Load existing config locations and yards into the current builder session.

Usage:

/mowerimport

Parameters: None

Behavior:

  • Reads runtime Config.Locations and Config.Yards (the merged result of config.lua + exported_locations.lua)
  • Adds entries to the session that don't already exist (deduplicates by name)

Output:

  • Chat: "Imported N location(s) and M yard(s) from config. Session now has X location(s) and Y yard(s)."

Notes:

  • Required before using /mowerremoveyard to remove existing yards
  • Safe to run multiple times — already-imported entries are skipped
  • Use /mowerlist after importing to see the full session contents

/mowerlist

Show all locations and yards currently in the builder session.

Usage:

/mowerlist

Parameters: None

Output:

[LawnBuilder] === Session Contents ===
[LawnBuilder] Locations (2):
[LawnBuilder]   1. The Mighty Bush
[LawnBuilder]   2. New Office
[LawnBuilder] Yards (3):
[LawnBuilder]   1. Rockford Hills Sign (65 patches, 12 obstacles) [LARGE]
[LawnBuilder]   2. Steele Way (22 patches, 7 obstacles) [SMALL]
[LawnBuilder]   3. New Yard (10 patches, 3 obstacles) [SMALL]

Notes:

  • Shows patch count, obstacle count, and tier for each yard
  • Only shows data in the current session — use /mowerimport first to include existing config data

/mowerremoveyard

Remove a yard from the builder session by its exact name.

Usage:

/mowerremoveyard <name>

Parameters:

ParameterTypeRequiredDescription
namestringYesExact name of the yard to remove

Examples:

/mowerremoveyard Steele Way
/mowerremoveyard Rockford Hills Sign

Output:

  • Chat: "Removed yard 'Steele Way'. Session now has N yard(s)."
  • Or: "Yard 'Steele Way' not found in session. Use /mowerlist to see current yards."

Notes:

  • Name must match exactly (case-sensitive)
  • To remove a previously exported yard, run /mowerimport first to load it into the session
  • After removing, run /mowerexport and restart to apply the change

Visual Yard Editor

The yard editor is a freecam tool for precisely placing grass patches and obstacles in the world. It opens automatically when running /moweryard.

Editor Modes

The editor supports two placement types, toggled with Tab:

ModeColorDescription
PATCHGreenPlaces grass patches (from Config.GrassProps)
OBSTACLEOrangePlaces obstacles (from Config.ObstacleProps)

Placement Mode Controls

Placement mode is the default state with a freecam and ghost prop following your crosshair.

ControlAction
WASDMove camera
MouseLook around
ShiftMove camera up
CtrlMove camera down
ScrollAdjust camera speed
ECycle to next model
QCycle to previous model
TabToggle patch/obstacle mode
Left ClickLock position, enter precision mode
Ctrl+Z or BackspaceUndo last placement
EnterSave yard and exit
ESCExit editor (yard stays in progress)

Precision Mode Controls

Precision mode freezes the camera and lets you fine-tune rotation and height.

ControlAction
Mouse XRotate heading
Scroll UpRaise Z offset (+0.01 per tick)
Scroll DownLower Z offset (-0.01 per tick)
Left ClickConfirm placement
Right ClickCancel, return to placement mode

HUD Display

While the editor is active, the HUD shows:

  • Mode indicator: [PATCH] (green) or [OBSTACLE] (orange)
  • Model name: Current model with index (e.g., prop_veg_grass_01_d (4/8))
  • Counts: Total placed patches and obstacles
  • Camera speed: Current movement speed
  • Precision info: Z offset and heading (when in precision mode)
  • Controls reminder: Key bindings at bottom of screen

Building New Yards

  1. Scout the location: Drive around and find a suitable yard area
  2. Start the yard: /moweryard My New Yard
  3. Place patches: Fly around in freecam, click to place grass props
  4. Add obstacles: Press Tab to switch to obstacle mode, place a few obstacles
  5. Fine-tune: Use precision mode to adjust rotation and height
  6. Save: Press Enter to finish the yard
  7. Repeat: Build more yards as needed
  8. Export: /mowerexport to save everything to a file

Tips

  • Patch density: Aim for patches close together but not overlapping
  • Patch count: 15-30 patches make a good small yard, 50+ for medium
  • Obstacles: Add 3-8 obstacles per yard for variety
  • Height: Use precision mode scroll to sink patches slightly into the ground for a natural look
  • Rotation: Vary patch rotations to avoid a uniform appearance
  • Test: After exporting, restart the resource and test the yard by clocking in

Adding Exported Data

After running /mowerexport, restart the resource to apply:

restart oxide-landscapingjob

The export automatically includes all existing data, so you can safely build yards incrementally across sessions without losing previous work.

Permissions

All coordinate builder commands require the admin.landscapingjob ACE permission. The visual editor is accessible only through /moweryard, which also requires this permission.

Granting Access

Add the following to your server.cfg:

add_ace group.admin admin.landscapingjob allow

Or grant to specific identifiers:

add_ace identifier.fivem:123456 admin.landscapingjob allow

How It Works

Commands check permissions using FiveM's built-in ACE system:

IsPlayerAceAllowed(source, 'admin.landscapingjob')