Admin & Developer Tools

Commands, permissions, the in-world property editor, the menu camera, testing every stage and progression SQL for oxide-pestcontroljob.

Reference for commands, permissions, testing and progression management.

Commands Overview

All commands start with /pestcontrol, typed in the in-game chat. Typing /pestcontrol on its own shows the list of sub-commands: Usage: /pestcontrol <settings|tutorials|tutorialreset|level>.

CommandDescriptionPermission
/pestcontrol settingsOpens the in-game settings editor (all settings save to the database and apply live)Admin
/pestcontrol level <level>Sets your own pest control levelAdmin
/pestcontrol tutorialsTurns the first-time tutorial hints on or offEveryone
/pestcontrol tutorialresetShows all tutorial hints againEveryone

Command Details

/pestcontrol settings

Opens the settings editor, where nearly every setting can be changed while the server runs. Changes save to the database and apply right away. See Configuration.

Usage:

/pestcontrol settings

Output:

  • Success: the settings editor opens.
  • Not an admin: "You do not have permission."

It must be typed in-game. From the server console it only prints that it must be run in-game.

Edit in world: the property editor

In World → Properties, every property has Edit in world, and Add in world under the list starts a new one where you stand. You fly round the property and change everything on it in the game world, then save or leave.

  • You must be clocked out and on foot. The server checks you're an admin when you open it and again when you save.
  • If the Properties list in the editor has unsaved changes, press Save Changes (or reset them) first.
  • Only one admin can edit a property at a time.

Modes. You edit one kind of thing at a time. Press C to step through them. The card at the top left lists the modes and lights up the one you're in:

ModeWhat it shows
AreaA bold ring at the property's radius, a thin ring where technicians count as arrived, and a post at the centre (the call's map blip goes there)
RunsEach foundation run as a bold blue ribbon on the ground, with its number, an arrow from its start to its end, and a handle where runs meet. A run behind the building shows as a dashed line over it, so you never lose one
Sign spotsA purple handle at each sign spot, grey when the spots still come from the runs, with a ring where the nest (burrow or harbourage) may go. H shows the real sign models at every spot, placed exactly as a call places them
Wasp nestsEach nest model under its eave, the stepladder where a technician sets it up, and a line from the ladder spot to the nest, green when the ladder reaches and red when it doesn't
No-sprayEach pet bowl and vegetable bed model, with a ring showing how close the spray may come

The runs show faintly in the other modes. Everything else stays hidden until you switch to its mode.

The card at the top left shows the mode you're in and its counts, what you're aiming at and what a click does, the problems and warnings (this mode's first), and the controls for this mode only. If the property is too big to draw everything at once, the far pieces are left out and the card says how many. Fly closer to see them.

Aiming. The ring in the middle of the screen is your aim. The part you aim at turns yellow, its model is outlined, and a tag above it says what it is and what a click does. The keys for it show at the bottom of the screen.

Moving and adding. Picking a part up or adding one carries it. It follows your aim while you keep flying, and it is drawn exactly where and how it will be saved: a sign is set at the wall's foot, a pet bowl drops onto the ground, a stepladder stands where a technician sets it up. Fly round it, fine-tune it, then place it.

Controls

WhenKeyWhat it does
AlwaysMouse, W A S DFly
AlwaysShift / CtrlFly up / down
AimingScrollFly faster / slower
AimingCNext mode
AimingLeft mousePick up what you aim at. A corner takes every run end that meets there; a run's line takes the whole run
AimingEAdd one (not in Area mode)
AimingDeleteDelete what you aim at. Aim at a run's line to delete the run. Deleting a ladder spot deletes its wasp nest too
Aiming, AreaPage Up / Page DownArea bigger / smaller by 1 m (hold Alt for 0.1 m)
Aiming, Sign spotsFThe nest may go on this spot, or not
Aiming, Sign spotsGTurn the spots made from the runs into spots you can move and delete. Pressed twice when the property already has placed spots, it replaces them with fresh ones along the runs
Aiming, Sign spotsHChange the sign models shown at the spots
Aiming, No-sprayRChoose what E adds: a pet bowl or a vegetable bed
AimingUUndo the last change
AimingEnterSave
AimingBackspace or EscLeave without saving. With unsaved changes, press it twice
CarryingLeft mouse or EnterPlace it here
CarryingBackspace or EscCancel this move
CarryingFPin it where it is, so you can fly round it; press again to make it follow your aim
CarryingArrow keysNudge it 10 cm along the ground; up is away from the camera. Nudging pins it
CarryingPage Up / Page DownRaise / lower it 5 cm (run ends, the centre, wasp nests)
CarryingQ / E or scrollTurn it 5° (wasp nests, pet bowls, vegetable beds)
CarryingAlt (hold)Fine steps: 1 cm and 1°

The editor uses no number keys, Tab or Z: inventories and radial menus usually take those keys. The keys are the same as in the Oxide Fire incident editor.

Drawing runs. In Runs mode press E, place the start with the left mouse button, then the end. Each end you place starts the next run from it, so you can go round the building corner by corner. Backspace stops. A start or end placed within 0.5 m of another run's end joins it. A run must be at least 0.5 m long.

Problems. The card lists problems in red and warnings in amber, and they update as you edit.

  • Problems stop the save:
    • a property with no foundation run;
    • a run shorter than 0.5 m;
    • a wasp nest the stepladder can't reach, with how far too high, too low or too far it is.
  • Warnings are only advice:
    • a run end, sign spot, wasp nest or no-spray spot outside the area;
    • too little room along the runs for all the signs a call lays out, or for the number a call needs found.

Saving. Enter saves the property straight to the database, through the same checks as Save Changes, and puts you back where you started with the settings editor open. New calls use the saved property. A call already in progress keeps the version it started with.

Name and kind aren't changed in the world: edit Name and Kind in the property's row, then Save Changes.

Set up in world: the menu camera

Each depot in World → Locations has a Menu camera with Set up in world. It frames the shot behind the full shift menu.

  • The camera turns round the clerk. If the saved clerk isn't standing at the row's Clerk spot, a stand-in clerk shows there while you set it up.
  • The card at the top left shows the distance, angle, height and field of view, and the controls.
KeyWhat it does
Right mouse (hold and drag)Turn round the clerk, and up or down
ScrollCloser / further
Shift + scrollField of view
EnterKeep this shot
Backspace or EscCancel

Enter puts the numbers into the row. Press Save Changes to store them. The shot is measured from the clerk, so if you move the clerk later, the camera moves with it.

/pestcontrol level

Sets your own pest control level, for testing what each level opens.

Usage:

/pestcontrol level <level>

Parameters:

ParameterTypeRequiredDescription
levelnumberYesA level from 1 to 5 (or up to however many levels you have set up)

Examples:

/pestcontrol level 3   -- wasp calls, warehouses, and the pest named on the first sign
/pestcontrol level 5   -- no sign pings, and the every-sign bonus

What happens:

  • Your level changes and is saved straight away.
  • Your total calls are raised to that level's requirement if they were lower, so the level sticks. They are never lowered.
  • If you set a lower level, your total calls stay where they were, so you climb back up one level with each call you report. To fully reset a character, use the SQL under Reset progression.
  • It takes effect right away. A call you've already arrived at keeps the layout it was given.

Output:

  • Success: "Your pest control level is now 3."
  • Missing or invalid level: "Check the command arguments."
  • Not an admin: "You do not have permission."

/pestcontrol tutorials

Turns the local player's tutorial hints on or off. Shows "Tutorials enabled" or "Tutorials disabled". The choice is remembered on the player's own game.

/pestcontrol tutorialreset

Clears the local player's tutorial progress so every hint can show again. Shows "Tutorial progress reset".

Permissions

Admin commands work for anyone your server treats as an admin. There are no levels or separate permissions per command.

If you already run QBCore, Qbox or ESX admins, they pass automatically, with no extra setup. The job accepts:

  • players allowed the command permission (stock QBCore and Qbox server.cfg files give this to group.admin)
  • players allowed the admin permission
  • on ESX, players whose ESX group is an admin group

To make someone an admin who isn't one yet, add these two lines to your server.cfg. Replace <their-license> with the player's license identifier:

server.cfg
add_principal identifier.license:<their-license> group.admin
add_ace group.admin admin allow

The first line puts the player in the admin group. The second gives that group the admin permission. Groups that build on group.admin (such as group.superadmin) get it too. Restart the server after saving.

The permission check happens on the server, so players can't get around it. The settings editor checks again every time something is saved, and refused attempts are written to the server log: one line per player and action per minute, so someone repeating a command can't flood the log.

Testing Every Stage

/pestcontrol level and Force pest let you try every part of the job without levelling up first. For example, to test a wasp nest with a ladder fall:

  1. In /pestcontrol settings, under General (Advanced tab), set Force pest (Config.DebugForceSpecies) to Wasps and save. Normal dispatch now sends only wasp calls.
  2. Type /pestcontrol level 4. Level 4 opens wasp calls and makes a sting knock you off the ladder.
  3. Talk to the clerk at the depot and clock in.
  4. Wait for the call card (15 to 45 seconds with the default Config.Calls timing), press E to accept and drive there.
  5. At the van, take the ladder and the foam can. Set the ladder up under the nest, climb it and foam the nest.

To test a cockroach call with pet bowls and vegetable beds, set Force pest to Cockroaches and use /pestcontrol level 2. Houses and restaurants have them; warehouses don't. Log 4 signs with the torch to finish the inspection; the van then offers the sprayer.

When you're done, set Force pest back to Off, and set your level back with /pestcontrol level 1 or reset your progression with the SQL below.

Progression Management

Player progress lives in the shared job_progression database table (used by Oxide gig jobs), not in a table of its own. Rows for this resource use job = 'pestcontrol'.

Run these queries in your database tool (HeidiSQL, phpMyAdmin, and so on). Replace the ? with the character's ID in quotes, for example WHERE char_id = 'ABC12345'.

Run them while your server is stopped. The job keeps progress it has already loaded in memory, and while the server runs it can write its own copy back over your change.

View progression

SELECT *
FROM job_progression
WHERE char_id = ?
  AND job = 'pestcontrol';

Reset progression

UPDATE job_progression
SET level = 1,
    total_count = 0,
    daily_streak = 0,
    last_activity_date = NULL,
    complaints = 0,
    timeout_until = NULL
WHERE char_id = ?
  AND job = 'pestcontrol';

Clear complaints

UPDATE job_progression
SET complaints = 0
WHERE char_id = ?
  AND job = 'pestcontrol';

Clear a suspension

UPDATE job_progression
SET timeout_until = NULL
WHERE char_id = ?
  AND job = 'pestcontrol';

Set level manually

UPDATE job_progression
SET level = 3
WHERE char_id = ?
  AND job = 'pestcontrol';

Notes

  • Shift pay is deposited when the shift ends, into the account set in Config.Payment.payoutAccount (bank by default).
  • The van destruction fine is charged immediately, from the account set in Config.Payment.fineAccount (cash by default).
  • Treatment charges (wasted chemical, sprayed pet bowls and vegetable beds, wasp stings) come off the shift pay at clock-out.
  • If a model the job uses is missing on a player's game build, online admins get one notification naming it. See Model Compatibility.

Next Steps