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
Activity ManagerAudio Bank ManagerAudio Ribbon SystemBus Route ManagerCamera SystemCore Chat (IRC)Core CheckpointsCore Command HandlerCoupler Camera ModifierDevices (RGB Peripherals)Dynamic PropsEnvironmentFlowgraph ManagerForestFun StuffGame ContextGame StateGround Marker ArrowsGround MarkersHardware InfoHighscoresHotlappingInventoryJob SystemLap TimesLevelsLoad Map CommandMetricsMod ManagerMultiseatMultiseat CameraMulti SpawnOnlinePaths (Camera Paths)Quick Access (Radial Menu)Recovery PromptRemote ControllerReplayRepositoryRope Visual TestScheme Command ServerCore SnapshotCore SoundsCore TerrainTraffic SignalsTrailer RespawnVehicle Active PoolingVehicle Bridge (GE ↔ VLua Communication)Vehicle MirrorsVehicle PaintsCore VehiclesVehicle TriggersVersion UpdateWeather SystemWindows Console

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 Extensionscore

Audio Bank Manager

Manages FMOD sound bank loading, caching, hotloading, and level-specific audio. Handles string banks, preload banks, asset banks, meta banks, and ambient banks in the correct loading order.

Manages FMOD sound bank loading, caching, hotloading, and level-specific audio. Handles string banks, preload banks, asset banks, meta banks, and ambient banks in the correct loading order.


Public API

FunctionSignatureReturnsDescription
M.registerBaseBank(path)nilRegisters a base bank for loading (queued if not yet initialized)
M.loadLevelBank(bankFilePath)nilLoads a level-specific FMOD bank as a scene object
M.loadVehicleBank(bankPath)nilLoads a vehicle-specific bank (preloaded, blocking)
M.triggerBankHotloading()nilFull hot-reload of all audio banks

Hooks

HookPurpose
M.onFirstUpdatePopulates bank tables and loads base banks on first frame
M.onClientPreStartMissionLoads level-specific banks on mission start
M.onClientEndMissionClears level bank cache entries
M.onPhysicsPausedSets g_GamePause FMOD parameter to 1
M.onPhysicsUnpausedSets g_GamePause FMOD parameter to 0
M.onReplayStateChangedSyncs pause state with replay
M.onSerializePreserves bank cache across Lua reloads
M.onDeserializedRestores bank cache after Lua reload
M.onFilesChangedDetects .bank file changes and triggers hotload

Bank Loading Order

  1. String banks (contain FMOD event names)
  2. Preload banks (always resident in memory)
  3. Normal banks (loaded on demand)

Bank Categories

CategoryLocationLifecycle
Asset banksart/sound/fmod/[platform]/Base (always loaded)
Meta banksSame, excludes assets/streamsBase (always loaded)
Ambient banksContains ambient_mapsLevel-scoped
Vehicle banksPer-vehicle pathsPreloaded per vehicle

Module State

VariableTypeDefault
hotloadTriggerednilnil
prevReplayStatevariesTracks previous replay state

Usage Examples

-- Register a custom bank
core_audio.registerBaseBank("/art/sound/fmod/desktop/myMod.bank")

-- Load a level-specific bank
core_audio.loadLevelBank("/levels/west_coast_usa/sounds/custom.bank")

-- Load a vehicle sound bank
core_audio.loadVehicleBank("/vehicles/etk800/sounds/etk800.bank")

-- Force reload all banks (development)
core_audio.triggerBankHotloading()

Notes

  • Banks are cached to prevent duplicate loads; cache is path-normalized (lowercase, leading /)
  • Headphones mode loads from a _headphones subdirectory for meta banks
  • SFXFMODProject is the C++ binding; nil-checked to prevent crashes

Activity Manager

Simple activity launcher. Maps activity names to startup functions. Currently only supports `ContinueFreeroam`.

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

On this page

Public APIHooksBank Loading OrderBank CategoriesModule StateUsage ExamplesNotes