Configuration Reference

Complete reference for all Oxide Roadside Assistance configuration settings organized by config file.

Config File Map

FilePurpose
shared/config.luaGeneral settings (debug, phone, menu style, slot limits, shift states, job types)
shared/config/job.luaCrew, payment, complaints, timer, call dispatch settings
shared/config/levels.luaProgression level definitions
shared/config/locations.luaTow yard locations with NPC and vehicle spawn positions
shared/config/events.luaAll 40 job events with coordinates, vehicle models, and mission times
shared/config/vehicles.luaTow truck model and health settings
shared/config/props.luaTool props, animations, jack mechanics
shared/config/visuals.luaNPC models, blips, driver peds, stranded NPC behavior, breakdown visuals, safety zones, cone system, repair effects, waypoints
shared/config/tutorials.luaTutorial tooltip definitions
shared/init.luaBridge initialization, debug function
server/main.luaRate limit configuration

General Settings

File: shared/config.lua

SettingTypeDefaultDescription
Config.DebugbooleanfalseEnable debug logging with [oxide-roadsideassistancejob] prefix
Config.usePhonebooleantrueSend shift emails via phone instead of toast notifications
Config.shiftSummarystring'text'Shift summary display mode: 'nui' for popup summary screen, 'text' for email summary
Config.menuStylestring'nui'Dispatcher menu style: 'nui' for Vue shift menu with cinematic camera, 'menu' for Bridge.Menu context menu
Config.MaxSlotsPerLocationnumber3Maximum concurrent shift slots per tow yard location

Job Settings

File: shared/config/job.lua

Crew

SettingTypeDefaultDescription
Config.Crew.maxSizenumber2Maximum crew members (leader + partner)
Config.Crew.inviteTimeoutnumber60Seconds before a crew invite expires
Config.Crew.coopBonusPercentnumber0.15Bonus percentage applied to jobs completed while in a crew (15%)

Payment

SettingTypeDefaultDescription
Config.Payment.basePaytableSee belowBase pay per job type
Config.Payment.distanceBonusPerUnitnumber0.30Bonus per distance unit from accept location to event
Config.Payment.speedBonusAmountnumber25Flat bonus for completing a job before the timer expires
Config.Payment.vehicleDestroyFinenumber200Flat fine when the tow truck is destroyed
Config.Payment.streakBonusPerDaynumber10Bonus added per consecutive daily streak day
Config.Payment.maxStreakDaysnumber7Maximum streak days (caps the streak bonus)
Config.Payment.gasFeePercentnumber0.05Gas fee as a percentage of gross pay (5%)
Config.Payment.taxPercentnumber0.10Tax as a percentage of gross pay (10%)

Base Pay by Job Type

Job TypeBase Pay
Fuel Help$60
Wheel Change$80
Towing$100
Battery Change$70
Config.Payment.basePay = {
    [JobType.FUEL_HELP]      = 60,
    [JobType.CHANGE_WHEEL]   = 80,
    [JobType.TOWING]         = 100,
    [JobType.BATTERY_CHANGE] = 70,
}

Complaints

SettingTypeDefaultDescription
Config.Complaints.maxComplaintsnumber3Complaints needed to trigger a suspension
Config.Complaints.timeoutMinutesnumber30Suspension duration in minutes
Config.Complaints.vehicleDestroyPenaltynumber1Complaints added when the tow truck is destroyed
Config.Complaints.deathPenaltynumber1Complaints added when the player dies on shift
Config.Complaints.decayPerJobnumber1Complaints removed per successful job completion

Timer

SettingTypeDefaultDescription
Config.Timer.baseTimenumber90Base timer in seconds (unused in current formula; events use missionTime)
Config.Timer.timePerDistanceUnitnumber0.20Additional seconds per distance unit
Config.Timer.extraTimenumber120Extra time buffer added to mission timer
Config.Timer.expiredPenaltynumber0.85Payment multiplier when completing after the timer expires (15% penalty)

Calls

SettingTypeDefaultDescription
Config.Calls.minIntervalSecondsnumber15Minimum seconds between dispatch calls
Config.Calls.maxIntervalSecondsnumber45Maximum seconds between dispatch calls
Config.Calls.responseTimeSecondsnumber30Seconds to accept/decline a call before it counts as missed
Config.Calls.maxMissedCallsnumber3Missed/declined calls before automatic clock-out

Levels

File: shared/config/levels.lua

Each level is defined as an entry in Config.Levels:

FieldTypeDescription
titlestringLocale key for the level title
requiredJobsnumberTotal jobs needed to reach this level
payMultipliernumberMultiplier applied to base pay calculation
tipChancenumberProbability of receiving a tip (0.0–1.0)
tipRangetableMin/max tip amount { min, max }

Default Levels

Config.Levels = {
    [1] = { title = 'level.trainee',      requiredJobs = 0,   payMultiplier = 1.0,  tipChance = 0.10, tipRange = { 5, 15 }  },
    [2] = { title = 'level.mechanic',     requiredJobs = 15,  payMultiplier = 1.1,  tipChance = 0.15, tipRange = { 5, 20 }  },
    [3] = { title = 'level.senior_tech',  requiredJobs = 40,  payMultiplier = 1.2,  tipChance = 0.25, tipRange = { 10, 30 } },
    [4] = { title = 'level.team_lead',    requiredJobs = 80,  payMultiplier = 1.35, tipChance = 0.30, tipRange = { 10, 40 } },
    [5] = { title = 'level.master_tech',  requiredJobs = 150, payMultiplier = 1.5,  tipChance = 0.40, tipRange = { 15, 50 } },
}

Locations

File: shared/config/locations.lua

Each location in Config.Locations defines a complete tow yard:

FieldTypeDescription
namestringLocale key for the location name
coordsvector3Dispatcher NPC position
headingnumberNPC facing direction
vehicleSpawnvector4Tow truck spawn position and heading
menuCameratableCamera settings for NUI menu (coords, heading, rotation, fov)

Default Location

The resource ships with one tow yard location near the city.

Config.Locations = {
    {
        name = 'location.tow_yard',
        coords = vector3(2403.55, 3127.90, 48.15),
        heading = 251.85,
        vehicleSpawn = vector4(2394.27, 3120.37, 48.15, 71.61),
        menuCamera = {
            coords = vector3(2410.19, 3131.07, 50.63),
            heading = 150.41,
            rotation = vector3(-15.0, 0.0, 0.0),
            fov = 50.0,
        },
    },
}

Events

File: shared/config/events.lua

Each event in Config.Events defines a service call:

FieldTypeDescription
typestringJob type constant (JobType.FUEL_HELP, JobType.CHANGE_WHEEL, JobType.TOWING, JobType.BATTERY_CHANGE)
labelstringLocale key for the event label
missionTimenumberMission timer in seconds
vehiclestringGTA vehicle model name for the stranded vehicle
coordsvec4Spawn position and heading for the stranded vehicle
fuelBonenumber(Fuel help only) Bone index for the fuel cap
deliveryCoordsvec3(Towing only) Drop-off delivery coordinates
npcDriverbooleanWhether to spawn an NPC driver in the vehicle

Event Count by Type

Job TypeEventsMission Time
Fuel Help107 minutes
Wheel Change1010 minutes
Battery Change108 minutes
Towing108 minutes

Vehicle

File: shared/config/vehicles.lua

SettingTypeDefaultDescription
Config.Vehicle.modelstring'towtruck'Tow truck model name
Config.Vehicle.spawnDistancenumber5.0Distance threshold for spawn area clearing
Config.Vehicle.healthCheckIntervalnumber1000Milliseconds between health checks
Config.Vehicle.destroyedThresholdnumber150Engine health below which the truck is considered destroyed
Config.Vehicle.damageChargeRatenumber0.50Dollar charge per health point below damage threshold
Config.Vehicle.damageChargeThresholdnumber950Body health below which damage charges apply

Props

File: shared/config/props.lua

Tool Props

Each prop in Config.Props defines a tool with vehicle and player attachment configurations:

PropModelVehicle BonePlayer Bone
jackimp_prop_car_jack_01a3 (chassis)28422 (right hand)
spareWheelimp_prop_impexp_tire_02c3 (chassis)28422 (right hand)
jerryCanw_am_jerrycan3 (chassis)28422 (right hand)
batteryprop_car_battery_013 (chassis)28422 (right hand)

Each prop has vehicleAttach (bone, offset, rotation) and playerAttach (bone, offset, rotation, animDict, animName) sub-tables.

Fuel Animation

SettingTypeDefaultDescription
Config.FuelAnimation.durationnumber10000Refuelling animation duration (ms)
Config.FuelAnimation.dictstring'weapons@misc@jerrycan@'Animation dictionary
Config.FuelAnimation.animstring'fire'Animation clip name

Wheel Animation

SettingTypeDefaultDescription
Config.WheelAnimation.durationnumber10000Wheel change animation duration (ms)
Config.WheelAnimation.dictstring'anim@amb@clubhouse@tutorial@bkr_tut_ig3@'Animation dictionary
Config.WheelAnimation.animstring'machinic_loop_mechandplayer'Animation clip name

Battery Animation

SettingTypeDefaultDescription
Config.BatteryAnimation.durationnumber8000Battery change animation duration (ms)
Config.BatteryAnimation.dictstring'mini@repair'Animation dictionary
Config.BatteryAnimation.animstring'fixing_a_player'Animation clip name

Jack Attach

SettingTypeDefaultDescription
Config.JackAttach.bonestring'chassis'Vehicle bone the jack attaches relative to
Config.JackAttach.raiseStepstable{ 0.01, 0.03, 0.06, 0.09, 0.12, 0.15 }Incremental Z offsets for vehicle raise
Config.JackAttach.stepTimenumber800Milliseconds per pump stroke

Wheel Bones

Config.WheelBones maps wheel bone names to GTA tire indices. One is randomly selected at runtime for wheel change jobs:

Bone NameTire Index
wheel_lf0 (front-left)
wheel_rf1 (front-right)
wheel_lr2 (rear-left)
wheel_rr3 (rear-right)

Visuals

File: shared/config/visuals.lua

NPC and Blip Settings

SettingTypeDefaultDescription
Config.NpcModelstring's_m_m_autoshop_01'Ped model for the dispatcher NPC
Config.NpcScenariostring'WORLD_HUMAN_CLIPBOARD'Ambient scenario the NPC performs
Config.Blip.spritenumber68Map blip sprite ID
Config.Blip.colornumber36Map blip color
Config.Blip.scalenumber0.8Map blip scale
Config.Blip.labelstring'blip.tow_yard'Locale key for blip label
Config.EventBlip.spritenumber280Blip sprite for job event locations
Config.EventBlip.colornumber33Event blip color
Config.EventBlip.scalenumber1.5Event blip scale
Config.DeliveryBlip.spritenumber225Blip sprite for towing delivery points
Config.DeliveryBlip.colornumber5Delivery blip color
Config.DeliveryBlip.scalenumber1.0Delivery blip scale

Driver Peds

Config.DriverPeds is an array of 16 ped model names used for spawning stranded NPC drivers. A random model is selected for each job.

Stranded NPC Behavior

SettingTypeDefaultDescription
Config.StrandedNPC.standOffsetvec3(2.5, 0.5, 0.0)Offset from vehicle for NPC standing position
Config.StrandedNPC.animationDistancenumber40.0Distance threshold for animation vs ambient scenario
Config.StrandedNPC.farScenariostring'WORLD_HUMAN_STAND_MOBILE'Ambient scenario when player is far away

Three reaction animations cycle when the player is nearby, plus an impatient animation when the timer is low.

Breakdown Visuals

SettingTypeDefaultDescription
Config.BreakdownVisuals.engineHealthnumber100.0Engine health for smoking effect
Config.BreakdownVisuals.alwaysHazardsbooleantrueEnable hazard lights on all breakdown types

Safety Zone

SettingTypeDefaultDescription
Config.SafetyZone.enabledbooleantrueEnable traffic safety zones around breakdown scenes
Config.SafetyZone.scenarioBlockRadiusnumber20.0Radius to block ambient ped scenarios
Config.SafetyZone.clearVehiclesRadiusnumber10.0Radius to clear parked vehicles on job start

Speed Zone Tiers

TierRadiusSpeed
Inner15m4.0
Middle30m15.0
Outer50m25.0

Cones

SettingTypeDefaultDescription
Config.Cones.enabledbooleantrueEnable the cone placement system
Config.Cones.modelstring'prop_roadcone01a'Road cone prop model
Config.Cones.maxConesnumber3Maximum cones available per shift
Config.Cones.bonusPerConenumber5Bonus payment per cone placed when job completes
Config.Cones.placementRangenumber6.0Max placement distance from player (meters)

Repair Effects

SettingTypeDefaultDescription
Config.RepairEffects.enabledbooleantrueEnable spark particle effects during repairs
Config.RepairEffects.spark.dictstring'core'Particle effect dictionary
Config.RepairEffects.spark.namestring'ent_dst_elec_fire_sp'Particle effect name
Config.RepairEffects.spark.scalenumber0.4Particle scale
Config.RepairEffects.spark.durationnumber1500Particle duration (ms)

Waypoints

SettingTypeDefaultDescription
Config.Waypoints.heightOffsetnumber5.0Height above ground for waypoint marker
Config.Waypoints.updateIntervalnumber0Render thread sleep time (0 = every frame)
Config.Waypoints.scaleMinnumber0.5Minimum scale at far distance
Config.Waypoints.scaleMaxnumber1.0Maximum scale at near distance
Config.Waypoints.scaleNearDistnumber30.0Distance at which maximum scale is used
Config.Waypoints.scaleFarDistnumber300.0Distance at which minimum scale is used

Tutorials

File: shared/config/tutorials.lua

Each entry in Config.Tutorials defines a tooltip:

FieldTypeDefaultDescription
iconstringFontAwesome icon class
titlestringLocale key for the tooltip title
bodystringLocale key for the tooltip body text
positionstring'top-right'Screen position (top-right, bottom-right, center-top, etc.)
durationnumber10Auto-dismiss time in seconds

Tutorial Keys

KeyTrigger
first_clockinFirst time clocking in
first_incoming_callFirst dispatch call received
first_call_declineFirst declined or missed call
first_fuel_jobFirst fuel help job
first_wheel_jobFirst wheel change job
first_battery_jobFirst battery replacement job
first_towing_jobFirst towing job
first_coneFirst cone taken from truck
first_timer_expiredFirst late job finish
first_vehicle_damageFirst vehicle destruction
first_job_completeFirst job completed
first_crewFirst crew formation
first_level_upFirst level up

Enums

File: shared/config.lua

ShiftState

ValueConstantDescription
'idle'ShiftState.IDLENot on shift
'waiting'ShiftState.WAITINGOn shift, waiting for dispatch
'on_call'ShiftState.ON_CALLCall accepted, driving to scene
'working'ShiftState.WORKINGPerforming service job

JobType

ValueConstantDescription
'fuel_help'JobType.FUEL_HELPFuel refuelling job
'change_wheel'JobType.CHANGE_WHEELWheel change job
'towing'JobType.TOWINGVehicle towing job
'battery_change'JobType.BATTERY_CHANGEBattery replacement job

Rate Limits

File: server/main.lua

Server-side rate limiting prevents action spam. Each action has a cooldown period in milliseconds:

ActionCooldown (ms)Description
clockIn2000Clocking in to a shift
clockOut2000Clocking out of a shift
acceptCall2000Accepting a dispatch call
rejectCall2000Rejecting a dispatch call
completeJob5000Completing a service job
crewInvite5000Sending a crew invite
respondToInvite2000Accepting/declining a crew invite
propSync500Prop state sync to crew partner
coneSync500Cone state sync to crew partner
repairStepSync1000Repair step sync to crew partner
updateVehicle2000Tow truck network ID update
updateStrandedVehicle5000Stranded vehicle network ID update
vehicleDestroyed10000Vehicle destroyed event