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
Vehicle Editor - Toolbar
Vehicle Editor - JBeam BeautifierVehicle Editor - JBeam Modifier Leaking VisualizerVehicle Editor - JBeam SpellcheckerVehicle Editor - JBeam Table VisualizerVehicle Editor - JBeam Variables CheckerVehicle Editor - Part ListVehicle Editor - Part Property ViewVehicle Editor - Part Text ViewVehicle Editor - Part TreeVehicle Editor - Static Render View

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 ExtensionseditorvehicleEditorstaticEditor

Vehicle Editor - JBeam Modifier Leaking Visualizer

Analyzes and visualizes JBeam modifier leaking - when a modifier set in one part affects rows in a different part due to the cascading nature of JBeam table modifiers.

Analyzes and visualizes JBeam modifier leaking - when a modifier set in one part affects rows in a different part due to the cascading nature of JBeam table modifiers.


Module Exports

ExportTypeDescription
M.menuEntrystring"JBeam Modifier Leaking Visualizer" - menu label
M.openfunctionOpens the visualizer window
M.onUpdatehookRenders ImGui analysis UI
M.onSerializehookPersists window state
M.onDeserializedhookRestores window state

Key Internals

VariableTypePurpose
windowOpenBoolPtrWindow visibility
useDefaultValuesForLeakingBoolPtrIgnore leaks that reset to defaults
datatableAnalysis results: {sectionName => {partName => {modName => modData}}}
sectionsWithLeakingModstableSet of sections that have leaking modifiers
sectionViewingnumberCurrently selected section tab index
modifiersDefaultValuestableKnown default values per section per modifier

How It Works

Analysis Pipeline

  1. getParts() - Walks the part tree via jbeamIO.getPart() to get all active parts in load order
  2. getPartsWithASTData() - Reads JBeam files, parses AST, extracts raw Lua data and hierarchy
  3. initAnalyzeModifiersLeaking() - Collects all modifier names per section, identifies scale* modifiers
  4. analyzeModifiersLeaking() - For each part/section/row:
    • Tracks current modifier state (cascading from dict rows)
    • For data rows, checks if any active modifier originated from a different part
    • If so, records it as "leaking" with source/target part info and AST node references
    • Applies scale* modifiers (e.g., scalebeamSpring) as multipliers

Visualization

  • Section tabs with red highlighting for sections containing leaks
  • ImGui table with parts as rows and modifiers as columns
  • Color-coded cells: leaked modifiers get colored borders/backgrounds by source part
  • Clicking a cell selects the part and highlights AST nodes in the text view
  • Right-clicking highlights affected data rows in the text view

Lua Code Example

-- Open modifier leak visualizer
extensions.editor_vehicleEditor_staticEditor_veJBeamModifierLeakVis.open()

-- Click "Start Analysis" to run the analysis
-- Toggle "Ignore Default Values" to skip leaks that reset to engine defaults

-- The analysis walks parts in JBeam load order:
-- local parts = getParts()  -- returns ordered list of {part, jbeamFilename}
-- local partsWithASTData = getPartsWithASTData(parts)

-- Modifier tracking per section:
-- For each row in section:
--   if tableIsDict(rowData) -> updates current modifier state
--   else -> checks if any modifier's partPath != current part
--     if so -> records leaking modifier with source and affected AST nodes

-- Default values table covers all major sections:
-- modifiersDefaultValues.beams.beamSpring = {[4300000] = true, [""] = true, [false] = true}
-- modifiersDefaultValues.nodes.nodeWeight = 25
-- When useDefaultValuesForLeaking is on, leaks that match defaults are ignored

-- Scale modifiers (e.g., scalebeamSpring = 1.5):
-- modsScalers[mod].modVal is applied as multiplier to numeric values
-- These propagate across all sections

-- Visualization table columns: one per modifier name in the section
-- Cell content: modifier value with tooltip showing:
-- "Part: partName\nModifier: modName = value\nLeaking into parts:\n- part1\n- part2"

-- Clicking cells links to the AST text view:
-- vEditor.selectedASTNodeMap[nodeIdx] = true  -- highlights AST nodes
-- vEditor.scrollToNode = true                 -- scrolls text view

See Also

  • Vehicle Editor - JBeam Beautifier - Related reference
  • Vehicle Editor - JBeam Spellchecker - Related reference
  • Vehicle Editor - JBeam Table Visualizer - Related reference
  • World Editor Guide - Guide

Vehicle Editor - JBeam Beautifier

Reformats JBeam files by aligning table columns within selected sections (nodes, beams, triangles, etc.) using AST-level manipulation, with optional number rounding.

Vehicle Editor - JBeam Spellchecker

Validates JBeam modifier names across all vehicle files by checking them against a whitelist of known valid modifiers per section type.

On this page

Module ExportsKey InternalsHow It WorksAnalysis PipelineVisualizationLua Code ExampleSee Also