RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

cdefDebugDraw ReferencecdefGpuMesh ReferencecdefImgui ReferencecdefMath Referencecdefs ReferencecontrolSystems Referencecsvlib ReferencedelayLine Referencedequeue ReferencedevUtils ReferenceEvent Referenceextensions Referencefilters Referencegraphpath Referenceguihooks ReferenceinputFilters ReferenceinterpolatedMap Referenceintrospection ReferencejbeamWriter Referencejson-ast Referencejson ReferencejsonDebug ReferencejsonPrettyEncoderCustom Referencekdtreebox2d Referencekdtreebox3d Referencekdtreepoint3d Referencelpack ReferenceluaBinding ReferenceluaCore ReferenceluaProfiler Referencemathlib Referenceparticles Referencequadtree Referencesettings ReferencetcpServer ReferencetimeEvents Referenceutils Reference
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).

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 Notes