Installation Guide

Complete setup guide for oxide-landscapingjob.

Prerequisites

Required Resources

ResourceVersionPurpose
community_bridgeLatestFramework and resource abstraction layer
oxmysqlLatestDatabase connectivity
ox_libLatestShared utilities, callbacks, UI
xsoundLatest3D positional audio for mower sounds

Community Bridge is available for download in our Discord server. Make sure you have the latest version installed before proceeding.

Community Bridge automatically detects and bridges your framework (QBCore, ESX, etc.), target system (qb-target, ox_target, etc.), inventory system, phone system, and notification system. No manual configuration is needed for these.

Supported Systems (via Community Bridge)

SystemSupported Options
FrameworkQBCore, ESX, QBox, and more
Targetqb-target, ox_target, and more
Notifyox_lib, QBCore, ESX, and more
Phoneoxide-phone, lb-phone, qb-phone, and more

Installation Steps

Step 1: Download the Resource

Place the oxide-landscapingjob folder in your resources directory:

resources/
└── [your-folder]/
    └── oxide-landscapingjob/

Step 2: Add to Server Config

Add to your server.cfg:

ensure oxide-landscapingjob

Important: Ensure it starts AFTER all dependencies:

ensure ox_lib
ensure oxmysql
ensure community_bridge
ensure xsound
ensure oxide-landscapingjob

Step 3: Import Database

Import the SQL schema into your database. The file is located at sql/install.sql:

CREATE TABLE IF NOT EXISTS `landscapingjob_progression` (
    `char_id` VARCHAR(50) NOT NULL,
    `level` INT NOT NULL DEFAULT 1,
    `total_yards` INT NOT NULL DEFAULT 0,
    `daily_streak` INT NOT NULL DEFAULT 0,
    `last_yard_date` DATE DEFAULT NULL,
    `complaints` INT NOT NULL DEFAULT 0,
    `timeout_until` DATETIME DEFAULT NULL,
    PRIMARY KEY (`char_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Step 4: Configure Settings

Review and customize config.lua:

-- Key settings to review:
Config.Debug = false                -- Set true for testing
Config.usePhone = true              -- Send SMS/email instead of toast notifications
Config.MaxSlotsPerLocation = 3      -- Max concurrent workers per office

See Configuration for all options.

Database Setup

The resource uses a single table for player progression. Import sql/install.sql using your preferred database tool:

  • HeidiSQL: File > Run SQL file
  • phpMyAdmin: Import tab > Choose file
  • Command line: mysql -u root -p your_database < sql/install.sql

Schema Overview

ColumnTypeDescription
char_idVARCHAR(50)Character identifier (primary key)
levelINTCurrent level (1-5)
total_yardsINTLifetime completed yards
daily_streakINTConsecutive work days
last_yard_dateDATELast yard completion date
complaintsINTActive complaint count
timeout_untilDATETIMESuspension expiry time

Verification

Step 1: Start Server

Start your server and check for errors in the console. Enable debug mode temporarily to see startup messages:

Config.Debug = true  -- in config.lua

With debug enabled, successful startup shows:

[oxide-landscapingjob] oxide-landscapingjob initialized

Step 2: Test Clock In

  1. Join the server
  2. Find a landscaping office on the map (green lawn mower blip)
  3. Talk to the NPC manager
  4. Select "Clock In" from the menu
  5. Verify a company van spawns and yards are assigned

Step 3: Test Mowing

  1. Drive the van to an assigned yard
  2. Enter the yard marker and press [E] to start
  3. Unload the mower from the van
  4. Press G to lower blades and drive over grass patches
  5. Verify patches disappear as you mow them

Optional Setup

Phone Integration

When Config.usePhone = true, the resource sends shift updates via SMS or email through Community Bridge. Players receive messages for:

  • Shift welcome with yard count
  • All yards completed notification
  • Vehicle destroyed warnings
  • Shift summary with full payment breakdown

If no supported phone resource is detected, notifications fall back to toast messages automatically.

3D Audio (xsound)

The resource uses xsound for positional 3D audio effects:

  • Blade toggle sound when pressing G
  • Mower engine loop while blades are lowered
  • Engine failure sound on mower destruction

Sound files are included in the sounds/ directory. If xsound is not available, the resource functions normally without audio.

ACE Permissions

Admin commands for the coordinate builder require the admin.landscapingjob ACE permission:

add_ace group.admin admin.landscapingjob allow

See Admin Commands for all available commands.