Configuration Reference

Complete reference for oxide-newspaperjob configuration files.

Every setting in oxide-newspaperjob, explained.

All settings live in plain text files you can open with any text editor (Notepad++, VS Code, etc.). After changing a setting, restart the resource (restart oxide-newspaperjob in the server console) for it to take effect.

Which File Has What

FileWhat's in it
shared/config.luaThe main switches: menu style, phone, depot slots
shared/config/job.luaPay rates, complaints, timers, throwing, paper supply
shared/config/levels.luaThe five job levels and what each unlocks
shared/config/locations.luaThe depots and every deliverable house
shared/config/vehicles.luaThe delivery bike
shared/config/visuals.luaThe depot worker, map icons, and markers
shared/config/outfits.luaThe carrier uniform
shared/config/tutorials.luaThe first-time player tips

Main Settings

File: shared/config.lua

SettingDefaultWhat it does
Config.DebugfalsePrints extra [oxide-newspaperjob] messages to the console — only useful when troubleshooting
Config.menuStyle'nui''nui' for the full shift menu with camera, 'menu' for a plain context menu
Config.usePhonetrueSends shift emails (welcome, incidents, pay stub) to the player's phone
Config.shiftSummary'text'What the player sees on clock-out: 'nui' for a pop-up window, 'text' for a notification
Config.MaxSlotsPerLocation3How many players can work out of one depot at the same time
Config.Item.weapon'weapon_newspaper'The inventory item used as the throwable newspaper

Pay

File: shared/config/job.lua, Config.Payment

SettingDefaultWhat it does
basePay12Flat pay for every delivered house, in dollars
distanceBonusPerUnit0.20Extra pay per meter between the depot and the house — farther houses pay more
speedBonusAmount8Flat bonus for finishing a route inside the time limit
streakBonusPerDay5Extra pay per house for each day of the player's daily streak
maxStreakDays7The streak stops growing past this many days
minDeliveryTimePerDistanceUnit0.01Anti-cheat: minimum seconds a delivery must take, per meter of distance
absoluteMinDeliveryTime2Anti-cheat: no delivery can ever count in under this many seconds
gasFeePercent0.0Fuel deduction from the shift payout — zero, it's a bicycle
taxPercent0.10Tax taken off the shift payout (0.10 = 10%)
bikeLostFine75The fine charged when the bike is lost or destroyed
payoutAccount'bank'Where the shift payout goes
tipAccount'cash'Where tips go (paid instantly at the house)
fineAccount'cash'Where the bike fine is taken from

Complaints

File: shared/config/job.lua, Config.Complaints

SettingDefaultWhat it does
maxComplaints3Complaints needed to trigger a suspension
timeoutMinutes30How long the suspension lasts
bikeLostPenalty1Complaints added for losing the bike
deathPenalty1Complaints added for dying on shift
outOfAmmoPenalty1Complaints added for running out of papers mid-route
decayPerDelivery1Complaints removed for each completed delivery

Route Timer

File: shared/config/job.lua, Config.Timer

SettingDefaultWhat it does
baseTime300Seconds every route gets, regardless of size
timePerHouse30Extra seconds added per house on the route
expiredPenalty0.85If the timer runs out, route earnings are multiplied by this (0.85 = players keep 85%)

Throwing

File: shared/config/job.lua, Config.Throw

SettingDefaultWhat it does
hitRadius8.0How close (in meters) a paper must land to the target to count — each level sets its own, this is the fallback
pollInterval50How often (milliseconds) the script checks where a thrown paper landed
maxPollTime8000How long (milliseconds) it keeps checking before calling it a miss
weaponHashWEAPON_ACIDPACKAGEThe real GTA throwable used under the hood — leave this alone
minThrowCooldown500Minimum milliseconds between two throws being counted
maxPlayerToTargetDist80.0Anti-cheat: how far the player can stand from the house and still score a hit

Paper Supply

File: shared/config/job.lua, Config.Supply

SettingDefaultWhat it does
spareAmmo5Spare papers given on top of one-per-house
bonusAmmoPerLevel2Extra spares for each job level above 1

Pickup Animation

File: shared/config/job.lua, Config.Animations.pickup — the short packing animation played at the depot before a route starts.

SettingDefaultWhat it does
dict'anim@heists@box_carry@'Animation set
anim'idle'Animation within that set
duration3000How long it plays, in milliseconds

Newspaper Bag

File: shared/config/job.lua, Config.NewspaperBag — the bag prop shown on the player's back during a route.

SettingDefaultWhat it does
enabledtrueShow the bag or not
model'xm3_p_xm3_m_bag_var22_arm_s'Which prop to use
bone24818Where on the body it attaches (the default is the upper back)
offsetvec3(-0.30, -0.02, 0.0)Fine-tunes the position
rotationvec3(0.0, 90.0, 180.0)Fine-tunes the angle

Levels

File: shared/config/levels.lua

Five levels ship by default, from Paper Carrier through Route Legend. Each entry in Config.Levels sets:

FieldWhat it does
titleThe level's display name
requiredDeliveriesTotal lifetime deliveries needed to reach the level
maxHousesThe biggest route the level can get
hitRadiusHow close throws must land, in meters — lower at higher levels
tipChanceOdds of a tip per house (0.08 = 8%)
tipRangeThe smallest and largest possible tip
payMultiplierMultiplies the base + distance pay for every house

You can add, remove, or re-tune levels freely — just keep requiredDeliveries increasing from one level to the next.

Depots and Houses

File: shared/config/locations.lua

The script ships with 2 depots and 80 delivery houses. Each depot entry contains:

FieldWhat it does
nameThe depot's name, shown on the map and in the menu
coordsWhere the depot worker stands
headingWhich way the worker faces
vehicleSpawnWhere the BMX appears on clock-in
menuCameraWhere the menu's camera sits and looks from
deliveryZonesThe list of houses this depot delivers to

Each house in deliveryZones has:

FieldWhat it does
coordsThe spot the paper must land near
minLevelThe job level needed before this house shows up on routes
labelThe street name shown to the player

Tip: don't edit this file by hand. The in-game builder (/newspaperbuilder) places depots and houses where you're standing and exports a ready-to-paste config. See Admin.

The Bike

File: shared/config/vehicles.lua, Config.Vehicle

SettingDefaultWhat it does
model'bmx'The bike model
primaryColor{ 15, 15, 15 }Main color (red, green, blue values)
secondaryColor{ 240, 230, 100 }Accent color
spawnDistance5.0How much clear space the spawn point needs
bikeLostCheckInterval2000How often (milliseconds) the script checks whether the bike still exists and is nearby
bikeLostMaxDistance300.0Walk farther than this from the bike (in meters) and it counts as abandoned
livery-1Paint job number, for replacement bike models that have them (the stock BMX has none)
extrasnilOptional vehicle extras to toggle, for replacement models

Map Icons and the Depot Worker

File: shared/config/visuals.lua

SettingDefaultWhat it does
Config.NpcModel'a_m_m_business_01'What the depot worker looks like
Config.NpcScenario'WORLD_HUMAN_CLIPBOARD'What the worker is doing (holding a clipboard)
Config.Blip.enabledtrueShow depots on the map or not
Config.Blip.sprite945The map icon
Config.Blip.color5The icon color (yellow)
Config.Blip.scale0.5The icon size
Config.Blip.label'Newspaper Depot'Fallback map name if a depot has no name

Config.DeliveryMarker controls the marker drawn around the active house target — it only appears when Config.Debug is on, as a tuning aid:

SettingDefaultWhat it does
type28The marker style (28 = sphere)
scalevector3(1.0, 1.0, 1.0)Sizes the marker relative to the level's hit radius — at 1.0 it shows exactly where throws will count
coloryellow, semi-transparentThe marker color (red, green, blue, alpha values)
bobUpAndDownfalseMakes the marker float up and down
rotatefalseMakes the marker spin

Config.Waypoints tunes the floating house indicator (the one shown by holding H): how high it floats, how it scales with distance, and how often it refreshes.

Uniforms

File: shared/config/outfits.lua

SettingDefaultWhat it does
Config.uniformsEnabledfalseAdds a uniform option to the shift menu

Config.NewspaperOutfitMale and Config.NewspaperOutfitFemale define the outfits as lists of clothing component and prop values. The shipped values are placeholders — set your own before enabling uniforms.

Tutorials

File: shared/config/tutorials.lua

Nine first-time tips ship by default, keyed by moment (first_clockin, first_throw_hit, first_bike_lost, and so on). Each defines an icon and the title/body text keys. Entries can optionally set a screen position and a duration in seconds — when omitted, tips show top-right for 10 seconds.

The tip text itself lives in locales/en.json, so it can be translated.

Rate Limits

The server enforces short cooldowns on player actions to block spam. These are fixed in server/main.lua (not in a config file):

ActionCooldown
Completing a house500 ms
Requesting a route3000 ms
Clocking in2000 ms
Clocking out2000 ms
Reporting a lost bike10000 ms
Reporting empty papers5000 ms

Next Steps