RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Debug DrawingGPU Mesh StructsImGui FFIMath Structs (FFI)FFI C DefinitionsPID ControllersCSV LibraryDelay LineDequeDevelopment UtilitiesEvent ReferenceExtension SystemSignal FiltersGraph PathfindingUI BridgeInput Filter Constants2D Bilinear InterpolationIntrospectionJBeam Pretty PrinterJSON AST ParserSJSON ParserJSON Debug ParserJSON Pretty PrinterK-D Tree (2D Boxes)K-D Tree (3D)K-D Tree (3D)Lua SerializerC++/Lua BindingLua CoreLua ProfilerMath LibraryParticlesQuadtreeSettingsTCP ServerTimer SchedulerUtility Library
ExpressionParser ReferenceGroups ReferenceInteraction ReferenceIO ReferenceLinks ReferenceLoader ReferenceMaterials ReferenceOptimization ReferenceScaling ReferenceSectionMerger ReferenceSlotSystem ReferenceTableSchema ReferenceUtils ReferenceVariables Reference

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 Referencecommonjbeam

Optimization Reference

Module defined in `lua/common/jbeam/optimization.lua`. Assigns continuous IDs (CIDs) to vehicle data entries, optimizes beam ordering, cleans up runtime-unnecessary data, and dereferences object point

Module defined in lua/common/jbeam/optimization.lua. Assigns continuous IDs (CIDs) to vehicle data entries, optimizes beam ordering, cleans up runtime-unnecessary data, and dereferences object pointers to CID integers.


Exports

Functions

M.assignCIDs(vehicle)

Assigns continuous integer IDs (cid) to all entries in valid table sections. Nodes get special ordering: fixed nodes first, then non-collidable, then normal nodes. Populates vehicle.maxIDs.

  • Parameters:
    • vehicle - table - Assembled vehicle data with validTables marking which sections need CIDs
  • Returns: boolean - true on success

M.process(vehicle, debugEnabled)

Runs the full optimization pipeline: optimize beam ordering (swap id1/id2 so id1 < id2), cleanup unused data, dereference object pointers to CIDs, and remove disabled sections.

  • Parameters:
    • vehicle - table - Assembled vehicle data
    • debugEnabled - boolean|nil - When true, preserves group/engineGroup fields for debugging
  • Returns: boolean - true on success

Internal Notes

  • Node ordering (for physics engine): fixed → non-collidable → normal. This ordering matters for simulation performance.
  • Beam optimization: swaps id1/id2 so id1 < id2 for consistent ordering.
  • Cleanup removes: empty strings (except mesh), group/engineGroup (unless debug), default beam values (beamType=0, beamPrecompression=1, etc.), fire-system fields on nodes without flashPoint, default collision flags.
  • Dereference: converts wheel beam/node object references to their .cid integers (sideBeams, rimBeams, peripheryBeams, treadBeams, reinfBeams, pressuredBeams, treadNodes, nodes). Hydro .beam → .beamCID.
  • Sections with entry[0].disableSection set are removed entirely.
  • vehicle.validTables is deleted after processing (no longer needed).

See Also

  • ExpressionParser Reference - Related reference
  • Groups Reference - Related reference
  • Interaction Reference - Related reference
  • Common Libraries Overview - Guide

Materials Reference

Module defined in `lua/common/jbeam/materials.lua`. Processes material switches, glow maps, and deform group material bindings for vehicle 3D objects.

Scaling Reference

Module defined in `lua/common/jbeam/scaling.lua`. Applies `scale*` prefixed properties to their corresponding base values by multiplication.

On this page

ExportsFunctionsM.assignCIDs(vehicle)M.process(vehicle, debugEnabled)Internal NotesSee Also