This release includes 2 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+7 more
Affected surfaces
Summary
AI summaryCross‑scene property writes now default to dry‑run, requiring explicit dry_run=false force=true to commit changes.
Full changelog
Feature / Safety — Open-resource conflict prevention
Major safety overhaul for how MCP commands interact with editor-owned resources. Prevents the "external change" dialog and silent in-memory/disk divergence when commands wrote to files that Godot still had open.
Contributor
This release lands a community contribution from @aallnneess (PR #31). The design, patch, and validation were authored by him with GitHub Copilot using GPT-5.5 xhigh. Reviewed and integrated by @youichi-uda. Two clean bug reports + a full design + a working PR in one week — much appreciated.
What's fixed
- Open scenes are no longer overwritten via offline
ResourceSaver.save. Active-scene saves now route throughEditorInterface.save_scene()/save_scene_as()so the editor's in-memory state stays coherent. Inactive open scene tabs return a structured-32009conflict instead of being silently rewritten. cross_scene_set_propertydefaults todry_run=true(breaking change). Real writes requiredry_run=false force=true. Per-scene response now includes amodefield (dry_run/offline_saved/live_open_scene) so callers can see what actually happened.- Live scene mutations participate in UndoRedo. Node creation, property edits, animation tracks, keyframes, animation tree, tilemap edits, theme overrides, etc. all go through
EditorUndoRedoManagerso they appear in the editor's undo history and dirty-state tracking. Animation keyframe edits get round-trip undo via time-matched key replacement. - Open script/shader writes are refused unless
force=trueis explicitly passed._refresh_loaded_shaderusestake_over_path()+emit_changed()to refresh cached/liveShaderresources reliably (replaces the unreliableShader.reload_from_file()call).edit_scriptfinally implements the 1-based inclusivestart_line/end_linerange replacement the CLI had been advertising.script_commandsrestricted to.gd/.cspaths with a clear error otherwise. execute_editor_scriptescape hatch closed. Submitted code is scanned for direct file/resource write APIs and refused unlessallow_unsafe_editor_io=trueis explicitly set. AI clients can no longer route around the per-command guards by submitting raw editor script.
Server schema additions
create_script/edit_script/create_shader/edit_shader: new optionalforceparameteredit_script: newstart_line/end_lineparameterscross_scene_set_property: newdry_run/forceparametersexecute_editor_script: newallow_unsafe_editor_ioparameter- CLI:
script createandscript editaccept--force
Migration notes
Breaking: scripts/agents that called cross_scene_set_property and expected an immediate write now get a dry-run preview by default. Add dry_run=false force=true to actually write. This is intentional — silent project-wide writes were a footgun.
Soft-breaking: calls that targeted open scenes / scripts / shaders without checking now return a -32009 conflict. Either close the file in the editor, save through the editor (for scenes), or pass force=true (for scripts/shaders, when you've verified no buffer holds unsaved changes).
Existing wire-compatible calls that did not target open resources continue to work unchanged.
Tests
62/62 server tests passing on clean build. Contributor ran the addon through Godot 4.6.2-stable headless parse checks and a 30-task compatibility suite before submitting.
Full changelog
See CHANGELOG.md for the complete list of changed files and design rules.
Breaking Changes
- `cross_scene_set_property` defaults to `dry_run=true`; real writes need `dry_run=false force=true`.
- Writes to open scene files are blocked unless `force=true` is supplied; inactive tabs return `-32009` conflict error.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About youichi-uda/godot-mcp-pro
Premium MCP server for Godot game engine with 84 tools for scene editing, scripting, animation, tilemap, shader, input simulation, and runtime debugging.
Related context
Beta — feedback welcome: [email protected]