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

UI Visibility

Controls visibility of the CEF and ImGui UI layers.

Controls visibility of the CEF and ImGui UI layers.


Overview

ui_visibility provides a simple API to show/hide the two UI layers: CEF (web-based UI) and ImGui (debug/developer UI). Both can be toggled independently or together.

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


Exports (M)

FunctionSignatureDescription
set(visible)Sets both CEF and ImGui visibility.
get() → boolReturns CEF visibility state.
toggle()Toggles both UI layers.
setCef(visible)Sets CEF visibility; fires hooks on change.
getCef() → boolReturns CEF visibility state.
toggleCef()Toggles CEF visibility.
setImgui(visible)Sets ImGui visibility via Engine.imgui.setEnabled.
getImgui() → boolReturns ImGui visibility state.

State (M.state)

FieldTypeDefaultDescription
cefVisiblebooltrueCEF layer visibility.
imguiVisibleboolEngine.imgui.isEnabled()ImGui layer visibility.

Internals

CEF Visibility Change

When setCef changes state, it fires:

  1. guihooks.trigger('onCefVisibilityChanged', visible) - notifies CEF UI
  2. extensions.hook('onCefVisibilityChanged', visible) - notifies other extensions

ImGui Visibility Change

setImgui calls Engine.imgui.setEnabled(visible) directly.

Combined Controls

set(visible) calls both setCef and setImgui. get() returns only CEF state. toggle() toggles based on get().


How It Works

  1. Game code or keybinds call toggle() to hide/show the UI.
  2. CEF visibility controls the web-based HUD, menus, and apps.
  3. ImGui visibility controls all developer debug windows.
  4. Extensions can listen for onCefVisibilityChanged to react (e.g., pause rendering).

Lua Examples

-- Hide all UI
extensions.ui_visibility.set(false)

-- Toggle UI visibility (common keybind action)
extensions.ui_visibility.toggle()

-- Hide only ImGui, keep CEF
extensions.ui_visibility.setImgui(false)

-- Check if CEF is visible
if extensions.ui_visibility.getCef() then
  print("UI is visible")
end

Hooks

HookPayloadWhen
onCefVisibilityChanged (guihook)visibleCEF visibility changes
onCefVisibilityChanged (ext hook)visibleCEF visibility changes

Additional Exports

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

  • M.get
  • M.getCef
  • M.getImgui
  • M.set
  • M.setCef
  • M.setImgui
  • M.toggle
  • M.toggleCef

Vehicle Vicinity App

Sends nearby vehicle bounding box and coupler data to the UI each frame.

Generic Mission Data App

HUD element for displaying categorized mission data (timers, messages, scores) during gameplay.

On this page

OverviewExports (M)State (M.state)InternalsCEF Visibility ChangeImGui Visibility ChangeCombined ControlsHow It WorksLua ExamplesHooksAdditional Exports