Rally Loop Toolbox
ImGui debug panel for rally loop mode. Displays mission schedule, timing, penalties, proximity data, signboard locations, and provides vehicle/clock controls for testing multi-stage rally events.
ImGui debug panel for rally loop mode. Displays mission schedule, timing, penalties, proximity data, signboard locations, and provides vehicle/clock controls for testing multi-stage rally events.
Constructor
local LoopToolbox = require('/lua/ge/extensions/gameplay/rally/tools/loopToolbox')
local lt = LoopToolbox()Public API
| Function | Signature | Returns | Description |
|---|---|---|---|
C:init | () | nil | Initializes UI state, loads settings, refreshes mission list |
C:draw | (manager) | nil | Renders the full ImGui debug panel |
C:saveSettings | () | nil | Persists draw settings to JSON |
C:loadSettings | () | nil | Loads draw settings from JSON |
C:refreshMissionList | () | nil | Rebuilds mission dropdown for current level |
C:findSignboards | () | number | Scans scene tree for rally signboard objects |
C:formatDuration | (seconds, showSubseconds) | string | Formats duration as MM or HH:MM |
C:drawDebug | () | nil | Delegates 3D route debug drawing to gameplay_rallyLoop |
C:drawSignboardsDebug | () | nil | Draws signboard labels in 3D world |
M.getSelectedMissionId | () | nil | getSelectedMissionId |
How It Works
Panel Sections
- Mission Selector - Dropdown of
rallyLoopmissions on current level with Load/Unload buttons - Controls - Skip, time adjustment (±10s, ±1m), pause/resume clock
- Mission Info - Current mission ID and directory
- Proximity Data - Vehicle proximity status (near/frozen), timer progress bar
- Runtime Info - Current mission index, mission system sync check, mismatch warning
- Draw Settings - Checkboxes for route, labels, Z-ordering, signboards, stop zones, debug info
- Overview - Time of day, rally start time, distance totals (SS, liaison, total), total time and penalties
- Schedule - Full mission sequence with events, timecard entries, split times, and penalty details
- Testing - Test mode toggle with active state radio buttons (inactive/vehicleProximity/stageActive/countdown)
Settings Persistence
Stored at /settings/rally/loopToolbox.json:
{
selectedMissionId = "rally_loop_01",
drawRoute = true,
drawLabels = false,
drawZOnTop = true,
drawSignboards = false,
drawVehBB = false,
drawLeadingPoint = false,
showDebugInfo = false
}Signboard Scanner
Searches scenetree.MissionGroup recursively (depth 0-2, into Prefab*_unpacked groups) for objects with:
- Shape name containing
s_rally_signboard - Dynamic field
flag
Caches position, flag value, and shape name for debug rendering.
Schedule Display
For each mission in the loop sequence:
- Shows mission name with SS/liaison label and distance
- Shows allocated durations (transition + stage time)
- Color-codes current mission (green), highlights next event
- Displays timecard entries with actual times, timing status, and penalties
- Shows early/late calculation with penalty amounts
local lt = LoopToolbox()
lt:draw(rallyLoopManager) -- Renders full debug panelSee Also
- devTools - Rally Developer Tools Panel - Related reference
- rallyToolbox - Rally Debug Toolbox Panel - Related reference
- Gameplay Systems Guide - Guide
Rally Dev Tools
ImGui panel for rally development tools in the world editor. Provides text compositor enumeration, corner detection from driveline, pacenote generation, elevation profile analysis, and traffic exclusi
Rally Toolbox
Comprehensive ImGui debug panel for rally stage development. Provides visualization controls for race paths, driveline routes, pacenotes, KD-tree spatial queries, and mouse-as-vehicle simulation.