API ReferenceGE Extensionscareermodules Vehicle Inventory
M.dependencies = {'career_career', "career_modules_log", "render_renderViews", "util_screenshotCreator"}
M.dependencies = {'career_career', "career_modules_log", "render_renderViews", "util_screenshotCreator"}
Central vehicle inventory system. Manages owned/loaned vehicles, spawn/despawn, part conditions, thumbnails, garage detection, save/load, license plates, and the vehicle selection UI.
| Function | Signature | Description |
|---|
M.addVehicle | (vehId, inventoryId, options) → id | Register vehicle in inventory from spawned object |
M.removeVehicle | (inventoryId) | Remove vehicle from inventory entirely |
M.removeVehicleObject | (inventoryId, skipPartCond) | Despawn vehicle object but keep inventory entry |
M.enterVehicle | (newInventoryId, loadOption, callback) | Enter/switch to a vehicle (spawn if needed) |
M.sellVehicle | (inventoryId, price) → bool | Sell vehicle, add money, remove from inventory |
M.sellVehicleFromInventory | (inventoryId) | Sell + save + refresh UI |
M.returnLoanedVehicleFromInventory | (inventoryId) | Return loaner via loanerVehicles module |
M.expediteRepairFromInventory | (inventoryId, price) | Pay to skip repair delay |
M.spawnVehicle | (inventoryId, replaceOption, callback) → vehObj | Spawn vehicle (0=new, 1=replace current, 2=replace same ID) |
M.delayVehicleAccess | (inventoryId, delay, reason) | Set timed access block (repair/delivery) |
M.setFavoriteVehicle | (inventoryId) | Set favorite vehicle |
M.renameVehicle | (inventoryId, name) → bool | Rename vehicle |
| Function | Signature | Description |
|---|
M.getVehicles | () → table | All vehicles keyed by inventory ID |
M.getVehicle | (inventoryId) → table | Single vehicle data |
M.getCurrentVehicle | () → number/nil | Current vehicle inventory ID |
M.getCurrentVehicleId | () → number/nil | Current vehicle object ID |
M.getLastVehicle | () → number/nil | Last entered vehicle inventory ID |
M.getFavoriteVehicle | () → number/nil | Favorite vehicle inventory ID |
M.getVehicleIdFromInventoryId | (inventoryId) → vehId | Map inventory→object ID |
M.getInventoryIdFromVehicleId | (vehId) → inventoryId | Map object→inventory ID |
M.getMapInventoryIdToVehId | () → table | Full inventory↔object map |
M.getVehicleThumbnail | (inventoryId) → path | Thumbnail image path |
M.getVehicleUiData | (inventoryId, idsInGarage) → table | Full UI-ready vehicle data |
M.hasFreeSlot | () → bool | Whether inventory has space (max 20) |
M.getNumberOfFreeSlots | () → number | Available inventory slots |
M.isEmpty | () → bool | Whether inventory has no vehicles |
M.isSeatedInsideOwnedVehicle | () → bool | Whether player is in an owned vehicle |
M.getClosestGarage | (pos) → garage | Nearest garage facility |
M.getInventoryIdsInClosestGarage | (onlyFirst) → table/id | Vehicles in nearest garage |
M.getDirtiedVehicles | () → table | Vehicles needing save |
| Function | Signature | Description |
|---|
M.updatePartConditions | (vehId, inventoryId, callback) | Fetch part conditions from vehicle bridge |
M.updatePartConditionsOfSpawnedVehicles | (callback) | Update all spawned vehicles |
M.applyPartConditions | (inventoryId, vehId) | Apply stored conditions to vehicle |
M.getPartConditionsCallback | (partConditions, inventoryId) | Bridge callback for part conditions |
| Function | Signature | Description |
|---|
M.openMenu | (chooseButtonsData, header, buttonsActive) | Open vehicle inventory menu |
M.closeMenu | () | Close inventory menu |
M.openMenuFromComputer | (computerId) | Open with retrieve/replace/performance buttons |
M.chooseVehicleFromMenu | (inventoryId, buttonIndex, repairPrevVeh) | Execute chosen button callback |
M.sendDataToUi | () | Push all vehicle data to UI |
M.openInventoryMenuForChoosingListing | () | Open for marketplace listing selection |
| Function | Signature | Description |
|---|
M.setLicensePlateText | (inventoryId, text) | Change license plate text |
M.purchaseLicensePlateText | (inventoryId, text, money) | Pay to change plate |
M.isLicensePlateValid | (text) → bool | Validate plate text |
M.isVehicleNameValid | (text) → bool | Validate vehicle name |
M.onExitVehicleInventory | () | - |
M.onAvailableMissionsSentToUi | () | - |
M.teleportedFromBigmap | () | - |
M.setVehicleDirty | (inventoryId) | - |
M.debugRespawnCurrentVehicle | () | - |
| Hook | Purpose |
|---|
M.onExtensionLoaded | Load vehicles from save slot |
M.onSaveCurrentSaveSlot | Save vehicles, thumbnails, positions |
M.onSaveCurrentSaveSlotAsyncStart | Register async save extension |
M.onClientStartMission | Setup inventory on level load |
M.onCareerModulesActivated | Setup inventory, sell all if version mismatch |
M.onUpdate | Process delayed access timers, show notifications |
M.onBeforeWalkingModeToggled | Enter/exit vehicle on walk toggle |
M.onEnterVehicleFinished | Track last vehicle |
M.onBigMapActivated | Snapshot part conditions |
M.onScreenFadeState | Execute post-fade callbacks |
M.onComputerAddFunctions | Add "My Vehicles" to computer |
M.onCheckPermission | Permission checks for owned/loaned vehicles |
M.onGetRawPoiListForLevel | Add vehicle markers to bigmap |
- Slot amount: 20 vehicles max
- Save version: 42 minimum
- Default vehicle:
covet / DXi_M