RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

server/commands - Camera & Input Commandsge_utils - Game Engine Utility Functionsmain.lua - GE Lua Entry Point & Game Loopmap.lua - Navigation Graph (AI Road Map)screenshot.lua - Screenshot Systemserver/server - Level Loading & Game ServerserverConnection - Client-Server Connection Manager`setSpawnpoint` - Default Spawn Point Persistence`simTimeAuthority` - Simulation Time & Bullet Time Control`spawn` - Vehicle Spawning & Safe Placement`suspensionFrequencyTester` - Suspension Natural Frequency Analysis
Auto AnnotationBoosterCalibrate ESCCompile ImpostersCompile MeshesConfig List GeneratorDecal Roads EditorDependency TreeDoc CreatorExport (glTF)Follow The White RabbitForest GeneratorGround Model DebugInput System UtilsInstanced Line Render DemoJBeam StatsLog StreamsMap TilesNode Beam ExportNode StreamPhotomodePrecompile ShadersPrecompile VehiclesProcedural Track (Gymkhana Generator)Rectangle GeneratorRender Components APIResave MaterialsRich PresenceSave Dynamic DataScreenshot Creator (Vehicle Thumbnails)ShowroomSort LinesStep HandlerTerrain GeneratorTest Extension ProxiesTest JSON Files Syntaxutil/vehicleRopeDebug - Rope Physics Debug UIutil/worker - Batch Job Workerutil/wsTest - WebSocket Test Server

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 Extensionsutil

util/wsTest - WebSocket Test Server

Reference for `extensions/util/wsTest.lua`. Runs a local WebSocket server for testing GE Lua execution, reloads, and bandwidth measurements from a browser.

Reference for extensions/util/wsTest.lua. Runs a local WebSocket server for testing GE Lua execution, reloads, and bandwidth measurements from a browser.


Exports

KeySignatureDescription
onExtensionLoaded()Creates/starts the WebSocket server on port 8083
onExtensionUnloaded()Destroys the WebSocket server
onUpdate()Polls for WebSocket events and handles messages

Supported Commands

TypeDescription
execGELuaExecutes a Lua expression and returns the result
reloadGELuaTriggers full GE Lua reload
reloadCEFReloads the CEF UI layer
toggleCEFDevConsoleToggles the CEF developer console
bandwidthDownAcknowledges a download bandwidth test
bandwidthUpStartGenerates random test data and sends it back for upload test
pingResponds with "pong" (handled as raw string, not JSON)

Internals

  • Server setup: Uses wsUtils.createOrGetWS('any', 8083, ...) with protocol 'bng-test' and serves static files from ./ui/entrypoints/util_wsTest/.
  • Lua execution: exec(cmd) wraps loadstring("return " .. cmd) in xpcall with stack trace for safe evaluation.
  • Bandwidth test: Generates random data chunks (size/100 repeated 10x) and sends as JSON with type "bandwidthUp", followed by "done".
  • Event loop: onUpdate polls server:getPeerEvents(), handles data events (type 'D'), and calls server:update().

How It Works

  1. Load via extensions.load('util_wsTest').
  2. Opens a WebSocket server on port 8083 accessible at http://<address>:8083.
  3. Browser clients connect and send JSON commands.
  4. Server processes commands and sends JSON responses back.
-- Load the test server
extensions.load('util_wsTest')
-- Access via browser: http://localhost:8083
-- Send from browser: {"type": "execGELua", "cmd": "1+1"}
-- Receive: {"result": 2}

Additional Exports

  • M.onExtensionLoaded - (undocumented)
  • M.onExtensionUnloaded - (undocumented)
  • M.onUpdate - (undocumented)

util/worker - Batch Job Worker

Reference for `extensions/util/worker.lua`. Processes batch work items from a JSON file (`/work.json`) for automated tasks like mesh compilation, imposter generation, mod testing, and vehicle previews

Track Builder - Basic Borders

Generates left and right border mesh geometry for track segments in the track builder system.

On this page

ExportsSupported CommandsInternalsHow It WorksAdditional Exports