RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
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
Camera Mode: AutopointCamera Mode: AutozoomCamera Mode: Big MapCamera Mode: ChaseCamera Mode: CollisionCamera Mode: CrashCamera Mode: DriverCamera Mode: External / Fan CameraCamera Mode: FallbackCamera Mode: Free CameraCamera Mode: Game EngineCamera Mode: HandheldCamera Mode: Manual ZoomCamera Mode: NoiseCamera Mode: ObserverCamera Mode: OnboardCamera Mode: OrbitCamera Mode: Pacenote OrbitCamera Mode: PathCamera Mode: PredictorCamera Mode: RelativeCamera Mode: ShakeCamera Mode: SmoothCamera Mode: Top DownCamera Mode: TrackIRCamera Mode: TransitionCamera Mode: Unicycle

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 ExtensionscorecameraModes

Camera Mode: Observer

Global camera mode that uses scene-placed camera objects to view the action. Supports bullet-time speed control, position blending, and target override for cinematic scenario cameras.

Global camera mode that uses scene-placed camera objects to view the action. Supports bullet-time speed control, position blending, and target override for cinematic scenario cameras.


Overview

The observer camera reads its position/rotation from a named camera object in the scene tree. It can slow down simulation time (simTimeAuthority), blend between positions, and optionally override the look-at target. Used by scenarios for scripted camera sequences.


Class Properties

PropertyTypeDefaultDescription
isGlobalbooltrueAvailable regardless of vehicle
hiddenbooltrueNot in user camera cycle
cameraNamestringnilName of the scene camera object
camLastBulletSpeednumbernilLast applied bullet-time speed
camTnumber0.0Blend interpolation parameter
targetOverridestringnilOptional target object name

Methods

MethodSignatureDescription
initC:init()Initialize state fields
updateC:update(data)Read scene camera, apply pos/rot/fov
setCustomDataC:setCustomData(customData)Set camera via {cam, targetOverride}
setCameraC:setCamera(cam, targetOverride)Assign scene camera object and target
onCameraChangedC:onCameraChanged(focused)Notify UI/extensions on focus change
onScenarioRestartedC:onScenarioRestarted()Clear camera on restart
onScenarioChangeC:onScenarioChange(scenario)Clear camera when scenario ends

Bullet-Time Support

-- Scene camera object can have a Speed field for slow-motion
if cam.Speed and tonumber(cam.Speed) then
  simTimeAuthority.set(1 / cam.Speed)   -- e.g. Speed=4 → 0.25x sim time
  if cam.showApps ~= '1' and cam.Speed ~= '1' then
    guihooks.trigger('ShowApps', false)  -- hide UI during slow-mo
  end
end

Position Blending

-- Smooth transition when camera has a PositionMove target
if cam.PositionMove then
  local targetPos = vec3():fromString(cam.PositionMove)
  camPos = camPos + (targetPos - camPos) * self.camT  -- lerp
end

Target Override

-- Override look-at target with a different scene object
if self.targetOverride then
  local targetObject = scenetree.findObject(self.targetOverride)
  if targetObject then
    data.pos = vec3(targetObject:getPosition())
  end
end

Scene Camera Properties

FieldTypeDescription
Speedstring/numberBullet-time factor (1 = normal)
blendSpeednumberPosition blend rate (default 50)
PositionMovestringTarget position for blending
targetFOVnumberExplicit FOV (default: distance-based)
showAppsstring'1' to keep UI visible during slow-mo

Key Notes

  • FOV defaults to 90 - distance * 3 if targetFOV not set (min 10)
  • Resets bullet-time to 1x when camera is cleared
  • Fires onCameraModeChanged('observer') hook when focused

See Also

  • Camera Mode: Autopoint - Related reference
  • Camera Mode: Autozoom - Related reference
  • Camera Mode: Big Map - Related reference
  • Core Systems Guide - Guide

Camera Mode: Noise

Simple random noise filter that adds small positional jitter to the camera. Creates a subtle handheld or vibration effect.

Camera Mode: Onboard

Vehicle-mounted camera that follows a specific node position with configurable rotation and offset. Used for cockpit, hood, bumper, and other vehicle-attached views.

On this page

OverviewClass PropertiesMethodsBullet-Time SupportPosition BlendingTarget OverrideScene Camera PropertiesKey NotesSee Also