name: foundation-editor-workflow description: Foundational skill for Godot editor-facing workflows: plugin entry points, menu/settings registration lifecycle, editor UX consistency, and teardown cleanliness. tier: core godot_version: 4.6+ doc_anchors: - godot-docs/tutorials/plugins/editor/making_plugins.rst - godot-docs/tutorials/plugins/running_code_in_the_editor.rst - godot-docs/tutorials/editor/managing_editor_features.rst - godot-docs/classes/class_editorplugin.rst tags: - editor - plugins - workflow depends_on: []
Foundation Editor Workflow
Use When
- Building editor tools/plugins/docks/settings.
- Adding/removing menu entries and editor settings categories.
- Hardening plugin load/unload behavior.
Outcomes
- Editor entry points are explicit and stable.
- Registration and teardown are symmetric and repeatable.
- Tools behave safely in editor context without runtime side effects.
Required Rules
- Register editor entry points once.
- Remove all entries on disable/unload.
- No legacy/obsolete settings categories retained.
- Prefer event/callback lifecycle hooks over polling.
Workflow
- Define plugin entry surfaces (menu, dock, inspector, main screen).
- Implement enable/disable lifecycle with explicit registration map.
- Ensure
@toolexecution boundaries are editor-safe. - Add teardown cleanup for controls, signals, settings, and temporary state.
- Validate behavior across editor reload/restart cycles.
Validation
- Enable/disable plugin repeatedly with no duplicate entries or leaked state.
- Editor restart preserves intended settings and drops temporary artifacts.
- Tool actions do not mutate runtime-only state unexpectedly.
Failure Modes
- Plugin registers controls multiple times across reloads.
- Disable path leaves stale menus/signals/settings in editor state.
- Editor-time code executes unsafe runtime operations.
Local Doc Anchors
godot-docs/tutorials/plugins/editor/making_plugins.rstgodot-docs/tutorials/plugins/running_code_in_the_editor.rstgodot-docs/tutorials/editor/managing_editor_features.rstgodot-docs/classes/class_editorplugin.rst