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

Inspect Vehicle

Manages vehicle inspection and test drive flow for dealership/private vehicle purchasing. Spawns vehicles at parking spots, handles player travel to inspection location, manages tethers to prevent lea

Manages vehicle inspection and test drive flow for dealership/private vehicle purchasing. Spawns vehicles at parking spots, handles player travel to inspection location, manages tethers to prevent leaving, and coordinates test drive lifecycle.


Internal State

FieldTypeDescription
M.dependenciesvariesAssigned as {}

Public API

FunctionSignatureDescription
M.showVehicle(vehicleInfo) → vehObjSpawns a vehicle from shop data and stores test drive vehicle info
M.startInspection(vehicleInfo, teleportToVehicle)Full inspection flow: spawn vehicle, park it, set up tethers/navigation
M.buySpawnedVehicle(buyVehicleOptions)Purchases the currently spawned vehicle via vehicleShopping
M.startTestDrive()Closes menus and starts test drive with current vehicle/info
M.getSpawnedVehicleInfo() → tableReturns {shopId, vehId, name, value} of the spawned vehicle
M.getDidTestDrive() → boolWhether the player completed a test drive
M.getInspectVehiclePoi() → table/nilReturns POI data for the inspect vehicle marker
M.repairVehicle()Repair vehicle with fade screen (tutorial only)
M.leaveSaleCallback(despawnMode, freeze, checkDmg, msg)Internal: handles leaving a sale with cleanup

Hook Handlers

HookPurpose
M.onUpdateTracks player distance, arrival timer, vehicle movement
M.onVehicleDestroyedResets inspection if inspected vehicle is destroyed
M.onTestDriveStartedSets didTestDrive flag, removes sale tether
M.onAnyMissionChangedLeaves sale on mission start
M.onDeliveryModeStartedLeaves sale on delivery mode
M.onGetRawPoiListForLevelAdds inspection POI to level
M.onActivityAcceptGatherDataProvides purchase button for activity UI
M.onPurchaseMenuClosedRemoves purchase tether
M.onTestDriveAbandonedFlags vehicle for deletion on abandon
M.onTestDriveEndedAfterFadeRe-adds sale tethers after test drive ends

Flow Overview

startInspection(vehicleInfo, teleport)
  ├── Despawn previous vehicle (if any)
  ├── showVehicle() → spawn frozen vehicle
  ├── Find/assign parking spot (dealer or private)
  ├── Move vehicle to parking spot
  ├── If teleport: quickTravel to spot
  │   Else: set ground markers + arrival timer
  └── defineTestDriveParameters()
       └── Sets time limit, area limit, abandon fees, route

startTestDrive()
  └── career_modules_testDrive.start(vehId, testDriveInfo)

buySpawnedVehicle()
  └── career_modules_vehicleShopping.buySpawnedVehicle()
  └── leaveSaleCallback("dontDespawn", false, false)

Key Internals

  • Tethers: Uses career_modules_tether to prevent player from wandering too far from sale
  • Vehicle movement check: Monitors if the sale vehicle gets moved from its parking spot (anti-theft)
  • Arrival timer: Player has a calculated time to drive to private seller locations
  • Test drive damage: Checks for damage after test drive via insurance.genericVehNeedsRepair

See Also

  • testDrive - Test drive execution
  • vehicleShopping - Vehicle purchase flow
  • insurance - Damage claim for test drives

Career Fuel System

M.dependencies = {'career_career'}

Vehicle Inventory

M.dependencies = {'career_career', "career_modules_log", "render_renderViews", "util_screenshotCreator"}

On this page

Internal StatePublic APIHook HandlersFlow OverviewKey InternalsSee Also