RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

server/commands - Camera & Input Commandsge_utils - Game Engine Utility Functionsmain.lua - GE Lua Entry Point & Game Loopmap.lua - Navigation Graph (AI Road Map)screenshot.lua - Screenshot Systemserver/server - Level Loading & Game ServerserverConnection - Client-Server Connection Manager`setSpawnpoint` - Default Spawn Point Persistence`simTimeAuthority` - Simulation Time & Bullet Time Control`spawn` - Vehicle Spawning & Safe Placement`suspensionFrequencyTester` - Suspension Natural Frequency Analysis
Career BranchesCareer System CoreCareer Save System
Career Computer MenuCareer Fuel SystemInspect VehicleVehicle InventoryLinear TutorialLoaner VehiclesCareer LogLogbookMarketplaceMission WrapperCareer Painting ModuleCareer Part Inventory ModuleCareer Part Shopping ModuleCareer Payment ModuleCareer Permissions ModuleCareer Playbook Writer ModuleCareer Player Abstract ModuleCareer Player Attributes ModuleCareer Player Driving ModuleCareer Quick Travel ModuleCareer Rentals ModuleCareer Reputation ModuleCareer Spawn Points ModuleCareer Speed Traps ModuleCareer Test Drive ModuleCareer Tether ModuleCareer Tuning ModuleCareer UI Utils ModuleCareer Unlock Flags ModuleCareer Value Calculator ModuleVehicle Class GroupingVehicle Deletion ServiceVehicle PerformanceVehicle Shopping

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 Extensionscareermodules

Career Test Drive Module

Manages test drive sessions from vehicle dealerships. Handles time limits, distance tethering, vehicle teleport-back on completion, abandon fees, and POI markers for return points.

Manages test drive sessions from vehicle dealerships. Handles time limits, distance tethering, vehicle teleport-back on completion, abandon fees, and POI markers for return points.


Internal State

FieldTypeDescription
M.dependenciesvariesAssigned as {}

Public API

FunctionSignatureDescription
M.start(vehicleId, testDriveInfo)Begins test drive: enters vehicle, snapshots part condition, disables autosave
M.stop()Ends test drive with fade-to-black, teleports vehicle back to dealership
M.abandonTestDrive()Force-ends drive with abandon fee (triggered by walking too far)
M.isActive() → boolWhether a test drive is in progress
M.getTimeLeft() → number/nilRemaining seconds or nil
M.resetData()Clears all test drive state
M.formatTestDriveToRawPoi(elements)Adds end-parking-spot POI to elements list

Lifecycle Hooks

HookPurpose
M.onUpdateChecks time limit and player-vehicle distance each frame
M.onCareerModulesActivatedResets state on career activation
M.onVehicleRepairedByInsuranceShows repair cost message during test drive
M.onGetRawPoiListForLevelInjects test-drive return POI into the POI system
M.onPoiDetailPromptOpeningAdds "Stop Test Drive" button to POI prompts
M.onBeforeRadialOpenedAdds "Stop Test Drive" to radial quick-access menu

Test Drive Info Structure

testDriveInfo = {
  timeLimit          = 120,          -- seconds (nil = unlimited)
  endParkingSpot     = spotObj,      -- parking spot for return
  endParkingSpotCreated = true,
  dealershipName     = "Gavril",
  dealershipPreview  = "/path/to/preview.jpg",
  route              = "route_01",
  abandonFees        = 500,          -- fee for not returning (0 for private sales)
}

Mechanics

  • Time limit: Countdown displayed in UI; auto-stops when expired
  • Distance check: Auto-abandons if player > 10m from test-drive vehicle
  • Part condition snapshot: Creates "beforeTestDrive" snapshot for reset
  • End sequence: Fades screen, teleports vehicle to start pos, enters walking mode facing vehicle
  • Autosave: Disabled during test drive, re-enabled on stop

Usage Example

-- Start a test drive (typically called by dealership code)
career_modules_testDrive.start(vehId, {
  timeLimit = 180,
  abandonFees = 300,
  dealershipName = "Ibishu",
})

-- Stop manually
career_modules_testDrive.stop()

Hooks Emitted

HookWhen
onTestDriveStartedTest drive begins
onTestDriveEndedAfterFadeFade-back complete after stop

See Also

  • tether - Boundary system (not used here directly; uses distance check)
  • payment - Abandon fee payment

Career Speed Traps Module

M.dependencies = {'career_career', 'gameplay_speedTraps'}

Career Tether Module

Spatial boundary system that triggers callbacks when the player leaves defined areas. Supports box, sphere, capsule, and vehicle-tracking tether shapes. Used by part shopping, tuning, and other garage

On this page

Internal StatePublic APILifecycle HooksTest Drive Info StructureMechanicsUsage ExampleHooks EmittedSee Also