Bus Route Manager
Manages bus route definitions and bus stop trigger events. Loads route data from JSON files, validates stop triggers against the scene, and dispatches events to bus vehicle controllers.
Manages bus route definitions and bus stop trigger events. Loads route data from JSON files, validates stop triggers against the scene, and dispatches events to bus vehicle controllers.
Public API
| Function | Signature | Returns | Description |
|---|---|---|---|
M.setLine | (vehId, routeID, variance) | table/nil | Assigns a bus route to a vehicle; returns route data |
M.onAtStop | (data) | nil | Handles bus arriving at a stop trigger |
M.onBusUpdate | (state) | nil | Forwards bus state updates to scenario_busdriver |
M.onBeamNGTrigger | (data) | nil | Routes busstop trigger events (enter/exit/tick) |
Hooks
| Hook | Purpose |
|---|---|
M.onClientStartMission | Initializes routes from level bus line files |
M.onExtensionLoaded | Same initialization on extension load |
Route File Format
Located at [levelDir]/buslines/*.buslines.json:
{
"version": 1,
"routes": [
{
"routeID": 42,
"variance": "a",
"tasklist": ["busstop_01", "busstop_02", ...]
}
]
}Trigger Requirements
Bus stop triggers must:
- Be in a
SimGroupnamed"busstops"in the scene - Have class
BeamNGTriggerwithtype = "busstop" - Names must match route tasklist entries
Usage Examples
-- Assign route 42 variant "a" to a bus vehicle
local routeData = core_busRouteManager.setLine(vehId, 42, "a")
-- Route data is sent to vehicle via:
-- controller.onGameplayEvent('bus_setLineInfo', routeData)Vehicle Commands
The manager sends these gameplay events to bus vehicles:
bus_setLineInfo- full route assignmentbus_onAtStop- arrived at stopbus_onDepartedStop- left a stopbus_onTriggerTick- periodic tick while at stop
Audio Ribbon System
Dynamic spatial audio system for rivers, waterfalls, and ambient sound ribbons. Computes closest-point-on-ribbon geometry per frame, managing near/far lists and 5-axis SFX emitter positioning relative
Camera System
Central camera management system. Handles camera mode switching, per-vehicle camera configuration, global cameras, input routing, collision detection, shadow quality, serialization, and all camera-rel