This page provides an overview of the major built-in editor plugins in Godot, specifically those implementing the 2D editing viewport, the 3D editing viewport, the gizmo system used to visualize and manipulate Node3D objects, and specialized editors for animations and shaders. These plugins are built on top of the EditorPlugin base class editor/register_editor_types.cpp33-48
Godot's built-in editor tools are structured as EditorPlugin subclasses. The EditorNode singleton acts as the central orchestrator, managing the lifecycle of these plugins and their integration into the editor UI editor/editor_main_screen.h34-35 Plugins interact with the editor through the EditorInterface editor/register_editor_types.cpp45 which provides access to EditorSettings doc/classes/EditorSettings.xml13-17 the filesystem, and viewport management.
Plugin Registration and Context Flow
Sources: editor/editor_main_screen.h34-35 doc/classes/EditorSettings.xml2-7 editor/scene/3d/node_3d_editor_plugin.h34-35 editor/register_editor_types.cpp45-48
| Plugin Class | Source File | Editing Context | Key Responsibility |
|---|---|---|---|
CanvasItemEditorPlugin | editor/scene/canvas_item_editor_plugin.cpp31 | 2D viewport | Select, move, rotate, scale CanvasItem nodes |
Node3DEditorPlugin | editor/scene/3d/node_3d_editor_plugin.cpp31 | 3D viewport | Manipulate Node3D objects, manage camera navigation |
AnimationPlayerEditorPlugin | editor/animation/animation_player_editor_plugin.cpp40-41 | Animation timeline | Keyframe editing and track management |
ShaderEditorPlugin | editor/script/script_editor_plugin.cpp61 | Shader text editor | Edit GLSL shaders |
Each plugin integrates with the editor's undo/redo system via EditorUndoRedoManager editor/editor_undo_redo_manager.cpp47-49 and retrieves project-independent configurations from EditorSettings editor/settings/editor_settings.cpp69-73
The CanvasItemEditorPlugin provides the primary 2D editing viewport. It handles selection of CanvasItem nodes (including Node2D and Control), transform operations, and snapping via the SnapDialog editor/scene/canvas_item_editor_plugin.cpp89-105 The editor supports various display options such as grid visibility, rulers, and transformation handles with defined thresholds like DRAG_THRESHOLD editor/scene/canvas_item_editor_plugin.cpp85
For detailed documentation, see CanvasItem Editor.
Sources: editor/scene/canvas_item_editor_plugin.cpp31-105 editor/scene/canvas_item_editor_plugin.h76-90
The Node3DEditorPlugin manages the 3D editing environment. It utilizes Node3DEditorViewport instances editor/scene/3d/node_3d_editor_plugin.h100 to render the scene. Key features include:
EditorSettings editor/scene/3d/node_3d_editor_plugin.cpp88For detailed documentation, see Node3D Editor.
Sources: editor/scene/3d/node_3d_editor_plugin.cpp31-115 editor/scene/3d/node_3d_editor_plugin.h60-100
The gizmo system provides visual overlays and interactive handles for Node3D nodes. The Node3DEditorPlugin registers a vast array of specialized plugins for different node types, such as Camera3DGizmoPlugin, Light3DGizmoPlugin, and CollisionShape3DGizmoPlugin editor/scene/3d/node_3d_editor_plugin.cpp51-71
Gizmo Entity Mapping
Sources: editor/scene/3d/node_3d_editor_gizmos.h35-45 editor/scene/3d/node_3d_editor_plugin.cpp66-71
A base class that defines how gizmos are generated for specific nodes. It provides the logic to create specialized EditorNode3DGizmo instances for nodes in the 3D scene editor/scene/3d/node_3d_editor_plugin.cpp51-84
The instance-level object attached to a Node3D. It handles the drawing of lines and meshes in the 3D viewport and manages interaction handles editor/scene/3d/node_3d_editor_plugin.h135-137
For detailed documentation, see Gizmo System.
Sources: editor/scene/3d/node_3d_editor_plugin.cpp51-84 editor/scene/3d/node_3d_editor_plugin.h172-176
The Animation Editor suite manages the complex lifecycle of animation tracks and libraries. It consists of the AnimationPlayerEditorPlugin editor/animation/animation_player_editor_plugin.cpp40-41 which coordinates several sub-editors:
AnimationTrackEditor: The primary timeline view for editing animation tracks editor/animation/animation_track_editor.cpp31-32AnimationBezierEditor: For fine-tuning interpolation curves editor/animation/animation_track_editor.cpp40AnimationTrackKeyEdit: A helper class for editing individual keyframes in the inspector editor/animation/animation_track_editor.cpp75-83For detailed documentation, see Animation Editor.
Sources: editor/animation/animation_track_editor.cpp31-83 editor/animation/animation_player_editor_plugin.cpp40-41
The Shader Editor provides a workspace for GLSL development within the engine. It includes:
.gdshader code with syntax highlighting, registered as part of the script editor infrastructure editor/register_editor_types.cpp128-130VisualShader resources editor/register_editor_types.cpp39-40For detailed documentation, see Shader Editor.
Sources: editor/register_editor_types.cpp39-130 editor/script/script_editor_plugin.cpp61
| Page | Content |
|---|---|
| CanvasItem Editor | 2D viewport: selection, transforms, snapping |
| Node3D Editor | 3D viewport: camera navigation, transform tools |
| Gizmo System | Detailed EditorNode3DGizmo and EditorNode3DGizmoPlugin API |
| Animation Editor | AnimationPlayer and AnimationTree editing |
| Shader Editor | Text-based and VisualShader graph editors |
Sources: editor/scene/canvas_item_editor_plugin.cpp31-40 editor/scene/3d/node_3d_editor_plugin.cpp31-100 editor/register_editor_types.cpp31-130
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.