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

Paths (Camera Paths)

Camera path system for cinematic playback. Creates, loads, saves, and plays spline-based camera paths with markers defining position, rotation, FOV, and timing.

Camera path system for cinematic playback. Creates, loads, saves, and plays spline-based camera paths with markers defining position, rotation, FOV, and timing.


Public Functions

FunctionSignatureDescription
M.loadPath(pathFileName) → pathLoads a .camPath.json file; returns path object
M.savePath(cameraPath, filename)Saves a camera path to JSON
M.getPaths() → tableReturns all loaded camera paths
M.addPath(path)Adds a path to the internal list (assigns unique ID)
M.createPath(name) → pathCreates a new empty path
M.deletePath(path)Removes a path by name
M.getUniquePathName(name) → stringReturns a unique name (appends counter if needed)
M.getMarkerIds(path, idx) → i1, i2, i3, i4Returns four marker indices for spline interpolation
M.getEndIdx(path) → numberReturns the last valid interpolation index
M.playPath(path, offset, initData)Starts camera playback along the path
M.stopCurrentPath()Stops playback and switches to free camera
M.getPath(pathName) → pathDEPRECATED - loads from SimPath scene objects
M.onClientStartMission()Auto-loads all .camPath.json files from the level's camPaths/ folder
M.onExtensionLoaded()Lifecycle hook (no-op)
M.onSerialize() → tableSaves paths for hot-reload
M.onDeserialized(data)Restores paths from serialized data

Marker Object

FieldTypeDescription
posvec3Camera position
rotquatCamera rotation
timenumberTime to next marker (seconds)
fovnumberField of view at this marker
trackPositionbooleanTrack a position while moving
positionSmoothnumberSpline smoothing factor (default 0.5)
bullettimenumberTime scale multiplier (default 1.0)
cutbooleanHard cut (no interpolation)
movingStartbooleanWhether movement begins at this marker
movingEndbooleanWhether movement ends at this marker

Usage Example

-- Load a camera path
local path = core_paths.loadPath("/levels/gridmap/camPaths/intro.camPath.json")

-- Play with 0 second offset
core_paths.playPath(path, 0)

-- Stop playback
core_paths.stopCurrentPath()

-- Create and save a new path
local newPath = core_paths.createPath("myPath")
table.insert(newPath.markers, {
  pos = vec3(10, 20, 5),
  rot = quat(0, 0, 0, 1),
  time = 3.0,
  fov = 60
})
core_paths.savePath(newPath, "/replays/myPath.camPath.json")

Path File Format (v6)

{
  "version": "6",
  "name": "intro",
  "looped": false,
  "manualFov": true,
  "markers": [
    {
      "pos": {"x": 10, "y": 20, "z": 5},
      "rot": {"x": 0, "y": 0, "z": 0, "w": 1},
      "time": 3.0,
      "fov": 60,
      "trackPosition": false
    }
  ]
}

Notes

  • Quaternion rotations are auto-fixed to avoid sign flips between consecutive markers.
  • Looped paths wrap marker indices using modular arithmetic.
  • Level camera paths are auto-loaded from <levelDir>/camPaths/*.camPath.json.
  • Playback uses the "path" camera mode via core_camera.setByName.

See Also

  • replay - Replay recording and playback
  • globals - core_camera, commands.setFreeCamera

Online

Online services client. Manages authentication sessions, API calls to BeamNG servers, file downloads with progress tracking, and server-pushed instructions (messages, mod updates).

Quick Access (Radial Menu)

Radial quick-access menu system. Provides the in-game radial menu for vehicle actions, sandbox tools, AI control, traffic, repair/recovery, and dynamic configurable slots.

On this page

Public FunctionsMarker ObjectUsage ExamplePath File Format (v6)NotesSee Also