API ReferenceGE Extensionscareermodulesdelivery
Delivery Generator
M.dependencies = {"freeroam_facilities", "gameplay_sites_sitesManager", "util_configListGenerator"}
Dependencies
M.dependencies = {"freeroam_facilities", "gameplay_sites_sitesManager", "util_configListGenerator"}Core generation engine for the delivery system - sets up facilities, generates parcels/vehicles/materials from templates, manages parking spots, and handles material storage.
Module Info
| Field | Value |
|---|---|
| Path | extensions/career/modules/delivery/generator.lua |
| Global | career_modules_delivery_generator |
| Dependencies | freeroam_facilities, gameplay_sites_sitesManager, util_configListGenerator |
Public API
| Function | Signature | Description |
|---|---|---|
setup | (loadData) | Main init - loads templates, sets up facilities, loads or generates initial cargo |
getFacilities | () | Returns list of all delivery facilities |
getFacilityById | (id) | Returns a single facility by ID |
getParkingSpotByPath | (path) | Returns parking spot object by path |
getFacilitiesForOrganizationId | (orgId) | Returns facilities associated with an organization |
getDistanceBetweenFacilities | (loc1, loc2) | Road-distance between two locations (cached) |
getLocationCoordinates | (loc) | Returns vec3 position for a location (facility or vehicle) |
distanceBetween | (posA, posB) | Raw navgraph distance between two positions |
triggerGenerator | (fac, generator, timeOffset) | Triggers a single generator (parcel, vehicle, or material) |
triggerAllGenerators | () | Triggers all overdue generators across all facilities |
finalizeParcelItemDistanceAndRewards | (item) | Calculates distance, modifiers, and rewards for a parcel |
finalizeVehicleOffer | (offer) | Fills in vehicle model/config/rewards for an offer |
finalizeMaterialDistances | (fac) | Calculates material provider/receiver distances |
finalizeMaterialDistanceRewards | (item, destination) | Calculates XP/money rewards for material delivery |
getParcelTemplateById | (templateId) | Returns a parcel template by ID |
getMaterialsTemplatesById | (id) | Returns a material template by ID |
selectAccessPointByLookupKeyByType | (accessPointsByName, logisticType, typeLookupKey) | Picks a random matching access point |
addMaterialAsParcelToContainer | (con, storage, amount, sourceFacId, sourcePsPath) | Creates material cargo and adds transient move to container |
splitOffPartsFromMaterialCargo | (cargo, otherPartSizes) | Splits material cargo into multiple items |
moveMaterialToDestination | (cargo, destination) | Moves material to destination, splits if tank overflow |
changeMaterialAmountInFacility | (facId, materialType, change) | Adjusts stored volume in a facility's material storage |
isMixable | (type) | Returns true if cargo type can be mixed in containers (parcels: yes, fluids/bulk: no) |
M.onCareerActivated | () | - |
M.onUpdate | (dtReal, dtSim, dtRaw) | - |
Generator Types
| Type | Description |
|---|---|
parcelProvider | Generates parcels at origin, assigns random destinations |
parcelReceiver | Generates parcels destined for this facility |
vehOfferProvider | Generates vehicle delivery offers |
trailerOfferProvider | Generates trailer delivery offers |
materialProvider | Fluctuates material storage volume (provides) |
materialReceiver | Fluctuates material storage volume (receives) |
Facility Setup Flow
setup(loadData)
├─ getMaterialsTemplates()
├─ getDeliveryVehicleTemplates()
├─ setupFacilities(loadData)
│ ├─ For each deliveryProvider facility:
│ │ ├─ Load progress, material storages
│ │ ├─ Setup generators with template caches
│ │ ├─ Load parking spots from sites files
│ │ └─ Setup access points and loaner spots
│ └─ Build provided/received systems lookups
└─ Load or generate initial cargo/vehicle offersUsage Example
-- Get all facilities
local facilities = career_modules_delivery_generator.getFacilities()
-- Trigger a specific generator
career_modules_delivery_generator.triggerGenerator(fac, fac.logisticGenerators[1])
-- Get road distance
local dist = career_modules_delivery_generator.getDistanceBetweenFacilities(origin, destination)See Also
career_modules_delivery_parcelManager- Cargo storagecareer_modules_delivery_vehicleOfferManager- Vehicle offerscareer_modules_delivery_general- Delivery mode lifecyclefreeroam_facilities- Facility definitions
Additional Exports
Functions
| Function | Description |
|---|---|
M.getFacilities() | No description available |
M.getFacilitiesForOrganizationId(orgId) | No description available |
M.getFacilityById(id) | No description available |
M.getMaterialsTemplatesById(id) | No description available |
M.getParkingSpotByPath(path) | No description available |
M.isMixable(type) | No description available |
Values/Properties
| Export | Description |
|---|---|
M.addMaterialAsParcelToContainer | Value: addMaterialAsParcelToContainer |
M.changeMaterialAmountInFacility | Value: changeMaterialAmountInFacility |
M.distanceBetween | Value: distanceBetween |
M.finalizeMaterialDistanceRewards | Value: finalizeMaterialDistanceRewards |
M.finalizeMaterialDistances | Value: finalizeMaterialDistances |
M.finalizeParcelItemDistanceAndRewards | Value: finalizeParcelItemDistanceAndRewards |
M.finalizeVehicleOffer | Value: finalizeVehicleOffer |
M.getDistanceBetweenFacilities | M.getLogisticTypesLookup = function() return logisticTypesLookup end |
M.getLocationCoordinates | Value: getLocationCoordinates |
M.getParcelTemplateById | Value: getParcelTemplateById |
M.moveMaterialToDestination | Value: moveMaterialToDestination |
M.selectAccessPointByLookupKeyByType | Value: selectAccessPointByLookupKeyByType |
M.setup | Value: setup |
M.splitOffPartsFromMaterialCargo | Value: splitOffPartsFromMaterialCargo |
M.triggerAllGenerators | Value: triggerAllGenerators |
M.triggerGenerator | Value: triggerGenerator |
Delivery General
Core delivery system module - manages delivery mode lifecycle, game time, save/load, vehicle cargo containers, weight updates, POI generation, and permission checks.
Delivery Pages (Logbook)
Provides logbook entries for the delivery system - facility overview, delivery history, and cargo modifier progress pages.