Admin & Developer Tools

Reference for oxide-pizzajob admin commands — the /pizza settings editor, the location builder, permissions, and progression management.

Reference for all admin commands and developer utilities in oxide-pizzajob. The location builder commands allow creating new pizza shop locations with delivery zones in-game.

Commands

CommandDescriptionPermission
/pizza settingsOpen the in-game settings editor (changes save to the database and apply live)Admins
/pizzacreate <name>Create a new shop location at your positionAdmins
/pizzavehicleSet the vehicle spawn point for the current locationAdmins
/pizzadeliv <label> [minLevel]Add a delivery zone at your positionAdmins
/pizzaexportExport every shop to exported_locations.luaAdmins
/pizzacancelCancel the current in-progress location setupAdmins
/pizzatutorialsToggle tutorial tooltips on/off (also /pizza tutorials)None
/pizzatutorialresetReset all tutorial progress (also /pizza tutorialreset)None

Settings Editor

/pizza settings opens the in-game editor for nearly every setting: pay, levels, timers, complaints, random events, the cancel cooldown, vehicles, shop and delivery locations (with in-world placement previews), NPCs and blips, customer peds and reactions, uniforms, the pizza prop, animations, model replacements and tutorials. Values are checked before saving, and a bad value is rejected with a reason. Saved changes go to the database and apply live, with no restart. If a change can't be saved to the database, the editor says so and the old value stays; a reset that fails shows a message too. The editor's labels come from locales/en.json, so they can be translated. See How Settings Work.

Location Builder

The location builder is a set of admin commands for capturing pizza shop coordinates and delivery zones in-game by walking to each spot. It writes the captured positions out as a Lua block you can read off and re-enter.

Where the coordinates go depends on how far along your install is:

  • On a running install (the resource has started at least once), shops live in the database. Add or edit them through the /pizza settings editor (admins only) — enter the captured coordinates there and they save and apply live, no restart. The editor's Place in world button can also set each spot directly, without the builder. Pasting the export into shared/config/locations.lua changes nothing on its own once the resource has started, even after a restart: restart the server, then press Reset to default on Pizza shops in /pizza settings. That replaces the whole shop list, including changes made in the editor, with the file's list. The export holds every current shop as saved in /pizza settings, cameras included, plus the shops you captured, so pasting the whole export over Config.Locations keeps all of them.
  • On a brand-new install (before the resource's very first boot), you can paste the exported block straight into shared/config/locations.lua, where it becomes the factory default that gets imported on that first boot.

/pizzacreate

Creates a new pizza shop location at your current position and heading.

/pizzacreate <name>
ParameterTypeRequiredDescription
namestringYesDisplay name for the location (e.g., "Vinewood Pizza This")

Behavior:

  • Captures your current coordinates and heading as the NPC position
  • If a setup is already in progress, prompts for confirmation to overwrite (run the command again within 30 seconds to confirm)
  • The location enters active setup mode for adding the vehicle spawn and delivery zones

/pizzavehicle

Sets the vehicle spawn point for the location currently being set up.

/pizzavehicle

Behavior:

  • Captures your current coordinates and heading as a vector4
  • Requires an active location setup (use /pizzacreate first)
  • Only one vehicle spawn per location

/pizzadeliv

Adds a delivery zone at your current position.

/pizzadeliv <label> [minLevel]
ParameterTypeRequiredDescription
labelstringYesStreet name or area label for the delivery zone
minLevelnumberNoMinimum player level required (default: 1)

Examples:

/pizzadeliv Vinewood Blvd          -- Level 1 zone labeled "Vinewood Blvd"
/pizzadeliv Vinewood Hills 3       -- Level 3 zone labeled "Vinewood Hills"
/pizzadeliv Alta Street 2          -- Level 2 zone labeled "Alta Street"

Behavior:

  • The last argument is treated as minLevel if it is a number and there are multiple arguments
  • Requires an active location setup (use /pizzacreate first)
  • Add as many delivery zones as needed

/pizzaexport

Exports every shop to a Lua file and prints the output to the server console.

/pizzaexport

Behavior:

  • If a setup is currently in progress, it is automatically saved before export
  • Generates a Config.Locations Lua block with every current shop (as saved in /pizza settings, including each shop's menuCamera) and every shop captured since the last restart
  • A captured shop with the same name as a current shop replaces it in the export. Captured shops have no menuCamera
  • A shop without a heading exports facing 0.0, and an address without a minLevel exports at level 1
  • Saves to exported_locations.lua in the resource folder
  • Also prints the full output to the server console for easy copy-paste

/pizzacancel

Cancels the current in-progress location setup.

/pizzacancel

Behavior:

  • Clears the active setup without saving
  • Does not affect previously finished/exported locations

This is a builder command only. It has nothing to do with the player-facing Cancel Current Task option in the shift menu, which drops a driver's current batch of orders.

Builder workflow

Go to the pizza shop counter position and run /pizzacreate My Pizza Shop.
Move to where the delivery vehicle should spawn and run /pizzavehicle.
Travel to each delivery address and run /pizzadeliv Street Name (optionally with a min level).
Repeat for all delivery zones (add zones for multiple levels).
Run /pizzaexport to save every shop, the new one included, to exported_locations.lua.

Use the captured coordinates:

  • Running install: open the /pizza settings editor and enter the shop and its delivery zones there, reading the coordinates off the exported block. Saving applies the new shop live — no restart. (To use the file instead, paste the exported block over Config.Locations in shared/config/locations.lua, restart the server, and press Reset to default on Pizza shops. This replaces the whole shop list with the file's, and the export already holds every current shop.)
  • Brand-new install (before first boot): copy the generated Config.Locations block into shared/config/locations.lua.
Set the menuCamera for the NUI cinematic camera as well — the builder does not capture one for a new shop, and the /pizza settings editor has no field for it. Add it to the shop in shared/config/locations.lua; on a running install, then restart and press Reset to default on Pizza shops. Without one, the shop works but its shift menu opens without the camera shot.

Export format

The export generates a complete Config.Locations block:

exported_locations.lua
Config.Locations = {
    {
        name = 'My Pizza Shop',
        coords = vector3(100.00, 200.00, 30.00),
        heading = 180.0,
        vehicleSpawn = vector4(105.00, 205.00, 30.00, 90.0),
        deliveryZones = {
            { coords = vector3(150.00, 250.00, 35.00), minLevel = 1, label = 'Main Street' },
            { coords = vector3(200.00, 300.00, 40.00), minLevel = 2, label = 'Hill Road' },
        },
    },
}

On a brand-new install, copy this output into shared/config/locations.lua before the resource's first boot. On a running install, read the coordinates off this block and enter them through the /pizza settings editor instead. Pasting it into the file on a running install only changes the factory default: it takes effect after a restart and pressing Reset to default on Pizza shops, which replaces the whole shop list with the file's. Shops that already have a menuCamera keep it in the export. Either way, if using the NUI menu, also set a menuCamera (coords, heading, and fov) for each new shop's cinematic camera position. The editor has no field for it, so it goes in the file (on a running install, followed by the restart and Reset to default above).

Player Commands

These commands are available to all players (no permissions required):

CommandDescription
/pizzatutorialsToggle tutorial tooltips on/off
/pizzatutorialresetReset all tutorial progress (see all 8 tips again)

Keybinds

KeybindActionDescription
H (hold)Show waypointDisplays the floating 3D waypoint above the delivery address

Permissions

The /pizza settings editor and the location builder commands are admin-only. They use the standard admin check, so anyone who is already a server admin can use them. If you run QBCore, Qbox, or ESX, your existing framework admins pass automatically — no extra setup is needed.

To make someone an admin manually, add them to the admin group and grant that group the admin ace in your server.cfg:

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

Replace <their-license> with the player's license identifier.

The check happens on the server, so players can't get around it, and the settings editor checks again every time it loads, saves or resets something. Refused /pizza settings 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. Every settings change is logged too, along with whether it came from the menu or another resource.

Progression Management

Player progression is stored in the unified job_progression table with job = 'pizza'.

View a player's stats

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

Reset a player's progression

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

Remove a suspension

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

Clear complaints

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

Set a player's level

UPDATE job_progression
SET level = 5
WHERE char_id = ?
  AND job = 'pizza';

Notes

  • Shift payout is deposited to Config.Payment.payoutAccount (default 'bank') on clock-out through o-link.money.
  • Tips are paid instantly to Config.Payment.tipAccount (default 'cash') as each delivery completes.
  • Vehicle destroy fines are removed from Config.Payment.fineAccount (default 'cash') immediately when the vehicle is lost, and never exceed the player's balance.

Next Steps