Troubleshooting
Solutions for common issues with Oxide Roadside Assistance organized by problem domain.
Shift Issues
Can't Clock In
Symptoms: Player interacts with the dispatcher but cannot clock in. Error notification appears.
Solutions:
- No slots available — Check if the location has reached
Config.MaxSlotsPerLocation(default: 3). Wait for another player to clock out, or increase the limit inshared/config.lua - Already clocked in — The player already has an active shift. Clock out first before clocking in again
- Suspended — The player has accumulated too many complaints and is temporarily banned. Check the suspension timer in the dispatcher menu. The timeout duration is configured via
Config.Complaints.timeoutMinutes(default: 30 minutes) - Spawn area occupied — Another player or vehicle is blocking the tow truck spawn point. Wait for the area to clear
- Rate limited — The clock-in action has a 2-second cooldown. Wait and try again
Dispatcher Menu Not Appearing
Symptoms: Third-eye target doesn't show on the dispatcher NPC, or the menu doesn't open.
Solutions:
- Verify your targeting resource is working (ox_target, qb-target, etc.) and is supported by community_bridge
- Check that the NPC spawned correctly — look for the auto shop worker model at the tow yard coordinates
- Ensure the player's character is loaded (community_bridge
OnPlayerLoadedevent must have fired) - Check the server console for resource start errors
NPC Not Spawning
Symptoms: No dispatcher NPC visible at the tow yard.
Solutions:
- Verify the NPC model
s_m_m_autoshop_01is valid and not blocked by your server - Check that
Config.Locationshas valid coordinates - Look for errors in the client console related to model loading
- Ensure the resource started without errors
Call Dispatch Issues
No Calls Being Dispatched
Symptoms: Player clocks in but never receives a service call.
Solutions:
- Ensure the player is in
WAITINGstate (not already on a call or working) - Calls are dispatched at random intervals between 15–45 seconds. Wait for at least 1 minute
- Check debug mode output for dispatch timer messages
- Verify
Config.Callssettings are reasonable (not set to extremely long intervals) - If in a crew, only the leader receives and accepts calls
Call Notification Not Appearing
Symptoms: Server logs show a call was dispatched but no notification appears on screen.
Solutions:
- Ensure the NUI frontend is loaded (check
web/dist/index.htmlexists) - Check the F8 console for JavaScript errors
- The incoming call uses keyboard input (E to accept, Backspace to decline) — not mouse focus
Auto Clock-Out After Missed Calls
Symptoms: Player is automatically clocked out unexpectedly.
This is intended behavior. After 3 missed or declined calls (configurable via Config.Calls.maxMissedCalls), the player is automatically clocked out. To adjust:
- Increase
Config.Calls.maxMissedCallsinshared/config/job.lua - Increase
Config.Calls.responseTimeSecondsto give more time to respond
Vehicle Issues
Tow Truck Not Spawning
Symptoms: Player clocks in but no tow truck appears at the tow yard.
Solutions:
- Check that the
vehicleSpawncoordinates inConfig.Locationsare valid and accessible - Verify the vehicle model
towtruck(or your configured model) exists and isn't blocked - Check if another vehicle is blocking the spawn point — ensure the area around the
vehicleSpawncoordinates is clear of persistent vehicles - Look for errors in the client console related to vehicle creation
No Vehicle Keys
Symptoms: Tow truck spawns but the player can't enter or drive it.
Solutions:
- Verify your vehicle key system is configured in community_bridge
- Check that
Bridge.VehicleKey.GiveKeysis working with your key resource - The truck's plate is set to
TOWSVC— ensure your key system can handle custom plates
Tow Truck Destroyed Mid-Shift
Symptoms: Current job cancelled, fine notification appears, dispatch stops.
This is intended behavior. When the truck's engine health drops below the destroyed threshold (default: 150):
- Current job is cancelled
- A complaint is added
- A $200 fine is deducted from cash
- Dispatch stops
To adjust sensitivity, modify Config.Vehicle.destroyedThreshold in shared/config/vehicles.lua.
Job Issues
Stranded Vehicle Not Spawning
Symptoms: Player accepts a call but no stranded vehicle appears at the event location.
Solutions:
- Check that the event coordinates in
Config.Eventsare valid road positions - Verify the vehicle model specified in the event exists
- Check the client console for vehicle model loading errors
- Ensure the location isn't underground or inside a building collision
NPC Driver Not Exiting Vehicle
Symptoms: The stranded NPC stays inside the vehicle and doesn't walk to the standing position.
Solutions:
- The NPC exit sequence has an 8-second timeout — wait for it to complete
- Check that the NPC model loaded correctly (from
Config.DriverPeds) - If the vehicle is in a tight space, the NPC may not have room to exit
Tow Vehicle Detaching
Symptoms: The towed vehicle detaches from the tow truck mid-drive.
Solutions:
- Drive carefully — sharp turns and high speeds can break the attachment
- The tow distance warning system alerts you if you drive too far ahead
- If the vehicle detaches, return to it to re-attach
Job Won't Complete
Symptoms: Player finishes the repair steps but the job doesn't register as complete.
Solutions:
- For fuel help: ensure the refuelling animation played to completion
- For wheel change: all three steps must complete (place jack, change wheel, remove jack)
- For battery change: both remove and install steps must complete
- For towing: must be at the delivery drop-off point within 20m
- Check that props were returned to the truck where required
- The complete action has a 5-second rate limit cooldown
Props Issues
Props Not Visible on Truck
Symptoms: Tow truck spawns but no props (jack, wheel, jerry can, battery) are visible on the bed.
Solutions:
- Check that the prop models load correctly — verify models exist in your GTA installation
- Look for client console errors related to
CreateObject - Props attach to bone 3 (chassis) — verify the tow truck model has this bone
Can't Take Props from Truck
Symptoms: Third-eye targets for taking props don't appear on the tow truck.
Solutions:
- Props are only available during
WORKINGstate (must have an active job) - Check that the prop is in
ON_TRUCKstate (not already taken) - Verify target interactions are working with your targeting resource
- Must be within 4m of the truck
Carry Animation Not Playing
Symptoms: Player takes a prop but no carry animation plays.
Solutions:
- Check that animation dictionaries load correctly
- Some server resources may interfere with ped animations — check for conflicts
- The animation will clear automatically when returning the prop to the truck
Cone Issues
Cones Not on Truck
Symptoms: No cones visible on the tow truck bed.
Solutions:
- Check that
Config.Cones.enabledistrueinshared/config/visuals.lua - Verify the cone model
prop_roadcone01aloads correctly - Cones attach to
Config.Cones.truckAttachpositions on the truck
Ghost Preview Not Showing
Symptoms: Player takes a cone but no ghost placement preview appears.
Solutions:
- The ghost preview uses camera raycasting — ensure the player is looking at a valid ground surface
- Maximum placement range is 6m (configurable via
Config.Cones.placementRange) - Check the F8 console for errors
Speed Zones Not Working
Symptoms: Cones are placed but traffic doesn't slow down.
Solutions:
- Check that
Config.SafetyZone.enabledistrue - Speed zones are created per-cone, not globally — verify cones are actually placed
- Speed zones affect NPC vehicles within the configured radii (15/30/50m)
Crew Issues
Can't Invite Partner
Symptoms: Invite fails or returns an error.
Solutions:
- The leader must be clocked in and on an active shift
- The leader must not already have a crew partner
- Enter the target player's server ID (not character ID)
- Both players must be within 15m of each other
- The invite has a 5-second rate limit cooldown
Partner Not Receiving Invite
Symptoms: Leader sends invite but partner sees nothing.
Solutions:
- The target player must not already be in a crew or on a shift
- The target player must not have a pending invite from another player
- If the partner is near the dispatcher NPC, the invite appears in their menu
- Otherwise, a notification tells them to visit the dispatcher to accept
- Invites expire after 60 seconds (configurable via
Config.Crew.inviteTimeout)
Crew Sync Issues
Symptoms: Partner doesn't see the same job state or can't interact with the scene.
Solutions:
- Job state is synchronized via server events — both players receive the same call data
- The partner resolves the leader's vehicle via network ID — if the vehicle isn't loaded on the partner's client, there will be a delay
- If sync issues persist, the leader can clock out and back in
Vehicle Transfer Problems
Symptoms: When the leader clocks out, the partner can't use the vehicle.
Solutions:
- Vehicle ownership transfers automatically via
RoadsideVehicle.TakeOwnership() - If the vehicle entity doesn't resolve on the partner's client, wait for network sync
- The partner's health monitor restarts after transfer
Payment Issues
Not Receiving Payment
Symptoms: Player completes jobs but doesn't get paid.
Solutions:
- Payment is issued as a lump sum to the bank account when clocking out, not per job
- Check the shift summary (NUI screen or email) for the payment breakdown
- Verify community_bridge framework payment functions are working
- Check the server console for errors related to
Bridge.Framework.AddAccountBalance
Incorrect Amounts
Symptoms: Payment seems too low or too high.
Solutions:
- Review the payment breakdown in the shift summary
- Check for late finish penalty (0.85x multiplier on late jobs)
- Vehicle damage charges reduce the final payout
- Gas fee (5%) and taxes (10%) are deducted from gross pay
- Crew jobs include a 15% co-op bonus
- Verify
Config.Paymentsettings match expectations
Streak Not Counting
Symptoms: Daily streak doesn't increment.
Solutions:
- Streaks are tracked by real-world calendar date
- The streak only increments once per day (first job of the day)
- Missing a day resets the streak to 1 (not 0)
- Check the database
last_job_datecolumn for the character
Progression Issues
Level Not Updating
Symptoms: Player has enough jobs but hasn't leveled up.
Solutions:
- Level-up is checked after each job — ensure the job completed successfully
- Verify
total_jobsin the database matches expectations - Check
Config.Levelsfor therequiredJobsthreshold - Level 5 is the maximum — no further progression
Complaints Not Resetting
Symptoms: Complaints stay at maximum even after jobs.
Solutions:
- Each successful job reduces complaints by
Config.Complaints.decayPerJob(default: 1) - If complaints reach
maxComplaints(3), the player is suspended and complaints reset to 0 - Check the database directly for the current complaint count
Timeout Not Expiring
Symptoms: Player is still suspended past the expected duration.
Solutions:
- Check the
timeout_untilcolumn in the database for the actual expiry time - Timeout is stored as a
DATETIMEand compared againstos.time()on the server - Ensure the server's system clock is correct
- Manually clear the timeout:
UPDATE roadsideassistancejob_progression SET timeout_until = NULL WHERE char_id = ?;
HUD and NUI Issues
Timer Not Showing
Symptoms: No timer display during active jobs.
Solutions:
- Ensure the web UI was built:
cd web && npm install && npm run build - Check that
web/dist/index.htmlexists - Verify
ui_pageinfxmanifest.luapoints toweb/dist/index.html - Check the F8 console for NUI errors
NUI Stuck Open
Symptoms: Menu or summary screen won't close, cursor is stuck.
Solutions:
- Try pressing
Escapeto close the menu - If the NUI focus is stuck, restart the resource
- Check for JavaScript errors in the F8 console
- As a last resort, reconnect to the server
Camera Issues in Menu
Symptoms: Menu camera doesn't appear or is positioned incorrectly.
Solutions:
- The menu camera is configured per-location via
menuCamerainConfig.Locations - Camera uses a gentle sway animation for visual polish
- If using bridge menu style (
Config.menuStyle = 'menu'), no camera is used
Tutorial Tooltips Not Showing
Symptoms: No tutorial tooltips appear for new players.
Solutions:
- Check that tutorials haven't been disabled: run
/roadsidetutorialsto re-enable - Run
/roadsidetutorialresetto clear all seen state - Tutorials require
Config.Tutorialsto be defined inshared/config/tutorials.lua - Check the F8 console for NUI errors
Performance
Prop Cleanup
If props from a crashed resource remain in the world:
- Restart the resource to trigger cleanup handlers
- Vehicle, NPC, prop, and cone entities are cleaned up on shift end, character unload, and resource stop
- Safety zones (speed zones and scenario blocks) are removed during cleanup
Thread Optimization
The resource uses several polling threads:
| Thread | Sleep Interval | Active During |
|---|---|---|
| Vehicle health monitor | 1000ms | Any shift state |
| NPC animation cycle | 100–2000ms | Active job with NPC |
| Cone ghost preview | 0ms | Placing a cone |
| Waypoint render | 0ms (configurable) | Waypoint visible (H held) |
| Call input listener | 0ms | Incoming call notification |
Threads automatically stop when not needed and restart on demand.
Debug Mode
Enabling Debug Mode
Set Config.Debug = true in shared/config.lua and restart the resource. Debug messages are prefixed with [oxide-roadsideassistancejob] in both server and client consoles.
What Gets Logged
- Shift state transitions
- Clock in/out events with slot counts
- Dispatch timer starts and call dispatch events
- Call accept/reject/miss with missed call counts
- Job completion and payment calculations
- Crew formation, dissolution, and vehicle transfers
- Progression loading, saving, level-ups, and complaint changes
- Prop attachment and state changes
- Cone placement and speed zone creation
- Vehicle spawn, destruction, and health monitoring
- NPC spawn and cleanup
- Safety zone creation and removal
Getting Help
When reporting issues, include the following information:
- Server framework (ESX, QBCore, QBx, etc.)
- community_bridge version
- ox_lib version
- Error messages from the server console (F8 or terminal)
- Steps to reproduce the issue
- Whether the issue occurs solo or in a crew
- Current shift state when the issue occurred
- Debug mode output if available