DEV Community

Ziva
Ziva

Posted on

An unedited test of an AI assistant fixing a Godot runtime error

AI assistant demos for game engines are usually edited, so it is hard to tell what the tool did on its own. Here is one you can check: an unedited, real-time recording of Ziva, an AI assistant inside the Godot editor, working on a small sample game with one deliberate bug, plus the project itself so you can run the same test.

Disclosure: Ziva.sh makes Ziva. The recording was made with a Ziva development build signed in to a local test account; the sample repository's README explains how it was set up and recorded.

The sample and the bug

Star Catcher is a tiny top-down Godot 4 game: move a square with the arrow keys and collect stars. Each star is meant to add one point to a score label.

The bug is the kind you get after moving a node into its own scene. main.gd looks the label up by its unique name:

@onready var score_label: Label = %ScoreLabel
Enter fullscreen mode Exit fullscreen mode

But the label now lives in hud.tscn, which main.tscn instances. A % unique name only resolves inside the scene that owns the node, so the game starts with Node not found: "%ScoreLabel" (relative to "/root/Main"), and collecting a star throws a null-instance error at main.gd:15. The score label never changes.

The prompt

This was the only message, and it does not mention the bug:

Add two more stars to the level and make the stars spin slowly. Then play the game, grab a star with the arrow keys and check that the score goes up.
Enter fullscreen mode Exit fullscreen mode

What happened

  1. Ziva read the scene tree and the project's three scripts and three scenes.
  2. It edited star.gd to rotate each star and added two stars to main.tscn.
  3. It ran the game in the editor with run_scene, holding the ui_right input action (an injected action, not a physical key press). The player touched a star, the star disappeared, and the score stayed at 0.
  4. The run returned the two errors above, and they also appeared in Godot's Debugger.
  5. Ziva explained that the label's unique name lives inside hud.tscn, not main.tscn, and changed the lookup to $HUD/ScoreLabel.
  6. It ran the game again. The label read Score: 1.

Ziva's full diff is one commit on the ziva-run-2026-11-04 branch.

How reliable is it?

Four takes were run with the same prompt. In the first, the sample had a more obvious bug ($HUD/Score for a label in the same scene), and Ziva fixed it from reading the script before running anything, so the sample was changed to the HUD-scene version. In all three takes with this bug, Ziva found it by running the game and reading the error. The published take is the third, the only one where the Debugger panel was readable on screen. Model output varies, so your run will differ in star positions and wording.

Run it yourself

  1. Install Godot 4.7 and the Ziva plugin.
  2. Clone https://github.com/ziva-sh/ziva-godot-sample and open it in Godot (stay on main, which has the bug).
  3. Open main.tscn and send the prompt above in a new Ziva chat.

To see the bug without Ziva, press F5 and walk right into the first star. Ziva's tools are also available to Claude Code, Codex and Cursor through its local MCP server.

Top comments (0)