Look at and drive the running game session
godot_gameInspect and control a running Godot game live: read nodes, set values, step frames with input, and reload edited scripts without restarting to test fixes.
Instructions
Ask the game that godot_session started. op tree (the live node tree: path, class, script; root, depth, limit), get (values now: watch ["Hero.position", "Hero.is_on_floor()"]), set (target "Hero.position", value "Vector3(0, 30, 0)" as Godot writes values), call (node, method, args), eval (a Godot Expression with the scene root as base, e.g. get_node("Hero").velocity.length()), step (play frames frames with an input timeline counted from this step, sample watch, stop early until a condition holds; the same frame-exact input as godot_play), signals (record these signals; later steps list when they fired), layout (3D objects: global position, size, lowest point, and whether each rests on, floats above or sinks into what is below, plus scale mistakes), ray (from, to: what a physics ray hits), ui (visible controls at one or more window sizes, with clipped text, off-screen panels, overlapping buttons and small targets), errors (what the game printed since the last call), reload (load the scripts you edited into the running game: every node keeps its values and runs the new code from the next step, so you try a fix without loading the world again; files, default every script changed since the last reload; a script that does not compile is left as it was). Every answer ends with the errors and warnings the game printed since the last call, runtime errors with their call chain. Time only moves on a step, so the session stays deterministic. Use it to try a fix live, find a state that is hard to reach, or watch a long scenario in parts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | what to do | |
| to | No | ray: end | |
| args | No | call: arguments as Godot values | |
| expr | No | eval: the expression | |
| from | No | ray: start, Vector3(...) or Vector2(...) | |
| node | No | call: node path from the scene root | |
| path | No | The project folder, or any file or folder inside it (Godotwright walks up to project.godot). Relative paths start at the server's folder. Default: the current project. | |
| root | No | tree: start at this node (default the scene root) | |
| depth | No | tree: levels to show (default 3) | |
| every | No | step: sample every n frames (default: about 10 samples) | |
| files | No | reload: res:// scripts to reload (default: every script changed since the session started or the last reload) | |
| input | No | step: "0 press jump; 10 release jump; 20 hold right 30" | |
| limit | No | tree: nodes to show (default 80) | |
| sizes | No | ui: window sizes such as 1280x720 or 720x1280 (default the size the project sets) | |
| until | No | step: stop at the first frame where this holds, "Hero.is_on_floor() == true" | |
| value | No | set: the new value as Godot writes it | |
| watch | No | get and step: values to read, Node.property or Node.method() | |
| frames | No | step: frames to run (default 60) | |
| method | No | call: method name | |
| target | No | set: Node.property | |
| signals | No | signals: Node.signal to record |