Debug Tools provide a way to inspect and debug your scene during play or testing. You can access them by clicking the :material-bug: icon in the top toolbar.
The Debug Tools panel slides in from the right side of the screen and contains several tabs for different debugging purposes.
## Tabs
### :material-post-outline: Prompts
The Prompts tab shows a log of all AI prompts that have been sent during your session. Click on any prompt to inspect its full content. This is useful for understanding what information is being sent to the AI and debugging unexpected AI responses.
For headless captures or longer-running debug sessions, the same prompt records can also be streamed to a file — see [Prompt Logging](../getting-started/advanced/prompt-logging.md).
The prompt detail view also lets you force reasoning off for the specific agent action that produced a prompt, using the :material-brain: brain icon next to the action — see [Forcing Reasoning Off for Specific Actions](clients/reasoning.md#forcing-reasoning-off-for-specific-actions).
The Memory tab displays memory retrieval requests made by the Memory Agent. Use this to verify that relevant context is being retrieved during generation.
### :material-variable: Vars
The Vars tab displays game state variables that you have chosen to watch. This allows you to monitor and edit variable values in real time without leaving your scene.

## Game State Variables
Game state variables are persistent values stored with your scene that can be used by node modules to track game progress, flags, counters, and other dynamic data. The "game" scope in the node editor's state management corresponds to these variables.
### Viewing Variables
When you have watched paths set up, the Vars tab displays their current values. If a watched path points to an object (dictionary), its keys are automatically expanded so you can see individual values.
Paths that don't exist in the game state will show an error message indicating the path was not found.
### Editing Variables
You can edit variable values directly in the Vars tab:
- **String values**: Appear as text fields. Type a new value and click away (or press Tab) to save.
- **Number values**: Appear as number input fields. Enter a new value and click away to save.
- **Boolean values**: Appear as checkboxes. Click to toggle the value.
- **Objects and arrays**: Displayed as read-only. To edit these, use the Game State Editor.
Paths use forward slashes to separate nested keys. For example:
-`quest` - A top-level variable named "quest"
-`quest/active` - The "active" key inside the "quest" object
-`player/stats/health` - Deeply nested value
### Removing Watched Paths
To remove a path from being watched, click the :material-close-circle-outline: button next to it in the Watched Variables table.
### Editing the Full Game State
The JSON editor on the left allows you to directly edit the complete game state structure. This is useful for:
- Adding new variables that don't exist yet
- Editing complex objects or arrays
- Bulk changes to multiple values
After making changes in the JSON editor, click away from the editor to validate and save your changes. Invalid JSON will show an error message and won't be saved.
## Edit Scene State
The **Edit Scene State** button at the top of the Debug Tools panel opens a separate editor for the complete scene state, which includes more than just game state variables. This is an advanced feature for debugging scene internals.