RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Ambient SoundUI Apps ManagerUI AudioBindings LegendCamera Distance AppDeveloper ConsoleCredits MusicExternal WebSocket ServerFade ScreenGame BlurGameplay App ContainersGrid SelectorLivery EditorMessages DebuggerMessages/Tasks App ContainersMission InfoPolice InfoTop BarUI ModsNavigation Map DataVehicle 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

See Also

  • ui/ambientSound - Ambient Sound Stream Player - Related reference
  • UI Apps Manager - Related reference
  • UI Audio - Related reference
  • UI System Guide - Guide

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 ExportsSee Also