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
Rally Transcripts EntryRally Transcripts PathRally Transcripts Vehicle Snapshot

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 Extensionsgameplayrallytranscripts

Rally Transcripts Entry

Class-based object representing a single transcript entry in the rally editor. Stores vehicle position/rotation data, speech-to-text results, and capture data for pacenote corner analysis. Provides de

Class-based object representing a single transcript entry in the rally editor. Stores vehicle position/rotation data, speech-to-text results, and capture data for pacenote corner analysis. Provides debug visualization of a 3D car shape and color-coded capture points.


Constructor

local Entry = require('gameplay/rally/transcripts/entry')
local entry = Entry(path, name, forceId)
ParameterTypeDescription
pathobjectParent path with getNextUniqueIdentifier()
namestring?Display name (defaults to "t_"..id)
forceIdnumber?Override auto-generated ID

Methods

MethodSignatureReturnsDescription
toggleShow()nilToggle visibility
setShow(val)nilSet visibility flag
isUsable()boolHas valid vehicle_data and is visible
debugDrawText(hovered)stringReturns text label (adds "click to copy" when hovered)
vehiclePos()vec3?Vehicle position from vehicle_data
vehicleQuat()quat?Vehicle rotation from vehicle_data
capture_data()table?Steering capture data
get_grouped_captures()table?Groups captures by corner call, with gradient colors
onSerialize()tableSerialize to JSON-safe table
onDeserialized(data, oldIdMap)nilRestore from serialized data
drawDebug(is_hovered, is_selected)nilDraw 3D car shape + capture dots
playCameraPath()nilPlay camera path along capture points
lookAtMe()nilPoint camera at this entry's vehicle position

Internals

  • Fields: id, name, sortOrder, show, text, success, src, file, beamng_file, timestamp, vehicle_data, grouped_captures
  • Debug drawing: Renders a box-prism car shape with 4 wheel spheres, colored teal (normal), white (hovered), or bright teal (selected)
  • Capture grouping: Groups sequential captures by corner call string, assigns gradient colors from red→yellow→green based on corner angle data
  • Camera path: Converts capture data into a core_paths compatible path and plays it

Dependencies

  • gameplay/rally/util/colors - color constants
  • gameplay/rally/util - determineCornerCall(), setCameraTarget()
  • core_paths - camera path playback

How It Works

  1. Each entry stores STT transcript text and vehicle snapshot data from a recce recording
  2. get_grouped_captures() processes steering capture data against corner angle definitions to classify each point (e.g., "3L", "C")
  3. Sequential captures with the same corner call are grouped together, with a label drawn at the midpoint
  4. Debug visualization draws a 3D prism car at the recorded position and colored spheres along the driving line
-- Check if an entry has usable data
if entry:isUsable() then
  local pos = entry:vehiclePos()
  local groups = entry:get_grouped_captures()
  for _, grp in ipairs(groups) do
    print(grp.calc.cornerCallStr) -- e.g. "3L", "C", "5R"
  end
end
FunctionSignatureReturnsDescription
M.drawDebugVehicleData(is_hovered, is_selected)nildrawDebugVehicleData
M.drawDebugCaptureData(is_hovered, is_selected)nildrawDebugCaptureData

See Also

  • Rally Transcripts Path - Related reference
  • Rally Transcripts Vehicle Snapshot - Related reference
  • Gameplay Systems Guide - Guide

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.

Rally Transcripts Path

Class-based container managing a sorted list of transcript entries. Handles loading/saving transcript files and debug visualization of all entries.

On this page

ConstructorMethodsInternalsDependenciesHow It WorksSee Also