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
| Field | Type | Description |
|---|---|---|
M.dependencies | varies | Assigned as {} |
Public API
| Function | Signature | Description |
|---|---|---|
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 | () → bool | Whether a test drive is in progress |
M.getTimeLeft | () → number/nil | Remaining seconds or nil |
M.resetData | () | Clears all test drive state |
M.formatTestDriveToRawPoi | (elements) | Adds end-parking-spot POI to elements list |
Lifecycle Hooks
| Hook | Purpose |
|---|---|
M.onUpdate | Checks time limit and player-vehicle distance each frame |
M.onCareerModulesActivated | Resets state on career activation |
M.onVehicleRepairedByInsurance | Shows repair cost message during test drive |
M.onGetRawPoiListForLevel | Injects test-drive return POI into the POI system |
M.onPoiDetailPromptOpening | Adds "Stop Test Drive" button to POI prompts |
M.onBeforeRadialOpened | Adds "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
| Hook | When |
|---|---|
onTestDriveStarted | Test drive begins |
onTestDriveEndedAfterFade | Fade-back complete after stop |
See Also
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