API ReferenceGE Extensionseditor
Vehicle Editor Main
Main entry point for the Vehicle Editor - manages static/live editor modes, headless editor activation, extension loading, menu creation, and vehicle data management.
Main entry point for the Vehicle Editor - manages static/live editor modes, headless editor activation, extension loading, menu creation, and vehicle data management.
Module: M (extensions.editor.veMain)
| Function | Description |
|---|---|
M.toggleActive() | Toggles the vehicle editor on/off |
M.saveCurrentWindowLayout() | Saves the current window layout for the active editor mode |
M.onPreRender(dtReal, dtSim, dtRaw) | Updates vehicle position and fires onVehicleEditorRenderJBeams hook |
M.onEditorHeadlessChange(enabled, toolName) | Handles headless editor enable/disable; sets up or tears down editor state |
M.onEditorInitialized() | Registers "Vehicle Editor" menu item under Vehicles group |
M.onVehicleSwitched(oldVehicle, newVehicle, player) | Reinitialises vehicle data for the new vehicle |
M.onVehicleDestroyed() | Clears all vehicle references |
M.onEditorInspectorFieldChanged(selectedIds, fieldName, fieldValue, arrayIndex) | Handles color field changes on BeamNGVehicle objects |
M.onEditorHeadlessMainMenuBar() | Draws custom menu bar (File + FPS/GPU metrics) in headless mode |
M.onSerialize() / M.onDeserialize(data) | Persists/restores editor mode |
Global: vEditor
| Property / Method | Type | Description |
|---|---|---|
vEditor.editorActive | bool | Whether the vehicle editor is currently active |
vEditor.editorMode | int | EDITOR_MODE_STATIC (1) or EDITOR_MODE_LIVE (2) |
vEditor.setEditorMode(mode) | function | Switches between static/live editor modes |
vEditor.getEditorName() | function | Returns current editor name string |
vEditor.vehicle | object | Current vehicle BeamNGVehicle object |
vEditor.vehiclePos | vec3 | Current vehicle world position |
vEditor.vehData | table | Vehicle data from core_vehicle_manager |
vEditor.vdata | table | Shortcut to vehData.vdata |
vEditor.nodeCIDToName | table | {[cid] = nodeName} lookup |
vEditor.selectedNodes | table | Currently selected node objects |
vEditor.selectedBeams | table | Currently selected beam objects |
vEditor.veluaData | table | Data received from vehicle Lua |
vEditor.staticMenuItems | table | Menu items for static editor apps |
vEditor.liveMenuItems | table | Menu items for live editor apps |
Usage Example
-- The vehicle editor is activated via F11 > Vehicles > Vehicle Editor
-- or programmatically:
extensions.editor_veMain.toggleActive()
-- Access vehicle data in other extensions:
if vEditor.editorActive and vEditor.vehicle then
local veh = vEditor.vehicle
local pos = vEditor.vehiclePos
local nodes = vEditor.vdata.nodes
-- Iterate nodes
for cid = 0, tableSizeC(nodes) - 1 do
local node = nodes[cid]
local name = vEditor.nodeCIDToName[cid]
local absPos = veh:getNodeAbsPosition(cid)
end
end
-- Editor modes:
-- STATIC (1): JBeam structure editing (pushes VehicleEditor action map)
-- LIVE (2): Runtime inspection (standard action map)
-- Live editor apps are auto-discovered from:
-- /lua/ge/extensions/editor/vehicleEditor/liveEditor/ve*.lua
-- Static editor apps from:
-- /lua/ge/extensions/editor/vehicleEditor/staticEditor/ve*.lua
-- Each app extension must expose:
-- Apps typically define menuEntry and open function patterns
-- menuEntry = "Category/App Name" (menu path)
-- open = function() (opens the app window)
-- The editor uses headless mode to replace the world editor menubar
-- with a custom File menu and FPS/GPU performance metrics displayModule Variables
dependencies(table) - Module variable.
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
Vehicle Detail Viewer
Multi-view orthographic vehicle renderer - creates configurable render views (left, right, front, back, top, bottom) with zoom, pan, near-clip control, and PNG export.
Editor - Visualization
Central visualization management tool for the BeamNG editor, providing toggles for debug rendering modes, object visibility/selectability, material debug overlays with legends, and navgraph visualizat