Yard Building Guide
Step-by-step guide to creating landscaping locations and yards in-game using the coordinate builder and visual yard editor.
How It Works
The resource ships with two files that define where players work:
config.lua— Contains defaultConfig.LocationsandConfig.Yardstablesexported_locations.lua— Initially empty, populated by the/mowerexportcommand
When you run /mowerexport, the command automatically merges your new session data with all existing locations and yards from the runtime config. You never lose previously exported data — new yards are added alongside existing ones.
Key Points
/mowerexportalways preserves existing data (auto-merge)- You can build 1 yard today, export, then build another yard next week and export again — nothing is lost
- Deduplication is by name: if a session yard has the same name as an existing one, the session version takes priority
- To remove a yard, use
/mowerimportthen/mowerremoveyard
Creating a Location
A location is a landscaping office where players clock in. Each location has an NPC, a map blip, and a vehicle spawn point.
Step 1: Position the NPC
- Walk to where you want the office manager NPC to stand
- Face the direction the NPC should look
- Run the command:
/mowerlocation My Office Name
This captures your position and heading. The name can include spaces.
Step 2: Set Vehicle Spawn
- Walk to where the company van should spawn (nearby road or parking area)
- Face the direction the van should point
- Run:
/mowervehicle
This saves the location with both the NPC position and vehicle spawn. The location is now ready.
What a Location Produces
After export, each location creates:
- A green lawn mower blip on the map (
Config.Blip) - An NPC with a clipboard scenario at the
coordsposition - A target zone for "Talk to Manager" interaction
- A vehicle spawn point for the company van
Creating a Yard
A yard is a work area filled with grass patches and optional obstacles.
Step 1: Start the Yard
- Stand at the center of the area you want to be a yard
- Run:
/moweryard My Yard Name
This records the yard's center coordinate and opens the visual yard editor in freecam mode.
Step 2: Place Grass Patches
Use the visual editor (detailed in the next section) to fly around and place grass props. Each patch becomes a piece of grass that players will mow.
Step 3: Add Obstacles (Optional)
Press Tab in the editor to switch to obstacle mode. Place objects like BBQs, rocks, trash bags, and patio furniture that players must pick up on foot before they can safely mow.
Step 4: Finish the Yard
Press Enter in the editor or run /mowerfinishyard to save the yard. The editor closes and reports the patch count, obstacle count, and calculated tier.
Using the Visual Yard Editor
The yard editor is a freecam tool that launches when you run /moweryard. It has two modes that you alternate between.
Editor Modes
| Mode | Purpose | Visual |
|---|---|---|
| PATCH | Place grass props | Green [PATCH] indicator |
| OBSTACLE | Place obstacle props | Orange [OBSTACLE] indicator |
Press Tab to toggle between modes. Each mode has its own model list that you cycle through independently.
Placement Mode
This is the default mode. You fly freely and a ghost (transparent) prop follows your crosshair.
| Control | Action |
|---|---|
W/A/S/D | Move camera forward/left/back/right |
Mouse | Look around |
Shift | Move camera up |
Ctrl | Move camera down |
Scroll Wheel | Adjust camera speed (shown in HUD) |
E | Cycle to next prop model |
Q | Cycle to previous prop model |
Tab | Switch between patch and obstacle mode |
Left Click | Lock the ghost prop's position, enter precision mode |
Ctrl+Z or Backspace | Undo last placed prop |
Enter | Save the yard and exit editor |
ESC | Exit editor without saving (yard stays in progress) |
Precision Mode
After left-clicking to lock a position, the camera freezes and you can fine-tune the prop before confirming.
| Control | Action |
|---|---|
Mouse X | Rotate the prop's heading |
Scroll Up | Raise the prop (+0.01 per tick) |
Scroll Down | Lower the prop (-0.01 per tick) |
Left Click | Confirm placement |
Right Click | Cancel, return to placement mode |
The HUD shows the current Z offset and heading while in precision mode.
HUD Display
While the editor is active, the screen shows:
- Top left: Current mode (
[PATCH]or[OBSTACLE]), model name with index, patch/obstacle counts, camera speed - Center top (precision only): "PRECISION MODE" with Z offset and heading values
- Bottom center: Controls reminder for the current mode
- Crosshair: White crosshair in placement mode
Prop Models
Grass models (8 total): Cycle with E/Q in patch mode. These are the grass clumps that players drive the mower over.
Obstacle models (19 total): Cycle with E/Q in obstacle mode. These include BBQs, basketballs, coolers, rocks, trash bags, soda cups, and more.
The model list comes from Config.GrassProps and Config.ObstacleProps. You can add custom models to these arrays.
Exporting Your Work
Running the Export
After creating your yards, run:
/mowerexport
This does four things:
- Auto-saves any in-progress location or yard (so you don't lose unfinished work)
- Auto-merges all existing locations and yards from the runtime config
- Writes
exported_locations.luain the resource folder with the merged data - Prints the full output to the server console for review
Applying the Export
After exporting, restart the resource for the changes to take effect:
restart oxide-landscapingjob
Verifying
- Join the server after restart
- Check the map for your new office blips
- Visit an office and clock in
- Verify your yards appear as assigned work
Managing Data
Viewing Session Contents
Use /mowerlist to see what's currently in the builder session:
/mowerlist
This shows all locations and yards with patch/obstacle counts and tier.
Loading Existing Data Into Session
Use /mowerimport to load all existing config data into the session. This is required before using /mowerremoveyard:
/mowerimport
Removing a Yard
To remove a yard that was previously exported:
- Run
/mowerimportto load existing data into the session - Run
/mowerremoveyard <exact name>to remove it - Run
/mowerexportto write the updated data - Restart the resource
/mowerimport
/mowerremoveyard Steele Way
/mowerexport
Clearing All Exported Data
To revert to the defaults in config.lua, empty the exported file:
- Open
exported_locations.luain the resource folder - Delete all contents (leave it blank)
- Restart the resource
Multiple Admins
The coordinate builder stores data per-admin in memory. If multiple admins are building simultaneously:
- Each admin has their own in-progress location and yard
/mowerexportfrom any admin exports all saved data (from all admins in that session)- Coordinate between admins to avoid export conflicts
Workflow Examples
Quick Setup: One Office, Three Yards
-- Step 1: Create the office
/mowerlocation Davis Landscaping
-- Walk to nearby road
/mowervehicle
-- Step 2: Create yards
/moweryard Davis House 1
-- Place patches and obstacles in editor, press Enter
/moweryard Davis House 2
-- Place patches and obstacles, press Enter
/moweryard Davis House 3
-- Place patches and obstacles, press Enter
-- Step 3: Export and restart
/mowerexport
-- In server console: restart oxide-landscapingjob
Adding Yards Over Time
-- Day 1: Initial setup
/mowerlocation My Office
/mowervehicle
/moweryard Yard 1
-- Build, press Enter
/moweryard Yard 2
-- Build, press Enter
/mowerexport -- Writes 1 location + 2 yards
-- Day 30: Add another yard
/moweryard Yard 3
-- Build, press Enter
/mowerexport -- Auto-merges: now 1 location + 3 yards
-- Day 60: Remove a bad yard
/mowerimport -- Loads all 3 yards into session
/mowerremoveyard Yard 2 -- Removes Yard 2
/mowerexport -- Writes 1 location + 2 yards (1 + 3)
Reviewing What Exists
/mowerimport -- Load config into session
/mowerlist -- See all locations and yards with details
Tips & Best Practices
Yard Design
- 15-30 patches is a good small yard that takes 2-3 minutes to mow
- 3-8 obstacles per yard adds variety without being tedious
- Vary patch models and rotations to avoid a uniform grid appearance
- Use precision mode to sink patches slightly into the ground (scroll down a few ticks) for a natural look
- Place the yard center coordinate (
/moweryardposition) where you want the yard marker and blip to appear
Obstacle Placement
- Place obstacles between grass patches so players must clear them first
- Mix small obstacles (cups, balls) with large ones (BBQs, loungers)
- Avoid placing obstacles where the mower can't physically reach (narrow gaps, fences)
- Test that all obstacles are reachable on foot with the pickup animation
Location Design
- Position the NPC on flat ground where players can easily see and approach
- Set the vehicle spawn on a road or parking lot with enough space for the van
- Ensure the vehicle spawn faces a direction where the van can drive away immediately
- Test that the van doesn't spawn inside walls or other vehicles
Performance
- Keep yards under 50 patches for best client performance (objects are rendered locally)
- Space yards apart geographically to avoid multiple yards rendering simultaneously
- If you have many yards, increase
Config.MaxSlotsPerLocationcarefully — more workers means more active yards
Before Going Live
- Test every yard by clocking in and mowing the full thing
- Verify obstacles can all be picked up
- Check that the van spawns cleanly at every office
- Confirm the mower can reach all patches without getting stuck on terrain