Feature Guide
How an oxide-postaljob shift plays — task types, routes, cancelling a round, timers, the van, levels, pay, crews, customer handoffs, phone messages and the Oxide Phone Gigs app, and tutorials.
What the postal job does and how a shift plays out, from a player's point of view.
The Job at a Glance
Players work for GoPostal. They clock in at the depot, load up a white delivery van, and drive a route delivering either packages to customers or letters to letterboxes. They get paid a lump sum when they clock out, level up as they complete deliveries, and can bring one friend along as a crew.
Starting a Shift
Players manage everything through the supervisor NPC at the GoPostal depot, using the interaction eye (third-eye).
Menu styles
Config.menuStyle picks between two looks for the supervisor menu:
'nui'(default): a full custom menu with a camera view of the depot, the player's job level and stats, and crew member portraits'menu': a simple text menu for servers that want something lighter
Both styles let players do the same things:
- clock in and out
- see their level, delivery count, streak, and complaints
- request a new round of deliveries
- cancel the round they're on without clocking out
- invite a nearby player to their crew
- accept or decline a crew invite
- put on or take off the work uniform (if uniforms are enabled)
Worker limits per depot
Each depot has a limited number of shift slots (Config.MaxSlotsPerLocation, default 3). If all slots are taken, new players can't clock in there until someone clocks out.
Shift states
Behind the scenes a shift moves through four states — idle, clocked_in, loading, and delivering — in the loop idle → clocked_in → loading → delivering → clocked_in.
The Two Task Types
When a player clocks in (or asks for a new task), the job randomly assigns one of two task types.
Packages
- A pallet stacked with cardboard boxes appears at the depot.
- The player picks up boxes one at a time with the interaction eye (about 3 seconds each).
- They carry each box to the back of the van and load it in — the rear doors must be open.
- A box visibly appears inside the van with each load.
- Once every box is loaded, the delivery route begins.
Letters
- A map blip guides the player to a nearby post box.
- They collect a mail bag from it with the interaction eye (about 3 seconds).
- They carry the bag to the van's open rear doors and load it — one bag covers the whole round.
- The delivery route begins.
The number of deliveries per round grows with the player's job level.
Driving the Route
Package deliveries
- A map blip and GPS route point to the next address, and a delivery timer starts.
- A glowing marker is visible at the address once the player is within about 20 meters.
- The player opens the van's rear doors, grabs a package with the interaction eye, carries it to the marker, and presses
E. - A customer walks out, takes the package from the player's hands, and walks off.
- A pay notification shows exactly what that delivery earned.
Letter deliveries
- A map blip and GPS route point to the next letterbox, and a delivery timer starts.
- The player parks, walks up to the letterbox, and delivers with the interaction eye — a short envelope animation plays.
- A pay notification appears.
When the last delivery in the round is done, the player returns to the "clocked in" state and can ask the supervisor for another round or clock out.
Cancelling the Current Round
Sometimes a round goes wrong — the van ends up somewhere it can't get out of, the player has to log off sooner than planned, or the route just isn't working out. Instead of clocking out and ending the whole shift, players can drop the round they're on and carry on working.
Where players find it
- Cancel Current Task in the supervisor menu. It only shows up while a round is actually running (while loading the van, or out delivering) — there's nothing to cancel otherwise.
- Cancel Current Task on the delivery van itself, using the interaction eye.
Both ask for confirmation first, so nobody cancels by accident.
What cancelling does
- The current round is forfeited. Whatever stops were left are wiped and won't pay.
- Deliveries the player already finished on this shift still count, and still pay out at clock-out as normal.
- The player stays clocked in, and the van stays exactly where it is — no need to walk back to the depot.
- The box pallet at the depot is tidied up, including for other players who could see it.
- No fine and no complaint. Cancelling is not treated as a failure.
In a crew
Only the crew leader can cancel. If a crew member tries, they're told "Only the crew leader can cancel the task". When the leader cancels, the round clears for both players and both go back to the clocked-in state.
A crew member who wants out of the shift entirely just clocks out the way they always could — they're paid their share on the way out.
The wait afterwards
After cancelling, the player has to wait a short while before they can take a new round or clock in again from scratch. The default is 60 seconds, set by Config.Cancel.cooldownSeconds (Cancelling a round in /postaljob settings). The on-screen message tells them exactly how many seconds are left, and the wait is tied to the character, so relogging doesn't skip it. Set it to 0 if you don't want any wait at all.
Delivery Timers
Timers scale with distance — a far address gets more time than a close one:
timeLimit = Config.Timer.baseTime + math.floor(distance * Config.Timer.timePerDistanceUnit)Both values are in Config.Timer (default: 60 seconds base + 0.25 seconds per meter).
Running out of time is not a failure:
- the delivery can still be completed
- the on-time bonus is lost
- the pay for that delivery is reduced (default 15%,
Config.Timer.expiredPenalty)
Smart Routes
Addresses picked by level
Delivery addresses aren't purely random. Each level has a spreadFactor that shapes the route:
- New players get addresses spread far apart — they see more of the map while learning the job.
- High-level players get addresses clustered close together — faster, more efficient routes as a reward.
Sensible driving order
Selected addresses are sorted into a logical driving loop starting from the depot, so players aren't sent zig-zagging across town. When a crew partner joins before a fresh round, the bonus deliveries are folded into the route and it re-sorts; joining mid-route doesn't reshuffle deliveries the driver has already planned around.
The Delivery Van
- White
boxville2van with aGOPOSTplate - The player automatically gets the keys, and the tank is filled
- The rear doors (the two back doors) must be open to load or grab anything
- Van health is checked every second. If the engine is wrecked (or the van despawns), the current round is cancelled, the player gets a complaint, and the destroy fine is charged immediately
- Light damage isn't free either — body damage below the threshold is billed at clock-out (
Config.Vehicle.damageChargeRate)
Levels and Progression
Progress is saved to the database per character, so it survives restarts and applies on any depot.
| Level | Title | Deliveries needed | What improves |
|---|---|---|---|
| 1 | Trainee | 0 | — |
| 2 | Mail Carrier | 20 | Bigger rounds, better pay and tips |
| 3 | Senior Courier | 50 | Bigger rounds, better pay and tips |
| 4 | Route Manager | 100 | Bigger rounds, better pay and tips |
| 5 | Head Postman | 200 | Best pay (1.5x), best tips, tightest routes |
Across the five levels: the pay multiplier climbs from 1.0x to 1.5x, tip chance from 10% to 40%, tip size from $5–15 to $15–50, package rounds from 3 to 9 stops, letter rounds from 3 to 6 stops, and routes get progressively tighter. All of this is editable under Levels (Progression) in /postaljob settings.
Daily streaks
Delivering on back-to-back real-world days builds a streak, worth a small bonus per delivery (default $10 per streak day, capped at 7 days). Missing a day drops the streak back to 1.
Complaints and suspensions
Players collect a complaint when:
- the delivery van is destroyed
- they die or go down during a shift
Each completed delivery removes a complaint, so steady work clears a record. Hitting the limit (default 3) suspends the player from the job for a cooldown (default 30 minutes).
Pay
Per delivery
Each delivery earns:
- base pay (default $40)
- a distance bonus (longer drives pay more)
- an on-time bonus (default $20) — or a late penalty instead
- the player's level multiplier
- their daily streak bonus
- sometimes a random tip
subtotal = floor((basePay + distanceBonus + speedBonus) * levelMultiplier * timerMultiplier)
total = subtotal + streakBonus + tipA delivery made faster than any vehicle could drive it (Config.Payment.maxTravelSpeed, 50 meters per second in a straight line from where the van was loaded or the previous stop) pays no distance bonus and no on-time bonus. Normal driving never comes close.
At clock-out
Per-delivery earnings are added up and paid as one lump sum when the player clocks out (deposited to Config.Payment.payoutAccount, default bank). Before payout, these come off the top:
- early-finish penalty — clocking out with undelivered items in the van (default 20%)
- van damage charge — based on how beat up the van is
- gas fee (default 5%)
- taxes (default 10%)
A player who disconnects or logs out on shift isn't paid at that moment, because their character may already be gone. Their pay is worked out as a clock-out would, kept in the database, and paid a few seconds after that character next loads in, with a notification saying how much. It's paid once, even if the server restarts in between. A shift lost to dying on shift pays nothing, also when the player quits before respawning.
The van-destroyed fine is the one exception: it's taken from the player (default: cash) the moment the van is lost, not at clock-out.
Crews (2-Player Co-op)
A player on shift can invite one nearby player to work the same van.
How it works
- The inviter must already be clocked in; the invitee must be close by, not on a shift, and not in another crew
- When a partner joins, the round gets 2 extra deliveries (
Config.Crew.extraDeliveries) - Either player can pick up boxes, load the van, grab packages, and make deliveries
- Both players are paid for every delivery made while crewed, each on their own level multiplier, tip chance, and streak bonus, so a new carrier working with a veteran earns at their own level
- Each of those deliveries adds a co-op bonus (default 15%) of each player's own pay
- Both players see a pay notification for every delivery, each showing their own pay
If someone leaves
The remaining player can always keep working:
- Leader clocks out → the van and the route transfer to the partner
- Partner clocks out → the leader continues solo
- Either disconnects or dies → the other is notified and continues solo
Each player is paid when they clock out, for the deliveries credited to them: every delivery made while they were in the crew, plus any they made on their own. A partner is never paid for deliveries the leader made before they joined, including when the leader leaves and the van passes to them.
Customer Handoff
On package deliveries, a customer NPC (a random model from Config.CustomerPeds) walks up to the player, takes the box out of their hands, and walks off with it before fading away. Letters don't spawn a customer — they go straight into the letterbox.
Pallets Visible to Other Players
Players who aren't on shift still see the box pallets at the depot while someone else is loading — boxes disappear from the stack in real time as the worker carries them off. These are visual-only props (no collision with gameplay) and clean up automatically when the bystander leaves the area or starts their own shift.
Uniforms
Off by default. With Config.uniformsEnabled = true, players get a uniform button in the supervisor menu. There are separate outfits for male and female characters, and the player's own clothes are restored when they take the uniform off or clock out.
Phone Messages
With Config.usePhone on, the depot keeps players posted on their phone: a welcome at clock-in, a message when someone joins their crew, the pay summary (see End-of-Shift Summary), and a notice when the van is destroyed, when they die or go down on shift, or when they're clocked out after going to hospital.
They arrive as texts on phones that support texts from a service, and as mail on the others. Phone shift messages in the installation guide lists which phones get which.
Oxide Phone's Gigs app
If your server runs Oxide Phone, its Gigs app shows this job with nothing to set up. Players can check the depots and whether each has room, their current shift (loading the van or the stop they're on, how many stops are done, their crew role, and the pay so far), and their job level.
While a player carries an Oxide Phone and the Gigs app is on, shift updates arrive there as Gigs notifications instead of texts. The pay summary is the exception: it always arrives as a text or mail.
End-of-Shift Summary
Config.shiftSummary controls how the final pay breakdown is shown at clock-out:
'text'(default): the breakdown is sent to the player's phone as a text or mail (see Phone Messages), and a clock-out notification shows on screen. WithConfig.usePhoneoff, a short net-pay notification is shown instead'nui': a pop-up summary screen opens on clock-out, with either menu style, and nothing is sent to the phone
A shift that ends any other way than a clock-out (its depot deleted in /postaljob settings, or a resource restart) gets the breakdown as with 'text', in either mode.
On-Screen Helpers
Delivery HUD
While delivering, a small overlay shows the countdown timer (turning into a "late" indicator if it runs out), how many stops are done, and contextual hints like "press E to deliver".
With Oxide HUD
On a server running Oxide HUD (free, needs o-link 1.12.1 or newer), players can move the delivery overlay and the tutorial prompts in the /hud editor, or switch them off. Both hide with the HUD (pause menu, character select, death), use the server's accent colour (see Config.UseHudAccent in Main Switches), and the HUD hides while the shift menu or the shift summary is open. Without Oxide HUD everything stays where it is.
Floating waypoint
Players can hold H to show a floating 3D marker over the current delivery address, with a live distance readout. It scales with distance and hides when the key is released. The key can be rebound in GTA's keybind settings.
First-Time Tutorials
Nine short tooltip prompts teach the job the first time each situation comes up: clocking in, loading, starting a route, completing a delivery, running out the timer, damaging the van, leveling up, finishing a round, and forming a crew. Each shows only once per player.
Players control them with two commands:
/postaljob tutorials— turn tutorial prompts on or off/postaljob tutorialreset— show all prompts again from scratch
The older /postaltutorials and /postaltutorialreset commands still work too.
Live Settings
Nearly every part of the job — pay, levels, timers, crew, the van, depots, NPCs and blips, uniforms, props, tutorials — is edited in-game with /postaljob settings and applies instantly, with no restart. See The Settings Editor.
Next Steps
Configuration Reference
Every oxide-postaljob setting and its factory default — plus how database-backed settings, the /postaljob settings editor, and adding a second depot work.
Admin & Developer Tools
Commands, the /postaljob settings editor, the in-game location builder, and managing player progression in oxide-postaljob.