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
| Command | Description | Permission |
|---|---|---|
/pizza settings | Open the in-game settings editor (changes save to the database and apply live) | Admins |
/pizzacreate <name> | Create a new shop location at your position | Admins |
/pizzavehicle | Set the vehicle spawn point for the current location | Admins |
/pizzadeliv <label> [minLevel] | Add a delivery zone at your position | Admins |
/pizzaexport | Export every shop to exported_locations.lua | Admins |
/pizzacancel | Cancel the current in-progress location setup | Admins |
/pizzatutorials | Toggle tutorial tooltips on/off (also /pizza tutorials) | None |
/pizzatutorialreset | Reset 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 settingseditor (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 intoshared/config/locations.luachanges 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 overConfig.Locationskeeps 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>| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display 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.
/pizzavehicleBehavior:
- Captures your current coordinates and heading as a
vector4 - Requires an active location setup (use
/pizzacreatefirst) - Only one vehicle spawn per location
/pizzadeliv
Adds a delivery zone at your current position.
/pizzadeliv <label> [minLevel]| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Street name or area label for the delivery zone |
minLevel | number | No | Minimum 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
minLevelif it is a number and there are multiple arguments - Requires an active location setup (use
/pizzacreatefirst) - Add as many delivery zones as needed
/pizzaexport
Exports every shop to a Lua file and prints the output to the server console.
/pizzaexportBehavior:
- If a setup is currently in progress, it is automatically saved before export
- Generates a
Config.LocationsLua block with every current shop (as saved in/pizza settings, including each shop'smenuCamera) 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
headingexports facing0.0, and an address without aminLevelexports at level1 - Saves to
exported_locations.luain the resource folder - Also prints the full output to the server console for easy copy-paste
/pizzacancel
Cancels the current in-progress location setup.
/pizzacancelBehavior:
- 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
/pizzacreate My Pizza Shop./pizzavehicle./pizzadeliv Street Name (optionally with a min level)./pizzaexport to save every shop, the new one included, to exported_locations.lua.Use the captured coordinates:
- Running install: open the
/pizza settingseditor 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 overConfig.Locationsinshared/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.Locationsblock intoshared/config/locations.lua.
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:
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):
| Command | Description |
|---|---|
/pizzatutorials | Toggle tutorial tooltips on/off |
/pizzatutorialreset | Reset all tutorial progress (see all 8 tips again) |
Keybinds
| Keybind | Action | Description |
|---|---|---|
H (hold) | Show waypoint | Displays 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:
add_principal identifier.license:<their-license> group.admin
add_ace group.admin admin allowReplace <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 througho-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.