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
Auto AnnotationBoosterCalibrate ESCCompile ImpostersCompile MeshesConfig List GeneratorDecal Roads EditorDependency TreeDoc CreatorExport (glTF)Follow The White RabbitForest GeneratorGround Model DebugInput System UtilsInstanced Line Render DemoJBeam StatsLog StreamsMap TilesNode Beam ExportNode StreamPhotomodePrecompile ShadersPrecompile VehiclesProcedural Track (Gymkhana Generator)Rectangle GeneratorRender Components APIResave MaterialsRich PresenceSave Dynamic DataScreenshot Creator (Vehicle Thumbnails)ShowroomSort LinesStep HandlerTerrain GeneratorTest Extension ProxiesTest JSON Files Syntaxutil/vehicleRopeDebug - Rope Physics Debug UIutil/worker - Batch Job Workerutil/wsTest - WebSocket Test Server
Track Builder - Basic BordersTrack Builder - Basic CentersTrack Builder - Border Wall MeshTrack Builder - Camera TransitionTrack Builder - Ceiling MeshtrackBuilder/markers - Track Marker Interpolation & VisualizationtrackBuilder/materialUtil - Track Material ManagementtrackBuilder/meshes - Cross-Section Mesh DefinitionstrackBuilder/multiTrackMerger - Track Intersection MergingtrackBuilder/obstaclePlacer - Track Obstacle PlacementtrackBuilder/pieces - Track Piece Geometry GenerationtrackBuilder/proceduralPrimitives - Procedural 3D Primitive GeneratorstrackBuilder/quickraceSetup - Quick Race Track LoadertrackBuilder/segmentToProceduralMesh - Segment Mesh GeneratortrackBuilder/splineTrack - Main Track Builder Engine

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 ExtensionsutiltrackBuilder

Track Builder - Camera Transition

Smoothly lerps the free camera from its current position/rotation to a target over a specified duration.

Smoothly lerps the free camera from its current position/rotation to a target over a specified duration.


Overview

util_trackBuilder_cameraTransition provides a simple camera interpolation system. Call lerpTo(pos, rot, time) and the camera will smoothly transition using an ease-out curve. Used by the track builder for camera fly-throughs.

Module path: lua/ge/extensions/util/trackBuilder/cameraTransition.lua


Exports (M)

FunctionSignatureDescription
lerpTo(pos, rot, time)Starts a smooth camera transition to the target position and rotation.
onPreRender(dt)Updates the camera each frame during a transition.

Internals

Interpolation

  • Position: Linear interpolation: old * (1 - t) + target * t.
  • Rotation: Quaternion nlerp: oldQuat:nlerp(targetQuat, t).
  • Easing: Ease-out curve: t = 1 - (1 - linear_t)².

State

  • oldPosition / oldQuat - captured from current camera at lerpTo call.
  • targetPosition / targetQuat - the destination.
  • transitionTime - total duration in seconds.
  • remainingTime - counts down each frame.

Requirements

Only applies when in free camera mode (commands.isFreeCamera()). Uses core_camera.setPosRot() to update.

Instant Transition

If time <= 0, the camera is set immediately without interpolation.


How It Works

  1. Call lerpTo(pos, rot, time) to start.
  2. Current camera position/rotation is captured.
  3. Each frame in onPreRender, the remaining time decreases and the camera is interpolated.
  4. After time seconds, the camera reaches the target exactly.

Lua Examples

local camTrans = extensions.util_trackBuilder_cameraTransition

-- Smoothly move camera to a position over 2 seconds
camTrans.lerpTo(
  vec3(100, 200, 50),
  quatFromDir(vec3(0, -1, 0)),
  2.0
)

-- Instant teleport
camTrans.lerpTo(vec3(0, 0, 100), quat(0,0,0,1), 0)

Additional Exports

  • M.lerpTo - (undocumented)
  • M.onPreRender - (undocumented)

Track Builder - Border Wall Mesh

Generates vertical wall meshes for left and right track borders with configurable height.

Track Builder - Ceiling Mesh

Generates ceiling/tunnel mesh geometry above track segments in the track builder system.

On this page

OverviewExports (M)InternalsInterpolationStateRequirementsInstant TransitionHow It WorksLua ExamplesAdditional Exports