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
| Key | Signature | Description |
|---|---|---|
onExtensionLoaded | () | Creates/starts the WebSocket server on port 8083 |
onExtensionUnloaded | () | Destroys the WebSocket server |
onUpdate | () | Polls for WebSocket events and handles messages |
Supported Commands
| Type | Description |
|---|---|
execGELua | Executes a Lua expression and returns the result |
reloadGELua | Triggers full GE Lua reload |
reloadCEF | Reloads the CEF UI layer |
toggleCEFDevConsole | Toggles the CEF developer console |
bandwidthDown | Acknowledges a download bandwidth test |
bandwidthUpStart | Generates random test data and sends it back for upload test |
ping | Responds 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)wrapsloadstring("return " .. cmd)inxpcallwith 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:
onUpdatepollsserver:getPeerEvents(), handles data events (type 'D'), and callsserver:update().
How It Works
- Load via
extensions.load('util_wsTest'). - Opens a WebSocket server on port 8083 accessible at
http://<address>:8083. - Browser clients connect and send JSON commands.
- 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.