Troubleshooting
Common issues and the current checks for oxide-roadsideassistancejob.
Shift Issues
Can't clock in
Check:
- The player is near a valid tow yard.
- The location still has free slots under
Config.MaxSlotsPerLocation. - The player is not already on shift.
- The player is not timed out from complaints.
- The tow truck spawn area is clear enough to spawn the vehicle.
Dispatcher menu does not open
Check:
o-linkis running before this resource.- Your
o-link.targetintegration is working on the server. - The dispatcher NPC spawned at the configured location.
- The player has fully loaded and
olink:client:playerReadyhas fired.
Dispatcher NPC does not spawn
Check:
Config.Locationshas valid coordinates.Config.NpcModelis valid.- The resource started without dependency errors.
Dispatch Issues
No calls arrive
Check:
- The player is in
WAITINGstate. - Dispatch has had enough time to fire within the configured random interval.
- The shift was not auto clocked out from missed calls.
- Debug logging is enabled if you need to trace dispatch timing.
Incoming call shows but cannot be accepted
Check:
- The response window has not expired.
- The player is the crew leader if in a crew.
- Rate limiting is not blocking repeated inputs.
Auto clock-out happens unexpectedly
This usually means the shift hit Config.Calls.maxMissedCalls through missed or declined calls.
Vehicle Issues
Tow truck does not spawn
Check:
Config.Vehicle.modelis valid.vehicleSpawnis accessible and not blocked.- The player is close enough to the dispatcher to clock in successfully.
No keys on the tow truck
Check:
- Your
o-link.vehiclekeymodule is configured for the active key system. o-linkis started before this resource.
Tow truck destroyed during shift
This is intended behavior when the truck drops below the configured destruction threshold.
Current effects:
- the active job is ended
- a complaint is added
- the configured destruction fine is removed from cash
- dispatch stops until the shift is finalized or transferred
Job Issues
Stranded vehicle or scene does not appear
Check:
- Event coordinates in
shared/config/events.lua. - Vehicle model names in the event data.
- Whether the event position is blocked or invalid.
Job will not complete
Check:
- The correct repair sequence was followed for the active job type.
- For towing, the player is close enough to the delivery point.
- The player is not failing the distance validation at completion time.
Timer feels wrong
The current timer is not per-event mission data. It is calculated from:
Config.Timer.baseTime + math.floor(distance * Config.Timer.timePerDistanceUnit)
If the value seems off, review the timer config and the distance between call acceptance and scene location.
Target, Prop, and Cone Issues
Targets do not appear
Check:
o-link.targetis configured correctly.- The player is in the correct state for the interaction.
- The player is within interaction range.
Props do not appear on the truck
Check:
- Prop models in
shared/config/props.lua. - Tow truck model compatibility with configured attachment points.
Cone placement does not work
Check:
Config.Cones.enabledistrue.- The cone is being placed within
Config.Cones.placementRange. - The player is aiming at valid ground.
Crew Issues
Cannot invite partner
Check:
- The inviter is already on shift.
- The target is a valid nearby player.
- The target is not already on shift.
- The target is not already in a crew.
- The invite action is not rate-limited.
Partner does not get the invite
Check:
- The target player entity exists.
- The players are close enough together.
- The target does not already have a pending invite.
Crew state becomes inconsistent
Check:
- Whether the shared tow truck network entity resolved on both clients.
- Whether one member disconnected, died, or clocked out during the scene.
- Whether a transfer occurred from leader to partner.
Payment and Progression Issues
No payout received
Check:
- The shift was actually finalized.
- Net pay was above zero after deductions.
- Your
o-link.moneyintegration is working for bank deposits.
Payout amount looks wrong
Review:
- distance bonus
- speed bonus
- cone bonus
- streak bonus
- random tip
- co-op bonus
- damage charge
- gas fee
- taxes
Progression is not saving
Check:
oxmysqlis running.job_progressionexists.- The row is being written with
job = 'roadside'.
Timeout or complaints do not look correct
Use SQL against the unified table:
SELECT *
FROM job_progression
WHERE char_id = ?
AND job = 'roadside';
UI Issues
NUI does not load
Check:
web/dist/index.htmlexists.- The built UI files are present under
web/dist/assets. ui_pageinfxmanifest.luastill points toweb/dist/index.html.
NUI summary or menu gets stuck
Check:
- Client console errors.
- Whether the issue only happens in
'nui'mode. - Whether switching to
Config.menuStyle = 'menu'isolates the problem.
Text summary is not sent
Check:
Config.shiftSummary = 'text'.Config.usePhone = trueif you expect a phone message.- Your
o-link.phonemodule is configured for the active phone script.
If Config.usePhone = false, the summary is sent as a notification instead.
If you expect a popup summary instead, make sure Config.menuStyle is not set to 'menu'.
Debugging
Enable:
Config.Debug = true
This adds [oxide-roadsideassistancejob] debug output for:
- shift flow
- dispatch timing
- crew actions
- progression saves
- vehicle handling
- cone and prop sync
When Reporting Issues
Include:
o-linkversion or current branch- active
o-linkmodules used for target, phone, money, and vehicle keys - server console errors
- client/F8 errors for UI issues
- reproduction steps
- whether the issue happened solo or in a crew
Support
Need more help?
- Discord: https://discord.gg/dZ6q8FyGhm
- Website: https://www.oxidestudios.dev/
- o-link (required abstraction layer): https://github.com/WHEREISDAN/o-link