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/Tasks App Containers

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

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


Overview

ui_messagesTasksAppContainers controls which sub-apps (e.g. messages, tasks) are visible inside container groups. Each container maps to a guihook trigger that notifies the CEF UI of visibility changes. Supports serialization to preserve state across sessions.

Extension path: lua/ge/extensions/ui/messagesTasksAppContainers.lua


Exports (M)

FunctionSignatureDescription
setAppVisibility(containerId, appId, visible)Sets a specific app's visibility and triggers UI update.
getAppVisibility(containerId, appId) → boolReturns whether an app is currently visible.
showApp(containerId, appId)Shorthand for setAppVisibility(..., true).
hideApp(containerId, appId)Shorthand for setAppVisibility(..., false).
toggleApp(containerId, appId)Toggles an app's visibility.
hideAllApps(containerId)Hides all apps in a container, fires onUIContainerAppsHidden.
getVisibleApps(containerId) → string[]Returns list of visible app IDs.
getAvailableApps(containerId) → tableReturns all apps (id → {visible}) for a container.
getMessagesTasksAppContainerMounted() → boolWhether the Vue container component is mounted.
setDebug(enabled)Enables an ImGui debug overlay.
onSerialize() → tableSaves container visibility state.
onDeserialize(data)Restores container visibility state.
onExtensionLoaded()Hook - initializes message/task container state.
onExtensionUnloaded()Hook - cleans up containers.
setVerboseLogging(enabled)Enables or disables verbose debug logging.
onMessagesTasksAppContainerMounted(containerId)Hook - registers a messages/tasks container mount.
onMessagesTasksAppContainerUnmounted(containerId)Hook - unregisters a messages/tasks container.

Internals

Container Registry

appContainersById = {
  ['messagesTasksApps'] = {
    apps = {
      messages = { visible = true },
      tasks    = { visible = true },
    },
    trigger = 'setMessagesTasksAppVisibility',
  }
}

Each container has a trigger string used with guihooks.trigger(...) when visibility changes.

Debug Window

When setDebug(true) is called, onUpdate renders an ImGui window showing per-container app states with show/hide/toggle buttons.


How It Works

  1. Extensions or gameplay code call showApp / hideApp / toggleApp.
  2. The module updates internal state and fires the container's guihook trigger.
  3. The CEF/Vue UI receives setMessagesTasksAppVisibility with {appId, visible, allApps}.
  4. On serialize, the visibility map is saved; on deserialize, it is restored.

Lua Examples

-- Hide the tasks app
extensions.ui_messagesTasksAppContainers.hideApp('messagesTasksApps', 'tasks')

-- Check if messages are visible
local vis = extensions.ui_messagesTasksAppContainers.getAppVisibility('messagesTasksApps', 'messages')

-- Hide all apps in the container
extensions.ui_messagesTasksAppContainers.hideAllApps('messagesTasksApps')

Hooks

HookPayloadWhen
setMessagesTasksAppVisibility (guihook){appId, visible, allApps}Any app visibility changes
onUIContainerAppsHidden (extension)containerIdhideAllApps called

Additional Exports

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

  • M.getAppVisibility
  • M.getAvailableApps
  • M.getMessagesTasksAppContainerMounted
  • M.getVisibleApps
  • M.hideAllApps
  • M.hideApp
  • M.onDeserialize
  • M.onExtensionLoaded
  • M.onExtensionUnloaded
  • M.onMessagesTasksAppContainerMounted
  • M.onMessagesTasksAppContainerUnmounted
  • M.onSerialize
  • M.onUpdate
  • M.setAppVisibility
  • M.setDebug
  • M.setVerboseLogging
  • M.showApp
  • M.toggleApp

Messages Debugger

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

Mission Info

Manages mission info dialogues and activity accept popups in the UI.

On this page

OverviewExports (M)InternalsContainer RegistryDebug WindowHow It WorksLua ExamplesHooksAdditional Exports