Godot Bridge
Connect Profy to the Godot Engine instance on your machine so an expert can edit the scene tree, write GDScript, run the game, and perform deterministic playtesting. That last capability is what separates this from every other 3D or game bridge. Most AI-assisted game development can only take screenshots and squint at them. Godot lets you freeze time, step individual frames, inject inputs, and read any node property — which turns testing into assertions instead of “looks about right”.Declaration and activation
user_selectable) and a connected Desktop (desktop_connected, derived from PROFY_DESKTOP == "true"). The plugin does not exist in cloud browser conversations.
Prerequisites
Deterministic playtesting
This is the plugin’s central value and deserves to be understood on its own terms. Ordinary AI game testing is “run it, screenshot it, does it look right”. The problem is that games are real-time: run the same code twice and the physics step, frame pacing, and input timing all differ, so the frames differ too. When a screenshot does not match, you cannot tell whether the code is wrong or the frame simply had not caught up yet. Godot lets you stop time:Example: testing a jump
position.y > initial_y. When it fails you know whether the jump height was insufficient or the input never fired, instead of guessing from an image.
The design consequence worth internalising: any behaviour you want an agent to verify autonomously must be readable as state. If the only evidence is visual, the agent is back to squinting.
Development workflow
get_project_info), confirm Godot is 4.3+, and review the project structure — scenes, scripts, assets.
Capability inventory (available once MCP is wired)
Safety rules
- Never modify
.godot/project settings without asking - Only use undo-safe operations
- Save before running tests
- Do not delete nodes that have many dependents
Code style constraints
The prompt layer requires GDScript to stay clean: static typing plus@export annotations. This is not an aesthetic preference. Static types make Godot report errors at edit time, and @export makes parameters tunable in the editor. Both directly reduce the “only discovered at runtime” round trips that dominate the cost of agent-driven game development.
Boundaries and failure modes
- No Desktop, no plugin. It does not appear in cloud conversations.
- While
Engine.time_scale = 0, the game does not advance on its own. If a test script forgetsstep_frame(), the symptom is “it hangs” rather than an error. That is the intended semantics, not a deadlock. - The MCP declaration is currently unwired (see the top of the page), so the model will offer methodology rather than execute.
- Deterministic playtesting only covers logic you can read as a property. Rendering correctness, shader behaviour, and audio produce no readable numbers and still depend on screenshots and human judgement.
- Hot reload has limits. GDScript hot-reloads, but changing exported variable structure or scene structure generally requires restarting the game.
Troubleshooting
Verify your setup
- Godot Bridge should appear in the plugin panel of a new Profy Desktop conversation. If it does not, Desktop is not connected.
- Tick it and ask “what does the current Godot project’s scene tree look like?”. Methodology advice instead of a real node tree means you have hit the unwired state described above.
- Ask it to “design a test that verifies the character’s jump height”. A correct answer must contain all three of
set_time_scale(0),step_frame, and aread_node_propertyassertion — which confirms the skill layer loaded.
Related
3D and visualization
Cloud-side game-studio: Three.js / R3F / Phaser web games
Blender Bridge
Sibling bridge: local Blender modelling and GLB export
Verified 2026-08-11. Sources:
services/agent-runtime/src/plugins/builtin/godot-bridge/plugin.json, skills/godot-workflow/SKILL.md, prompts/GODOT.md, services/agent-runtime/src/plugins/registry.py (_check_activation).
