Admin & Developer Tools

Reference for commands, permissions, builder output, and progression management.

Reference for commands, permissions, builder output, and progression management. The location builder commands allow creating new pizza shop locations with delivery zones in-game without editing config files by hand.

Commands

CommandDescriptionPermission
/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 all locations to exported_locations.luaAdmins
/pizzacancelCancel the current in-progress location setupAdmins
/pizzatutorialsToggle tutorial tooltips on/offNone
/pizzatutorialresetReset all tutorial progressNone

Location Builder

/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 all finished locations 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 covering all captured locations
  • 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

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 all locations to exported_locations.lua.
Copy the generated Config.Locations block into shared/config/locations.lua.
Add a menuCamera entry manually for the NUI cinematic camera (optional).

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' },
        },
    },
}

Copy this output into shared/config/locations.lua. If using the NUI menu, add a menuCamera table with coords, heading, and fov fields for the cinematic camera position.

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 location builder commands are admin-only. They use the standard admin check, so anyone who is already a server admin can use them. The check runs on the server, so it can't be bypassed.

If you run QBCore, QBX, 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.

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