UI Mapping
Pro — $19 This tool requires the Godot addon.
What is UI Mapping?
Section titled “What is UI Mapping?”Static analysis can tell you what Control nodes exist in your .tscn files. But it can’t tell you what text a Label is actually showing, whether a button is currently visible, or what the progress bar value is — those are runtime states.
ui_map reads the live UI tree from the running game via the bridge connection. It captures every Control node’s current properties — text content, visibility, position, size, theme overrides, and signal connections. This gives your AI a complete picture of the UI as it appears to the player.
ui_map
Section titled “ui_map”Maps the runtime UI element tree via the EngineDebugger bridge. Returns all Control nodes with their properties, hierarchy, and signal connections.
When to Use It
Section titled “When to Use It”- Understanding the UI structure of a running game
- Finding a specific UI element to modify (e.g., “find the health bar label”)
- Debugging UI issues — elements hidden, wrong text, unexpected layout
- Getting the current state of dynamic UI (inventory slots, dialogue text, scores)
Parameters
Section titled “Parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
root | string | "/root" | Root node to start mapping from |
filter_type | string | null | Filter to specific Control types (e.g., "Button", "Label") |
include_hidden | bool | true | Include invisible controls |
detail | string | "normal" | Output verbosity |
Example
Section titled “Example”Prompt: “Show me the current UI layout of the HUD.”
{ "tool": "ui_map", "args": { "root": "/root/Main/UI/HUD", "detail": "normal" }}{ "root": "/root/Main/UI/HUD", "control_count": 14, "tree": { "name": "HUD", "type": "CanvasLayer", "children": [ { "name": "TopBar", "type": "HBoxContainer", "rect": { "position": [0, 0], "size": [1920, 60] }, "children": [ { "name": "HealthBar", "type": "ProgressBar", "rect": { "position": [20, 10], "size": [200, 40] }, "value": 75, "max_value": 100, "visible": true }, { "name": "HealthLabel", "type": "Label", "text": "75 / 100", "visible": true, "theme_overrides": { "font_color": "#ff4444" } }, { "name": "ScoreLabel", "type": "Label", "text": "Score: 1,250", "visible": true } ] }, { "name": "BottomBar", "type": "HBoxContainer", "rect": { "position": [0, 1020], "size": [1920, 60] }, "children": [ { "name": "InteractPrompt", "type": "Label", "text": "Press E to open", "visible": false }, { "name": "MiniMap", "type": "SubViewportContainer", "rect": { "position": [1720, 0], "size": [180, 180] }, "visible": true } ] } ] }, "signals": [ { "node": "HealthBar", "signal": "value_changed", "connected_to": "HUD._on_health_changed" } ]}- Use
filter_type: "Button"to find only interactive elements, or"Label"to find only text elements - Set
include_hidden: falseto see only what the player currently sees - The
detail: "full"mode includes theme overrides, custom fonts, anchor/margin values, and all Control-specific properties - Combine with
node_opsto modify UI elements: first find the node withui_map, then change its properties withnode_ops
Common Workflow
Section titled “Common Workflow”- Map the UI with
ui_mapto understand the current structure - Identify the target — find the specific Label, Button, or Container you need
- Modify with
node_ops— set properties on the running UI for immediate feedback - Update the scene file — once you’re happy with the changes, edit the
.tscnto make them permanent
Related Tools
Section titled “Related Tools”- Bridge tools —
node_opsto modify UI nodes,screenshotto capture the visual result - Code analysis —
signal_mapto trace UI signal connections in the codebase - Installation — Setup guide including addon installation