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
| Field | Type | Description |
|---|---|---|
M.dependencies | varies | Assigned as {} |
Public API
| Function | Signature | Description |
|---|---|---|
M.showVehicle | (vehicleInfo) → vehObj | Spawns 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 | () → table | Returns {shopId, vehId, name, value} of the spawned vehicle |
M.getDidTestDrive | () → bool | Whether the player completed a test drive |
M.getInspectVehiclePoi | () → table/nil | Returns 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
| Hook | Purpose |
|---|---|
M.onUpdate | Tracks player distance, arrival timer, vehicle movement |
M.onVehicleDestroyed | Resets inspection if inspected vehicle is destroyed |
M.onTestDriveStarted | Sets didTestDrive flag, removes sale tether |
M.onAnyMissionChanged | Leaves sale on mission start |
M.onDeliveryModeStarted | Leaves sale on delivery mode |
M.onGetRawPoiListForLevel | Adds inspection POI to level |
M.onActivityAcceptGatherData | Provides purchase button for activity UI |
M.onPurchaseMenuClosed | Removes purchase tether |
M.onTestDriveAbandoned | Flags vehicle for deletion on abandon |
M.onTestDriveEndedAfterFade | Re-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_tetherto 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