RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Gameplay AchievementGameplay CityDiscoverForce FieldGarage ModeMarker InteractionParking SystemGameplay Playmode MarkersGameplay PoliceGameplay RallyGameplay Rally LoopGameplay Raw POIsGameplay Skidpad TestSpeed Trap LeaderboardsSpeed Traps and CamerasGameplay StatisticsTaxi Ride SystemTraffic SystemVehicle PerformanceWalking
Rally Audio ManagerRally Camera Path PlayerRally ClientRally Cut CaptureRally EnumsRally Extension HelperRally GeometryRally ManagerRecce ManagerRecce AppRecce SettingsRally Settings ManagerSnap-to-RoadTraffic Exclusion ZonesRally UtilityRally Vehicle CaptureRally Vehicle Tracker

UI

Resources

BeamNG Game Engine Lua Cheat SheetGE Developer RecipesMCP Server Setup

// RLS.STUDIOS=true

Premium Mods for BeamNG.drive. Career systems, custom vehicles, and immersive gameplay experiences.

Index

HomeProjectsPatreon

Socials

DiscordPatreon (RLS)Patreon (Vehicles)

© 2026 RLS Studios. All rights reserved.

Modding since 2024

API ReferenceGE Extensionsgameplayrally

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)

EventDataDescription
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
rallyInputActionDesktopCallNotOkclient_msgSent when voice transcription fails

How It Works

Mission Loading

  1. Calls gameplay_rally.loadMission() to set up the rally manager
  2. Builds a KD-tree from all corner-start waypoints for fast nearest-neighbor lookup
  3. Saves last loaded mission ID to recce settings
  4. 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

  1. recordDrivelineStart(recordVoice) - initializes VehicleCapture and CutCapture
  2. Per-frame updateVehicleCapture() - captures vehicle position if recording
  3. recordDrivelineCut() - saves cut marker, optionally triggers voice transcription via rally client
  4. recordDrivelineStop() - 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()
FunctionSignatureReturnsDescription
M.setLastMissionId(mid)nilsetLastMissionId
M.setLastLoadState(state)nilsetLastLoadState

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.

On this page

Extension NameExportsUI Events (guihooks)How It WorksMission LoadingVehicle NavigationRecording WorkflowMission FilteringSee Also