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

Ground Markers

Renders navigation ground-decal arrows and floating 3D arrows along a computed route path. The primary navigation display system used by freeroam GPS and missions.

Renders navigation ground-decal arrows and floating 3D arrows along a computed route path. The primary navigation display system used by freeroam GPS and missions.


Public API

FunctionSignatureDescription
M.setPath(wp, options?)Sets the navigation target. wp can be a waypoint name, position vec3, or array of them. Options: step, color, cutOffDrivability, penaltyAboveCutoff, penaltyBelowCutoff, renderDecals, clearPathOnReachingTarget.
M.resetAll()Clears path, decals, arrows, and all navigation state.
M.getPathLength() → numberReturns total route distance in meters, or 0 if no path.
M.currentlyHasTarget() → boolReturns true if a navigation target is set.
M.getTargetPos() → any|nilReturns the first target waypoint/position.
M.generateRouteDecals(startPos)Regenerates ground decals and floating arrows from current path.
M.sendToApp()Sends route marker positions to UI via NavigationGroundMarkersUpdate.
M.setFocus(...)Deprecated - use setPath instead.

Hooks

FunctionDescription
M.onPreRenderPer-frame: tracks vehicle, regenerates decals when player moves >1 m, renders decals.
M.onClientEndMissionClears all navigation state.
M.onExtensionUnloadedClears all navigation state.
M.onSerializeClears arrows before serialization.
M.onSettingsChangedReacts to showNavigationArrows and showNavigationGroundmarkers setting changes.
M.onAnyMissionChangedResets on mission start/stop.

Module Fields

FieldDefaultDescription
M.routePlannerroute instanceThe route planner object from gameplay/route/route.
M.colorSet'blue'Active color set name.
M.colorSetstablePredefined color sets with decals and arrows RGB arrays.
M.decalDrawingDistance120Max decal rendering distance (meters).
M.decalBlendStart10Distance where decals start fading in.
M.decalBlendEnd100Distance where decals start fading out.
M.debugPathBoolean. Enables debug path rendering (default false).
M.decalBlendOffsetNumber. Blend offset in meters for ground decals (default 1).
M.decalPoolTable. Pool of reusable decal objects.
M.decalPoolCountNumber. Current count of decals in the pool.
M.dependenciesTable. Required extensions: {'core_groundMarkerArrows'}

Color Sets

SetDecal ColorArrow Color
blue{0, 0.4, 1}{0, 0.48, 0.77}
green{0, 1, 0}{0, 1, 0}

Module State

VariableTypeDefault
dependenciestable{'core_groundMarkerArrows'}
debugPathbooleanfalse
decalPooltable{} - pooled decal data objects
decalPoolCountnumber0
decalDrawingDistancenumber120
decalBlendOffsetnumber1
decalBlendStartnumber10
decalBlendEndnumber100
activeDecalCountnumber0
endWPtable|nilnil - current navigation target(s)
stepDistancenumber3 (set via options)
floatingArrowColortableArrow color RGB from active color set
routePathTmptableMulti-waypoint path array

Usage Example

-- Navigate to a waypoint position
core_groundMarkers.setPath(vec3(100, 200, 50), {
  step = 3,
  color = {1, 0.5, 0},
})

-- Navigate through multiple waypoints
core_groundMarkers.setPath({"wp_start", "wp_mid", "wp_end"})

-- Clear navigation
core_groundMarkers.resetAll()

Key Internals

  • Ground decals use Engine.Render.DynamicDecalMgr.addDecals() with pooled decal data.
  • Floating arrows are delegated to core_groundMarkerArrows.
  • Route computation uses M.routePlanner:setupPathMulti() for multi-waypoint paths.
  • Respects showNavigationGroundmarkers and showNavigationArrows settings.

Ground Marker Arrows

Manages 3D floating arrow indicators that appear at intersections along a navigation route, guiding the player through turns. Uses a pooled TSStatic approach with smooth fade/scale transitions.

Hardware Info

Gathers and reports system hardware information (CPU, GPU, memory, disk, OS, power) with health warnings for low resources, unsupported hardware, and mod overload.

On this page

Public APIHooksModule FieldsColor SetsModule StateUsage ExampleKey Internals