# Godot Version Compatibility **Minimum supported:** Godot 4.2 **Full functionality:** Godot 4.5+ **Recommended:** Godot 4.5+ **Tested up to:** Godot 4.7.0 Future Godot versions (4.8+) are not blocked. The plugin runs normally on untested versions and logs a startup warning. ## Version tiers | Godot version | Support level | Notes | |---------------|---------------|-------| | 4.0 - 4.1 | Not supported | EditorInterface is not a global singleton; would require wrapping 70+ call sites | | **4.2** | Core | All tools work; some UI degradation (see below) | | **4.3** | Core | TileMapLayer support added (tilemap tool auto-detects) | | **4.4** | Full UI | Toast notifications added (`EditorInterface.get_editor_toaster()` is 4.4+) | | **4.5+** | Full | All tools and UI features available | | 4.8+ (future) | Expected | `has_method()` guards are forward-compatible; startup warning only | ## Tool compatibility matrix All MCP tools work on Godot 4.2+ unless noted below. | Tool | Min version | Behavior on older Godot | |------|-------------|------------------------| | `scene_close` | 4.5 | Returns `UNSUPPORTED` error with version message. On 4.5+ closes active or inactive tabs; last-tab close auto-creates an empty scene | | `script_check` | 4.2 | GDScript only (`.gd`); rejects `.cs` with `INVALID_PARAMS`. `gdscript://` URIs in error messages (see below); `class_name` false positive fixed via stripping | | `editor_refresh` | 4.2 | Supports `file_paths` param for targeted O(1)-per-file mode; without params falls back to full `scan()`. Both modes work on all versions | | `extensions_refresh` | 4.2 | On 4.2, **editing an existing** extension is not applied in-session (a cached read avoids an engine reimport crash — see below); the response `hint` names the extension and says to restart. Adding/removing extensions applies live. 4.3+ applies all changes live | | `script_write` | 4.2 | `.gd` inline diagnostics (`valid`/`diagnostics`) on all versions. On Godot **< 4.4**, editing an existing `.gd` already attached to a **live** node carries a relaunch `hint` (the live instance keeps the old code until relaunch — see [Degraded behavior](#degraded-behavior-by-version)) | | `node_call_method` | 4.2 | On **< 4.4**, an `INVALID_METHOD` whose method exists on the node's on-disk `.gd` (a stale live instance) carries a relaunch `hint`; a genuine typo does not. 4.4+ hot-reloads on a **display** editor, so the call just succeeds — but a **4.4+ headless** editor never re-instantiates the reloaded node, so the stale `hint` fires there too (headless wording: re-create the node or relaunch a display editor) | | `lsp_*` (diagnostics, symbols, hover, completion, definition, references) | 4.2 | LSP works on 4.2+. **Multi-editor conflict detection is degraded < 4.5**: the cross-project root-mismatch check needs 4.5+, so on 4.2–4.4 give each editor a distinct `--lsp-port` + `GODOT_MCP_LSP_PORT` (see [multi-instance.md](multi-instance.md)) | | `editor_get_console` | 4.2 | Captures runtime output (errors/warnings/prints) on all versions. **Editor parse errors** (from `editor_refresh` recompiling a script) surface only on **4.5+** (the Logger API hooks editor diagnostics); on **4.2–4.4** they are NOT written to `godot.log`, so neither `source="buffer"` nor `source="file"` can return them — use `script_check` or the `script_write` inline diagnostics instead. Multi-line errors that ARE captured (`SCRIPT ERROR: …` + ` at: