Installation Guide
Complete setup guide for oxide-landscapingjob.
Prerequisites
Required Resources
| Resource | Version | Purpose |
|---|---|---|
| community_bridge | Latest | Framework and resource abstraction layer |
| oxmysql | Latest | Database connectivity |
| ox_lib | Latest | Shared utilities, callbacks, UI |
| xsound | Latest | 3D 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)
| System | Supported Options |
|---|---|
| Framework | QBCore, ESX, QBox, and more |
| Target | qb-target, ox_target, and more |
| Notify | ox_lib, QBCore, ESX, and more |
| Phone | oxide-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
| Column | Type | Description |
|---|---|---|
char_id | VARCHAR(50) | Character identifier (primary key) |
level | INT | Current level (1-5) |
total_yards | INT | Lifetime completed yards |
daily_streak | INT | Consecutive work days |
last_yard_date | DATE | Last yard completion date |
complaints | INT | Active complaint count |
timeout_until | DATETIME | Suspension 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
- Join the server
- Find a landscaping office on the map (green lawn mower blip)
- Talk to the NPC manager
- Select "Clock In" from the menu
- Verify a company van spawns and yards are assigned
Step 3: Test Mowing
- Drive the van to an assigned yard
- Enter the yard marker and press
[E]to start - Unload the mower from the van
- Press
Gto lower blades and drive over grass patches - 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.