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)
| Function | Signature | Description |
|---|---|---|
set | (visible) | Sets both CEF and ImGui visibility. |
get | () → bool | Returns CEF visibility state. |
toggle | () | Toggles both UI layers. |
setCef | (visible) | Sets CEF visibility; fires hooks on change. |
getCef | () → bool | Returns CEF visibility state. |
toggleCef | () | Toggles CEF visibility. |
setImgui | (visible) | Sets ImGui visibility via Engine.imgui.setEnabled. |
getImgui | () → bool | Returns ImGui visibility state. |
State (M.state)
| Field | Type | Default | Description |
|---|---|---|---|
cefVisible | bool | true | CEF layer visibility. |
imguiVisible | bool | Engine.imgui.isEnabled() | ImGui layer visibility. |
Internals
CEF Visibility Change
When setCef changes state, it fires:
guihooks.trigger('onCefVisibilityChanged', visible)- notifies CEF UIextensions.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
- Game code or keybinds call
toggle()to hide/show the UI. - CEF visibility controls the web-based HUD, menus, and apps.
- ImGui visibility controls all developer debug windows.
- Extensions can listen for
onCefVisibilityChangedto 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")
endHooks
| Hook | Payload | When |
|---|---|---|
onCefVisibilityChanged (guihook) | visible | CEF visibility changes |
onCefVisibilityChanged (ext hook) | visible | CEF visibility changes |
Additional Exports
The following exports are available but not yet documented in detail:
M.getM.getCefM.getImguiM.setM.setCefM.setImguiM.toggleM.toggleCef