RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Editor AI TestsEditor AI VisualizationEditor – Assembly Spline ToolAsset BrowserAsset DeduplicatorAsset Management ToolSFX Previewer (Audio Events List)Audio Ribbon EditorAutoSaveBarriers EditorBiome ToolBuilding EditorBulk RenameCamera BookmarksCamera TransformCamera Path EditorCEF HelperCo-Simulation Signal EditorCrawl Data EditorCreate Object ToolDataBlock EditorDecal EditorDecal Spline EditorDocumentation HelperDrag Race EditorDrift Data EditorDrive Path EditorDynamic Decals Tool (Vehicle Livery Creator)Engine Audio DebugExtensions DebugExtensions EditorFFI Pointer Leak TestFile DialogFlowgraph EditorForest EditorForest ViewEditor Gizmo HelperEditor Ground Model Debug HelperEditor Headless Editor TestEditor Icon OverviewEditor ImGui C DemoEditor InspectorEditor Layout ManagerEditor Level SettingsEditor Level ValidatorEditor LoggerEditor Log HelperEditor MainEditor Main MenuEditor Main ToolbarEditor Main UpdateMap Sensor EditorMaster Spline EditorMaterial EditorMeasures Inspector HeaderMesh Editor (Base)Mesh Road EditorMesh Spline EditorMission EditorMission PlaybookMission Start Position EditorMulti Spawn Manager (Vehicle Groups)Navigation Mesh EditorEditor News MessageObject Tool (Object Select Edit Mode)Object To Spline EditorParticle EditorPerformance Profiler / Camera RecorderPhysics ReloaderPrefab Instance EditorEditor PreferencesRace / Path EditorRally EditorRaycast Test Editor ToolRenderer Components Editor ToolRender Test Editor ToolResource Checker Editor ToolRiver EditorRoad Architect EditorRoad DecorationsRoad Editor (Decal Road)Road Network ExporterRoad River Cache HandlerRoad River GUIRoad Spline EditorRoad Template EditorRoad UtilitiesScene TreeScene ViewScreenshot Creator BootstrapScript AI EditorScript AI ManagerSensor Configuration EditorSensor DebuggerShape EditorShortcut LegendSidewalk Spline EditorSites EditorSlot Traffic EditorSuspension Audio DebugTech Server ManagerTerraform ToolTerrain And Road ImporterTerrain EditorTerrain Materials EditorText EditorTool ManagerTool ShortcutsTraffic DebugTraffic ManagerTraffic Signals EditorUndo History ViewerVehicle Bridge TestVehicle Detail ViewerVehicle Editor MainEditor - VisualizationEditor Viz HelperEditor Water Object HelperEditor Windows Manager

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 Extensionseditor

Editor Level Validator

Level validation tool that scans scene objects and forest items for common issues (missing shapes, out-of-bounds placement, invalid transforms). Displays categorized logs with filtering, sorting, and

Level validation tool that scans scene objects and forest items for common issues (missing shapes, out-of-bounds placement, invalid transforms). Displays categorized logs with filtering, sorting, and per-object fix/ignore actions.


Module Overview

AspectDetail
Fileextensions/editor/levelValidator.lua
ReturnsM table
Dependenciescore_forest
WindowlevelValidator

Public Functions

FunctionSignatureDescription
M.onEditorInitialized()Registers the validator window and Debug menu item
M.onEditorGui()Renders the validator UI with log table, filters, and actions
M.onClientStartMission()Hook called when a mission/level starts
M.onExtensionLoaded()Extension load hook
M.onEditorRegisterPreferences(prefsRegistry)Registers validator preferences
M.onEditorAfterSaveLevel(state)Hook after level save
M.onEditorPreferenceValueChanged(path, value)Responds to preference changes
M.startLevelValidation()Triggers a full level validation scan
M.getLevelLogs() → tableReturns raw validation logs
M.getLevelLogsAggregated() → tableReturns aggregated validation logs

Validation Features

FeatureDescription
Scene object scanValidates all objects in the scene tree
Forest item scanValidates all forest items via core_forest data
Terrain bounds checkDetects objects outside terrain extents
Log levelsError (E), Warning (W), Info (I), Debug (D) with color coding
Sortable columnsLogLevel, Code, Description, Origin, ObjectName, File, Line
Filter by severityToggle E/W/I/D log level visibility
Ignore objectsMark individual objects/forest items as ignored
Remove forest itemsDirect removal of problematic forest items

Log Entry Structure

logEntry = {
  logLevel = "E",           -- E/W/I/D
  uniqueErrorCode = 1001,   -- Numeric error code
  message = "Missing shape", -- Human-readable description
  origin = "sceneValidator", -- Validation source
  object = simObject,       -- Scene object reference (if applicable)
  objectId = 12345,         -- Object ID
  forestItem = forestItem,  -- Forest item reference (if applicable)
  filename = "level.lua",   -- Source file
  lineNumber = 42,          -- Source line
}

Internal State

VariableDescription
sceneObjectNodesCached scene tree nodes for validation
forestItemNodesCached forest item nodes
terrainSize / terrainMinExtents / terrainMaxExtentsTerrain bounds for out-of-bounds detection
objectLogsPer-object validation log entries
numberOfIssuesTotal issue count
ignoredObjectsSet of objects marked as ignored (keyed by "forest_KEY" or "object_ID")

Usage

Access via editor menu: Window → Debug → Level Validator

-- The validator runs checks and populates logs
-- Users can filter, sort, click to select objects, and apply fixes

Module Variables

  • dependencies (table) - Module variable.

Functions

startLevelValidation()

Handles start level validation.

getLevelLogs()

Returns the level logs.

Returns: levelLogs

getLevelLogsAggregated()

Returns the level logs aggregated.

Returns: self

onClientStartMission()

Callback for client start mission event.

onExtensionLoaded()

Callback for extension loaded event.

onEditorRegisterPreferences(prefsRegistry)

Callback for editor register preferences event.

  • prefsRegistry (any)

onEditorAfterSaveLevel(state)

Callback for editor after save level event.

  • state (any)

onEditorPreferenceValueChanged(path, value)

Callback for editor preference value changed event.

  • path (string)
  • value (any)

Additional Exports

  • M.dependencies

See Also

  • Editor AI Tests - Related reference
  • Editor AI Visualization - Related reference
  • Editor – Assembly Spline Tool - Related reference
  • World Editor Guide - Guide

Editor Level Settings

Registers a custom inspector type handler for level-wide settings, allowing level configuration to be shown in the standard inspector panel.

Editor Logger

Minimal logger extension stub. Currently a no-op placeholder that registers the `onEditorGui` and `onExtensionLoaded` hooks without implementation.

On this page

Module OverviewPublic FunctionsValidation FeaturesLog Entry StructureInternal StateUsageModule VariablesFunctionsstartLevelValidation()getLevelLogs()getLevelLogsAggregated()onClientStartMission()onExtensionLoaded()onEditorRegisterPreferences(prefsRegistry)onEditorAfterSaveLevel(state)onEditorPreferenceValueChanged(path, value)Additional ExportsSee Also