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.
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.
Extension Name
gameplay_rally_recceApp
Exports
| Function | Signature | Description |
|---------
| M.setLastLoadState | (state) | nil | setLastLoadState |
| M.setLastMissionId | (mid) | nil | setLastMissionId |-|-----------|-------------|
| M.onUpdate | (dtReal, dtSim, dtRaw) | Per-frame update: draws notes, captures vehicle data |
| M.reload | (rallyExt) | Refreshes mission list and settings, triggers UI update |
| M.loadMission | (missionId, missionDir) | Loads a rally mission with notebook and driveline |
| M.unloadMission | () | Unloads current mission |
| M.moveVehicleToStart | () | Teleports vehicle to default start position |
| M.moveVehicleForward | () | Teleports vehicle to next pacenote |
| M.moveVehicleBackward | () | Teleports vehicle to previous pacenote |
| M.moveVehicleToMission | () | Teleports vehicle to mission start trigger |
| M.recordDrivelineStart | (recordVoice) | Begins driveline recording (optionally with voice) |
| M.recordDrivelineStop | () | Stops and writes driveline recording |
| M.recordDrivelineCut | () | Records a voice cut marker at current position |
| M.recordDrivelineClearAll | () | Clears all recorded data (driveline, cuts, transcripts) |
| M.setEnabled | (val) | Enables/disables the recce app |
| M.isEnabled | () | Returns enabled state |
| M.isRecording | () | Returns whether driveline is being recorded |
| M.setShowNotes | (val) | Toggles pacenote display |
| M.toggleDebug | () | Toggles debug mode via gameplay_rally |
| M.toggleMouseLikeVehicle | () | Toggles mouse-as-vehicle mode in rally toolbox |
UI Events (guihooks)
| Event | Data | Description |
|---|---|---|
rally.recceApp.refreshed | {missions, last_mission_id, last_load_state, corner_angles_style} | Sent after reload with mission list |
rally.recceApp.missionLoaded | (success, errorMsg) | Sent after mission load attempt |
rallyInputActionDesktopCallNotOk | client_msg | Sent when voice transcription fails |
How It Works
Mission Loading
- Calls
gameplay_rally.loadMission()to set up the rally manager - Builds a KD-tree from all corner-start waypoints for fast nearest-neighbor lookup
- Saves last loaded mission ID to recce settings
- Triggers UI notification of load success/failure
Vehicle Navigation
Uses KD-tree to find the nearest pacenote corner-start waypoint to the vehicle, then teleports forward or backward through the pacenote sequence. After teleport, reloads the rally manager to reset driveline tracking.
Recording Workflow
recordDrivelineStart(recordVoice)- initializesVehicleCaptureandCutCapture- Per-frame
updateVehicleCapture()- captures vehicle position if recording recordDrivelineCut()- saves cut marker, optionally triggers voice transcription via rally clientrecordDrivelineStop()- writes capture data to disk
Mission Filtering
On reload, filters missions by:
- Current level
- Mission types:
rallyStage,rallyStageLoop,rallyRoadSection
-- Extension usage
extensions.load('gameplay_rally_recceApp')
gameplay_rally_recceApp.setEnabled(true)
gameplay_rally_recceApp.reload()| Function | Signature | Returns | Description |
|---|---|---|---|
M.setLastMissionId | (mid) | nil | setLastMissionId |
M.setLastLoadState | (state) | nil | setLastLoadState |
See Also
- Rally Audio Manager - Related reference
- Rally Camera Path Player - Related reference
- Rally Client - Related reference
- Gameplay Systems Guide - Guide
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.
Recce Settings
Persists recce mode settings per-level: last loaded mission, load state, and corner call style. Stored as JSON at the rally settings root.