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
Delivery Cargo CardsDelivery Cargo ScreenDelivery GeneralDelivery GeneratorDelivery Pages (Logbook)Delivery Parcel ManagerDelivery Parcel ModifiersDelivery Precision ParkingDelivery ProgressDelivery TasklistDelivery TutorialDelivery Vehicle Offer ManagerDelivery Vehicle Tasks

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 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

FieldValue
Pathextensions/career/modules/delivery/generator.lua
Globalcareer_modules_delivery_generator
Dependenciesfreeroam_facilities, gameplay_sites_sitesManager, util_configListGenerator

Public API

FunctionSignatureDescription
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

TypeDescription
parcelProviderGenerates parcels at origin, assigns random destinations
parcelReceiverGenerates parcels destined for this facility
vehOfferProviderGenerates vehicle delivery offers
trailerOfferProviderGenerates trailer delivery offers
materialProviderFluctuates material storage volume (provides)
materialReceiverFluctuates 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 offers

Usage 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 storage
  • career_modules_delivery_vehicleOfferManager - Vehicle offers
  • career_modules_delivery_general - Delivery mode lifecycle
  • freeroam_facilities - Facility definitions

Additional Exports

Functions

FunctionDescription
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

ExportDescription
M.addMaterialAsParcelToContainerValue: addMaterialAsParcelToContainer
M.changeMaterialAmountInFacilityValue: changeMaterialAmountInFacility
M.distanceBetweenValue: distanceBetween
M.finalizeMaterialDistanceRewardsValue: finalizeMaterialDistanceRewards
M.finalizeMaterialDistancesValue: finalizeMaterialDistances
M.finalizeParcelItemDistanceAndRewardsValue: finalizeParcelItemDistanceAndRewards
M.finalizeVehicleOfferValue: finalizeVehicleOffer
M.getDistanceBetweenFacilitiesM.getLogisticTypesLookup = function() return logisticTypesLookup end
M.getLocationCoordinatesValue: getLocationCoordinates
M.getParcelTemplateByIdValue: getParcelTemplateById
M.moveMaterialToDestinationValue: moveMaterialToDestination
M.selectAccessPointByLookupKeyByTypeValue: selectAccessPointByLookupKeyByType
M.setupValue: setup
M.splitOffPartsFromMaterialCargoValue: splitOffPartsFromMaterialCargo
M.triggerAllGeneratorsValue: triggerAllGenerators
M.triggerGeneratorValue: 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.

On this page

DependenciesModule InfoPublic APIGenerator TypesFacility Setup FlowUsage ExampleSee AlsoAdditional ExportsFunctionsValues/Properties