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
ui/ambientSound - Ambient Sound Stream PlayerUI Apps ManagerUI AudioBindings LegendCamera Distance AppConsole (consoleNG)Credits MusicExternal App (WebSocket UI Server)Fade ScreenGame BlurGameplay App ContainersGrid SelectorLivery EditorMessages DebuggerMessages/Tasks App ContainersMission InfoPolice InfoTop BarUI ModsUI Navigation / MapVehicle Paint EditorVehicle Vicinity AppUI Visibility

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 Extensionsui

Messages Debugger

ImGui debug window for composing, sending, and clearing UI message events.

ImGui debug window for composing, sending, and clearing UI message events.


Overview

ui_messagesDebugger provides a developer-facing ImGui window to test the Message guihook system. You can compose messages with custom text, category, icon, and TTL, then send or clear them interactively.

Extension path: lua/ge/extensions/ui/messagesDebugger.lua Dependencies: ui_imgui


Exports (M)

FunctionSignatureDescription
show()Opens the debug window.
hide()Closes the debug window.
toggle()Toggles window visibility.
onUpdate(dtReal, dtSim, dtRaw)Draws the ImGui window each frame.

Data Fields

FieldDescription
M.dependencies{"ui_imgui"} - required for ImGui debug window.

Internals

UI State

  • txtMsg - 1024-char buffer for message body
  • txtCategory - 128-char buffer for category string
  • txtIcon - 256-char buffer for icon path or font id
  • ttlSeconds - Float slider (0.5–30s) for time-to-live
  • useRegexClear - Checkbox to use regex when clearing categories
  • bypassTtl - Checkbox to disable TTL (sends MessagesDebug event to UI)

Local Helpers

  • _sendMessage(msg, ttl, category, icon) - Calls guihooks.message(...).
  • _clearCategory(category, isRegex) - Triggers Message with clear = true.
  • _clearAll() - Triggers ClearAllMessages.

Window Layout

The window contains:

  1. Bypass TTL checkbox - sends MessagesDebug to the CEF layer
  2. Multiline text input for the message body
  3. Category and Icon inputs side-by-side
  4. TTL slider (0.5–30 seconds)
  5. Send Message / Send Binding Example buttons
  6. Clear Category (with regex toggle) / Clear All buttons
  7. Test 3 Messages - fires three messages with different categories

How It Works

  1. Open via extensions.ui_messagesDebugger.show() or console.
  2. Compose a message in the text area, set category/icon/TTL.
  3. Click Send Message to fire guihooks.message(...).
  4. Use Clear Category or Clear All to dismiss messages.
  5. Send Binding Example demonstrates input-binding placeholders like [action=switch_next_vehicle].

Lua Examples

-- Open the debugger window
extensions.ui_messagesDebugger.show()

-- Toggle from console
extensions.ui_messagesDebugger.toggle()

Hooks Triggered

HookPayloadWhen
guihooks.message(...)(msg, ttl, category, icon)Send Message clicked
MessagesDebug{bypassTtl}Bypass TTL checkbox toggled
Message{category, clear=true}Clear Category clicked
ClearAllMessages-Clear All clicked

Additional Exports

The following exports are available but not yet documented in detail:

  • M.hide
  • M.onUpdate
  • M.show
  • M.toggle

Livery Editor

Main livery editor controller - manages setup, teardown, saving, and update loop for the dynamic decal painting system.

Messages/Tasks App Containers

Manages visibility of UI apps (messages, tasks) within named containers.

On this page

OverviewExports (M)Data FieldsInternalsUI StateLocal HelpersWindow LayoutHow It WorksLua ExamplesHooks TriggeredAdditional Exports