Admin & Developer Tools

Admin commands, the /newspaper settings editor, the depot builder, and managing player records in oxide-newspaperjob.

Admin commands, the live settings editor, the depot builder, and managing player records in oxide-newspaperjob.

Commands

Everything lives under one command: /newspaper. Typing /newspaper in chat shows the available subcommands as suggestions; running it with no subcommand shows a usage hint.

CommandWhat it doesWho can use it
/newspaper settingsOpens the live settings editor. Changes save to the database and apply instantly, no restart neededAdmins
/newspaper tutorialsTurns the first-time tips on or offAnyone (affects only themselves)
/newspaper tutorialresetShows all the tips again from the startAnyone (affects only themselves)
/newspaperbuilderOpens the depot builder menuAdmins

The older /newspapertutorials and /newspapertutorialreset commands still work and do the same as /newspaper tutorials and /newspaper tutorialreset.

Keybind

KeyWhat it does
H (hold)Shows a floating indicator over the current house, with its street name and distance

Players can rebind this in GTA's settings under Key Bindings → FiveM.

The Settings Editor

/newspaper settings opens a live editor for nearly every setting: pay, levels, timers, throwing, paper supply, the bike, depots and houses, the depot worker and blips, uniforms, the paper bag, animations, model replacements and tutorials. Changes save to your database and apply instantly for everyone — nothing needs a restart. See How Settings Work for why the config files stop mattering after the first start.

Settings are grouped in the sidebar:

CategorySections
CoreGeneral, Complaints
EconomyPayment, Progression, Tasks & Dispatch (route timer, cancelling, throwing, paper supply, the inventory item)
VehiclesVehicle
WorldLocations (the depots and their houses), NPCs & Blips, Scene & Effects
PresentationUniforms, Props & Animations, Compatibility (model replacements), Tutorials

How it works:

  • Basic and Advanced tabs keep the everyday settings upfront; a search box finds any setting by name.
  • Edited fields are marked changed, and a counter shows how many unsaved changes you have. Nothing is stored until you press Save Changes.
  • Values are checked before saving. A bad value is rejected with a reason, and the field is highlighted.
  • If a setting can't be saved to the database, the editor says so and the old value stays in use. A reset that fails shows a message too.
  • Every setting has a Reset to default button that puts it back to the value from the config files.
  • Logging out with the editor open closes it.
  • The editor's interface text (buttons, badges, and messages) comes from locales/en.json, so it can be translated.

Placing depots and houses in the world

Positions — the worker's spot (Clerk spot), the Bike spawn, each house's Doorstep — have a Place in world button. The menu hides and a see-through preview (the worker, the bike, or a marker for a house) follows your aim; left-click confirms, right-click or ESC cancels. Either way the menu comes back, with the coordinates filled in if you confirmed. Placing the worker also sets which way he faces. A teleport button next to Place in world jumps you to a stored position so you can check it.

When you save, depot workers and map blips move immediately. You can edit, reorder or delete depots while carriers are on shift; deleting a depot ends the shifts there and pays them (see Adding another depot).

In-world placement needs an updated o-link. On an older version the Place in world button shows a notice asking you to update.

The Depot Builder

You can add your own depots and delivery houses entirely in-game with /newspaperbuilder — no copying coordinates by hand. It captures positions, menu camera included, into an export file that takes effect after a restart and Reset to default on Depots (see Making the export take effect). For quick changes you can also edit depots and houses straight in /newspaper settings.

The builder lets you:

  • create a new depot where you're standing
  • set where the BMX spawns
  • set where the shift menu's camera looks from
  • add delivery houses, with a label and a minimum level
  • quick-add houses — the street name is filled in automatically
  • undo your last action
  • check what the depot you're building still needs
  • finish a depot once it's complete
  • export everything to a file
  • import the depots your server is using now, so you can edit them
  • re-open and edit a finished depot

Suggested workflow

Stand where the depot worker should be and run /newspaperbuilder.
Create a new location.
Stand where the BMX should appear and set the bike spawn.
Stand where the menu camera should sit and set the camera.
Ride to each house you want on the route and add it.
Finish the location.
Export.
Open the exported file and copy its contents into shared/config/locations.lua, replacing the Config.Locations list there.
Restart the resource, then press Reset to default on Depots in /newspaper settings (see below).

Where exports go

Exports are saved to exported_locations.lua in the resource folder, and the same text is printed to the server console as a backup.

Making the export take effect

The depots are stored in your database, and the file only holds their factory defaults (see How Settings Work). So pasting the export into shared/config/locations.lua changes nothing on its own, even after a restart. To load it:

Paste the export into shared/config/locations.lua.
Restart oxide-newspaperjob.
Run /newspaper settings (admins only), open Depots under Locations, and press Reset to default. The depots change right away.

Reset to default replaces the whole stored list with the file's list, so any depot that isn't in the export is removed. To keep your current depots, choose Import Config in the builder before you start: it loads the depots your server is using now, and they're exported along with your new ones.

You can also skip the file and edit depots and houses directly in /newspaper settings: open Depots under Locations, make your changes, and save. Place in world lets you pick each spot in the game world. Changes store to the database and apply live, no restart needed. The one thing the settings menu can't set is a depot's menu camera; that needs the builder and the steps above.

Setting Up the Permission

/newspaper settings and the builder are admin only. They use the same admin check as every Oxide resource, so if someone is already an admin on your server, they can use them — there's nothing extra to set up per resource.

If you're already running QBCore, Qbox, or ESX admins, those admins pass automatically. You can skip this section.

To make someone an admin, add them to the admin group and grant that group the admin ace. Add these two lines to your server.cfg:

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 grants that group admin access. Replace <their-license> with the player's license identifier, which you can find in your admin tools or the server console when they connect.

The check happens on the server, so players can't get around it: the settings editor checks again every time something is saved, and the builder checks again when it exports. 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.

Managing Player Records

Each character's job record (level, deliveries, streak, complaints, suspension) is one row in the job_progression database table, marked with job = 'newspaper'.

To run the queries below, open your database tool (HeidiSQL, phpMyAdmin, etc.) and replace ? with the character's id in quotes — for example WHERE char_id = 'ABC12345'.

Look up a player's record

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

Lift a suspension

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

Clear complaints

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

Set a player's level

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

Reset a player completely

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

Good to Know

  • Clocking out is when the shift payout lands and the leftover newspaper item is taken back.
  • A lost bike or running out of papers ends the current route immediately — but not the shift.
  • If a player is hospitalized, the script clocks them out automatically and pays whatever they had already earned that shift.
  • If a player disconnects, logs out or switches character on shift, what the shift earned is paid the next time that character loads in, with a notification saying how much.
  • Restarting the job, or deleting a depot in /newspaper settings, pays the shifts it ends as a clock-out would.
  • Other resources can read and change settings, check whether a player is on shift, read the depots, a player's shift and their level, and show shift updates themselves, through the server exports — see the API Reference.

Next Steps