Skip to content

Troubleshooting / FAQ

Create menu items not showing (e.g. TrackMarkersSO)

Symptoms: - You can’t find Create → RaceTiming → TrackMarkersSO

Common causes: 1. Unity compile errors: fix all Console errors first. 2. Unity needs reimport/recompile. 3. Library cache issue.

Try (in order): 1. Assets → Reimport All 2. Reimport TrackMarkerScriptableObject.cs 3. Close Unity and delete Library/ folder, then reopen

See also: MENU_TROUBLESHOOTING.md (repo root).


Can’t add waypoints / nothing happens when clicking

Checklist: - Is the TrackMarkers GameObject selected? - Does it have TrackMarkerManagerBehaviour? - Is a TrackMarkersSO assigned? - Are you holding Shift while clicking? - Does your scene have colliders/terrain for raycasts?


Race Tower UI not showing

  • Ensure RaceTowerUI.RowPrefab is assigned
  • Ensure RaceTowerUI.Container is assigned
  • Ensure RaceTimingManager exists and the session is running
  • Ensure at least one RaceCompetitor exists (rows are created per competitor)

See also: UI Setup: RaceTowerUI


Waypoints not visible

  • Ensure the TrackMarkers GameObject is selected.
  • Ensure the ScriptableObject has markers in its list.
  • Scene view must be active.

No toast notifications

See the setup guide: - UI Setup: Toast Notifications

RaceToastBridge requires: - A UnityToast.ToastManager in the scene - A RaceTimingManager in the scene

Check Console for: - [RaceToastBridge] No ToastManager found... - [RaceToastBridge] No RaceTimingManager found...


Gaps show as "---" or look incorrect

  • Drivers that have not crossed the start line may show --- (by design in some modes).
  • Ensure your track loop is correct and cars actually wrap from ratio ~1 back to ~0.
  • Ensure RaceTimingManager is finding the TrackMarkerManagerBehaviour and setting LapTimer.TrackLength.

Track editor performance concerns

The track marker system is generally fine for typical race tracks. If you push marker counts very high (hundreds/thousands), consider: - reducing marker density - using subdivision settings appropriately - (future option) using KD-tree acceleration for nearest lookups


Penalties not affecting standings

Symptoms: - Time penalties issued but race results unchanged - DSQ competitors still showing in normal positions

Solutions: 1. Verify you're using PenaltyAwareRankingStrategy (default): csharp var strategy = RaceTimingManager.Instance.LapTimer.RaceDirector.RankingStrategy; Debug.Log($"Strategy: {strategy.GetType().Name}"); 2. Ensure penalties are being applied before checking standings 3. Check Console for any penalty-related errors


Invalidated laps still showing in Race Tower

Symptoms: - Lap invalidated but still appears as best lap - "Gap to Best Lap" mode shows invalid times

Solution: - This should be fixed in current version (uses GetBestValidLap()) - If using custom UI code, update to use ILapInvalidationManager.GetBestValidLap()


Can't revalidate a lap

Symptoms: - RevalidateLap() called but lap still shows as invalid

Solution: - Auto-invalidated laps (incomplete sectors) cannot be revalidated by design - Only manually invalidated laps can be revalidated - Check lap.IsAutoInvalidated to see if it's auto-invalidated


Penalty events not firing

Symptoms: - Subscribed to penalty events but no callbacks

Solutions: 1. Subscribe in Start() or later, not Awake(): csharp void Start() { var pm = RaceTimingManager.Instance.LapTimer.RaceDirector.PenaltyManager; pm.OnTimePenaltyIssued += HandlePenalty; } 2. Ensure RaceTimingManager is initialized before subscribing 3. Check that penalties are actually being issued (add Debug.Log in issue methods)


Current lap invalidation flag persists

Symptoms: - InvalidateCurrentLap flag still true after lap completion

Expected behavior: - Flag should auto-clear when lap completes - If persisting, check your RaceTiming version or file a bug report