Recce Manager
High-level manager for rally recce (reconnaissance) recordings. Coordinates loading driveline recordings and voice cut markers, then converts them into pacenote data for the notebook.
High-level manager for rally recce (reconnaissance) recordings. Coordinates loading driveline recordings and voice cut markers, then converts them into pacenote data for the notebook.
Constructor
local Recce = require('/lua/ge/extensions/gameplay/rally/recce')
local recce = Recce(missionDir)Public API
| Function | Signature | Returns | Description |
|---|---|---|---|
C:loadDrivelineAndCuts | () | boolean | Loads both driveline and cuts recordings |
C:loadDriveline | () | boolean | Loads driveline recording (position/orientation points) |
C:loadCuts | () | boolean | Loads cut markers and transcripts |
C:drivelineAndCutsLoaded | () | boolean | Whether both data sources are loaded |
C:createPacenotesData | (notebook) | table | Converts cuts into pacenote import data |
C:drawDebugRecce | (drawLabels, mouseInfo) | nil | Debug draws driveline and cuts |
C:drawDebugCuts | () | nil | Debug draws cut markers as 3D car shapes |
M.init | (missionDir) | nil | init |
M.drawLittleCar | (pos, quat, txt) | nil | drawLittleCar |
How It Works
Data Sources
- Driveline: Timestamped position/orientation points recorded during a recce run, loaded via
drivelineRecording.load()→ returns aPointList - Cuts: Waypoint markers where the co-driver made voice recordings, loaded via
cutsRecording.load()→ includes transcript text from speech-to-text
Pacenote Import Flow (createPacenotesData)
- Creates a
Snaproadfrom the driveline for snap-to-road functionality - Iterates through cuts in order
- For each cut:
- Snaps the cut position to the closest snaproad point → corner end (CE)
- Calculates corner start (CS) by walking backwards on the snaproad
- Handles edge cases (first point, duplicate positions)
- Merges duplicate cuts (same CE position) by concatenating transcript text
- Returns array of pacenote data objects ready for notebook import
Pacenote Data Structure
{
name = "Import_1 42",
notes = { english = { note = "left 3 over crest" } },
metadata = {},
oldId = 42,
pacenoteWaypoints = {
{ name = "corner start", pos = vec3(...), radius = 20, waypointType = "cornerStart", ... },
{ name = "corner end", pos = vec3(...), radius = 20, waypointType = "cornerEnd", ... }
}
}Debug Visualization
Draws cuts as 3D car shapes (square prisms with wheel spheres) in teal, with transcript text displayed above each car.
-- Load and import recce data
local recce = Recce(missionDir)
recce:loadDrivelineAndCuts()
if recce:drivelineAndCutsLoaded() then
local pacenotes = recce:createPacenotesData(notebook)
-- pacenotes can be imported into the notebook
endSee Also
- Rally Audio Manager - Related reference
- Rally Camera Path Player - Related reference
- Rally Client - Related reference
- Gameplay Systems Guide - Guide
Rally Manager
Central runtime manager for a rally stage. Coordinates the notebook, driveline route, audio manager, vehicle tracker, and pacenote queue during gameplay.
Recce App
Extension that manages the recce (reconnaissance) mode UI and recording workflow. Handles mission loading, vehicle navigation, driveline/voice recording, and communication with the CEF recce app.