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

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


Overview

The onboard camera reads a node position from the vehicle mesh, orients itself using reference nodes (ref/left/back), and allows the player to freely rotate the view. Includes manual zoom via the manualzoom component. The special "driver" camera name is hidden from the user but its data is used by other camera modes.


Class Properties

PropertyTypeDefaultDescription
canRotatebooltrueWhether player can rotate the view (jbeam-configurable)
camNodeIDnumberrefNodes.refNode ID for camera position
camRotvec3vec3()Current Euler rotation (yaw, pitch)
offsettablenil{x, y, z} offset in vehicle-local space
rotationtablenilFixed rotation override from jbeam
idUpnumbernilOptional custom up-reference node
idBacknumbernilOptional custom back-reference node
idRefnumbernilOptional custom ref node for orientation

Methods

MethodSignatureDescription
initC:init()Set up manualzoom, load config, reset
onVehicleCameraConfigChangedC:onVehicleCameraConfigChanged()Mark "driver" cam as hidden
resetC:reset()Reset rotation and zoom
updateC:update(data)Compute position/rotation from nodes
setRefNodesC:setRefNodes(center, left, back)Set reference node IDs

Node-Based Orientation

-- Build camera coordinate frame from vehicle nodes
ref:set(data.veh:getNodePositionXYZ(self.camNodeID))
up:set(data.veh:getNodePositionXYZ(self.idUp))
back:set(data.veh:getNodePositionXYZ(self.idBack))
dir:setSub2(ref, back); dir:normalize()
camLeft:setCross(dir, camUp); camLeft:normalize()
camUp:setCross(camLeft, dir); camUp:normalize()

Vehicle-Local Offset

-- Apply offset in vehicle-local coordinate frame
if type(self.offset) == 'table' then
  nodePos = nodePos + dir * self.offset.x
                    - camLeft * self.offset.y
                    + camUp * self.offset.z
end

Look-Back Support

-- Look-back uses rear spawn point instead of node position
if data.lookBack then
  qdir = rotateEuler(math.rad(180), 0, rollAngle, qdir)
  data.res.pos:set(data.veh:getSpawnWorldOOBBRearPoint())
end

Key Notes

  • Player rotation reads MoveManager.yawRelative/pitchRelative + held keys
  • Pitch clamped to ±85° unless self.rotation.z is set (full gimbal)
  • "driver" named camera is hidden but provides data for other camera modes
  • Uses rotateEuler helper for composing yaw/pitch/roll rotations

See Also

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

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.

Camera Mode: Orbit

The primary third-person vehicle camera. Orbits around the vehicle with mouse/gamepad rotation, dynamic FOV (dolly zoom), dynamic pitch, collision avoidance, and smooth relaxation-based auto-tracking.

On this page

OverviewClass PropertiesMethodsNode-Based OrientationVehicle-Local OffsetLook-Back SupportKey NotesSee Also