Configuration Reference

Reference for the current oxide-roadsideassistancejob config layout.

Config File Map

FilePurpose
shared/config.luaCore toggles, menu mode, summary mode, enums
shared/config/job.luaCrew, payment, complaints, timer, call settings
shared/config/levels.luaLevel thresholds and rewards
shared/config/locations.luaTow yards and global towing delivery fallback
shared/config/events.luaEvent list used by dispatch
shared/config/vehicles.luaTow truck settings
shared/config/props.luaTool prop, animation, jack, and wheel settings
shared/config/visuals.luaNPCs, blips, cones, safety zones, effects, waypoints
shared/config/tutorials.luaTutorial definitions

General Settings

File: shared/config.lua

SettingTypeDefaultDescription
Config.DebugbooleanfalseEnables debug logging
Config.usePhonebooleantrueSends service messages through o-link.phone instead of notification-only flow
Config.shiftSummarystring'text''nui' for popup summary when menu mode is not 'menu', 'text' for phone/toast summary
Config.menuStylestring'nui''nui' for the Vue menu, 'menu' for olink.menu
Config.MaxSlotsPerLocationnumber3Max concurrent shifts at a tow yard

Enums

ShiftState

  • idle
  • waiting
  • on_call
  • working

JobType

  • fuel_help
  • change_wheel
  • towing
  • battery_change

Job Settings

File: shared/config/job.lua

Crew

SettingDefaultDescription
Config.Crew.maxSize2Crew size limit
Config.Crew.inviteTimeout60Crew invite expiry in seconds
Config.Crew.coopBonusPercent0.15Co-op bonus added to completed jobs

Payment

SettingDefaultDescription
Config.Payment.distanceBonusPerUnit0.30Distance bonus multiplier
Config.Payment.speedBonusAmount25Bonus when finishing before timer expiry
Config.Payment.vehicleDestroyFine200Cash fine when the tow truck is destroyed
Config.Payment.streakBonusPerDay10Daily streak bonus amount
Config.Payment.maxStreakDays7Daily streak cap
Config.Payment.gasFeePercent0.05Gross-pay gas deduction
Config.Payment.taxPercent0.10Gross-pay tax deduction

Base pay by job type

Config.Payment.basePay = {
    [JobType.FUEL_HELP]      = 60,
    [JobType.CHANGE_WHEEL]   = 80,
    [JobType.TOWING]         = 100,
    [JobType.BATTERY_CHANGE] = 70,
}

Complaints

SettingDefaultDescription
Config.Complaints.maxComplaints3Complaints before timeout
Config.Complaints.timeoutMinutes30Timeout duration
Config.Complaints.vehicleDestroyPenalty1Complaints added on vehicle destruction
Config.Complaints.deathPenalty1Complaints added on death/down
Config.Complaints.decayPerJob1Complaints removed per completed job

Timer

SettingDefaultDescription
Config.Timer.baseTime90Base mission time in seconds
Config.Timer.timePerDistanceUnit0.20Added seconds per unit from call acceptance to event
Config.Timer.expiredPenalty0.85Pay multiplier for late completion

Current timer formula:

timeLimit = Config.Timer.baseTime + math.floor(distance * Config.Timer.timePerDistanceUnit)

There is no Config.Timer.extraTime in the current implementation, and default events do not define missionTime.

Calls

SettingDefaultDescription
Config.Calls.minIntervalSeconds15Minimum delay between dispatches
Config.Calls.maxIntervalSeconds45Maximum delay between dispatches
Config.Calls.responseTimeSeconds30Accept/decline window
Config.Calls.maxMissedCalls3Misses/declines before auto clock-out

Levels

File: shared/config/levels.lua

Each level entry defines:

  • title
  • requiredJobs
  • payMultiplier
  • tipChance
  • tipRange

Default progression is 5 levels from trainee through master technician.

Locations

File: shared/config/locations.lua

Global tow delivery fallback

Config.TowingDeliveryPoint = vector3(2387.94, 3088.48, 48.19)

This is used for towing jobs when an event does not define its own deliveryCoords.

Tow yard fields

Each Config.Locations entry contains:

  • name
  • coords
  • heading
  • vehicleSpawn
  • menuCamera

The default resource ships with 1 tow yard.

Events

File: shared/config/events.lua

Each event defines a dispatchable roadside scene. Current fields are:

FieldDescription
typeOne of the JobType values
labelLocale key for the job label
vehicleGTA vehicle model
coordsEvent spawn position and heading
fuelBoneOptional fuel-cap bone index for fuel jobs
deliveryCoordsOptional per-event towing drop-off override
npcDriverWhether the scene spawns a stranded NPC driver

The default package contains 40 events total. Dispatch groups events by shared scene coordinates to reduce repeated locations back-to-back.

Vehicle

File: shared/config/vehicles.lua

SettingDefaultDescription
Config.Vehicle.model'towtruck'Tow truck model
Config.Vehicle.spawnDistance5.0Spawn-clearance threshold
Config.Vehicle.healthCheckInterval1000Health monitor interval in ms
Config.Vehicle.destroyedThreshold150Engine-health destruction threshold
Config.Vehicle.damageChargeRate0.50Damage deduction per body-health point under threshold
Config.Vehicle.damageChargeThreshold950Body-health threshold for clock-out damage charges

Props

File: shared/config/props.lua

This file controls:

  • tool prop models
  • truck attachment offsets
  • player carry attachment offsets
  • fuel, wheel, and battery animations
  • jack raise steps and timing
  • wheel bone mappings

Primary props:

  • jack
  • spareWheel
  • jerryCan
  • battery

Visuals

File: shared/config/visuals.lua

NPC and blips

  • Config.NpcModel
  • Config.NpcScenario
  • Config.Blip
  • Config.EventBlip
  • Config.DeliveryBlip

Driver peds

Config.DriverPeds contains 16 possible stranded-driver models.

Stranded NPC behavior

Config.StrandedNPC controls:

  • stand offset
  • animation cycle
  • impatient animation
  • far-away scenario
  • animation distance threshold

Breakdown visuals

Config.BreakdownVisuals controls damage points, smoke health, and hazards.

Safety zones

Config.SafetyZone controls:

  • whether safety zones run
  • speed zone tiers
  • scenario blocking radius
  • parked vehicle clearing radius

Cones

Config.Cones controls:

  • enabled state
  • cone model
  • max cone count
  • per-cone bonus
  • placement range
  • truck attach positions
  • player attach position

Repair effects

Config.RepairEffects.spark controls spark VFX during wheel and battery work.

Waypoints

Config.Waypoints controls marker height, scaling, and render timing.

Tutorials

File: shared/config/tutorials.lua

Config.Tutorials contains 13 first-time guidance prompts. Each entry defines:

  • icon
  • title
  • body
  • position
  • duration

Server Rate Limits

File: server/main.lua

Current rate-limited actions include:

  • clockIn
  • clockOut
  • acceptCall
  • rejectCall
  • completeJob
  • crewInvite
  • respondToInvite
  • propSync
  • coneSync
  • repairStepSync
  • updateVehicle
  • updateStrandedVehicle
  • vehicleDestroyed

Next Steps