EditorInterface ​
Inherits: Object
Godot editor's interface.
Description
EditorInterface gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to EditorSettings, EditorFileSystem, EditorResourcePreview, ScriptEditor, the editor viewport, and information about scenes.
Note: This class shouldn't be instantiated directly. Instead, access the singleton directly by its name.
var editor_settings = EditorInterface.get_editor_settings()
Properties
Methods
Property Descriptions
bool distraction_free_mode 🔗
If true
, enables distraction-free mode which hides side docks to increase the space available for the main view.
If true
, the Movie Maker mode is enabled in the editor. See MovieWriter for more information.
Method Descriptions
void edit_node(node: Node) 🔗
Edits the given Node. The node will be also selected if it's inside the scene tree.
void edit_resource(resource: Resource) 🔗
Edits the given Resource. If the resource is a Script you can also edit it with edit_script to specify the line and column position.
void edit_script(script: Script, line: int = -1, column: int = 0, grab_focus: bool = true) 🔗
Edits the given Script. The line and column on which to open the script can also be specified. The script will be open with the user-configured editor for the script's language which may be an external editor.
Control get_base_control() const 🔗
Returns the main container of Godot editor's window. For example, you can use it to retrieve the size of the container and place your controls accordingly.
Warning: Removing and freeing this node will render the editor useless and may cause a crash.
EditorCommandPalette get_command_palette() const 🔗
Returns the editor's EditorCommandPalette instance.
Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.
String get_current_directory() const 🔗
Returns the current directory being viewed in the FileSystemDock. If a file is selected, its base directory will be returned using String.get_base_dir instead.
String get_current_feature_profile() const 🔗
Returns the name of the currently activated feature profile. If the default profile is currently active, an empty string is returned instead.
In order to get a reference to the EditorFeatureProfile, you must load the feature profile using EditorFeatureProfile.load_from_file.
Note: Feature profiles created via the user interface are loaded from the feature_profiles
directory, as a file with the .profile
extension. The editor configuration folder can be found by using EditorPaths.get_config_dir.
String get_current_path() const 🔗
Returns the current path being viewed in the FileSystemDock.
Node get_edited_scene_root() const 🔗
Returns the edited (current) scene's root Node.
VBoxContainer get_editor_main_screen() const 🔗
Returns the editor control responsible for main screen plugins and tools. Use it with plugins that implement EditorPlugin._has_main_screen.
Note: This node is a VBoxContainer, which means that if you add a Control child to it, you need to set the child's Control.size_flags_vertical to Control.SIZE_EXPAND_FILL to make it use the full available space.
Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.
EditorPaths get_editor_paths() const 🔗
Returns the EditorPaths singleton.
float get_editor_scale() const 🔗
Returns the actual scale of the editor UI (1.0
being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins.
Note: This value is set via the interface/editor/display_scale
and interface/editor/custom_display_scale
editor settings. Editor must be restarted for changes to be properly applied.
EditorSettings get_editor_settings() const 🔗
Returns the editor's EditorSettings instance.
Theme get_editor_theme() const 🔗
Returns the editor's Theme.
Note: When creating custom editor UI, prefer accessing theme items directly from your GUI nodes using the get_theme_*
methods.
SubViewport get_editor_viewport_2d() const 🔗
Returns the 2D editor SubViewport. It does not have a camera. Instead, the view transforms are done directly and can be accessed with Viewport.global_canvas_transform.
SubViewport get_editor_viewport_3d(idx: int = 0) const 🔗
Returns the specified 3D editor SubViewport, from 0
to 3
. The viewport can be used to access the active editor cameras with Viewport.get_camera_3d.
FileSystemDock get_file_system_dock() const 🔗
Returns the editor's FileSystemDock instance.
Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.
EditorInspector get_inspector() const 🔗
Returns the editor's EditorInspector instance.
Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.
PackedStringArray get_open_scenes() const 🔗
Returns an Array with the file paths of the currently opened scenes.
String get_playing_scene() const 🔗
Returns the name of the scene that is being played. If no scene is currently being played, returns an empty string.
EditorFileSystem get_resource_filesystem() const 🔗
Returns the editor's EditorFileSystem instance.
EditorResourcePreview get_resource_previewer() const 🔗
Returns the editor's EditorResourcePreview instance.
ScriptEditor get_script_editor() const 🔗
Returns the editor's ScriptEditor instance.
Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.
PackedStringArray get_selected_paths() const 🔗
Returns an array containing the paths of the currently selected files (and directories) in the FileSystemDock.
EditorSelection get_selection() const 🔗
Returns the editor's EditorSelection instance.
void inspect_object(object: Object, for_property: String = "", inspector_only: bool = false) 🔗
Shows the given property on the given object
in the editor's Inspector dock. If inspector_only
is true
, plugins will not attempt to edit object
.
bool is_multi_window_enabled() const 🔗
Returns true
if multiple window support is enabled in the editor. Multiple window support is enabled if all of these statements are true:
EditorSettings.interface/editor/single_window_mode is
false
.Viewport.gui_embed_subwindows is
false
. This is forced totrue
on platforms that don't support multiple windows such as Web, or when the--single-window
command line argument is used.
bool is_playing_scene() const 🔗
Returns true
if a scene is currently being played, false
otherwise. Paused scenes are considered as being played.
bool is_plugin_enabled(plugin: String) const 🔗
Returns true
if the specified plugin
is enabled. The plugin name is the same as its directory name.
Array[Texture2D] make_mesh_previews(meshes: Array[Mesh], preview_size: int) 🔗
Returns mesh previews rendered at the given size as an Array of Texture2Ds.
void mark_scene_as_unsaved() 🔗
Marks the current scene tab as unsaved.
void open_scene_from_path(scene_filepath: String) 🔗
Opens the scene at the given path.
void play_current_scene() 🔗
Plays the currently active scene.
void play_custom_scene(scene_filepath: String) 🔗
Plays the scene specified by its filepath.
void play_main_scene() 🔗
Plays the main scene.
void popup_dialog(dialog: Window, rect: Rect2i = Rect2i(0, 0, 0, 0)) 🔗
Pops up the dialog
in the editor UI with Window.popup_exclusive. The dialog must have no current parent, otherwise the method fails.
See also Window.set_unparent_when_invisible.
void popup_dialog_centered(dialog: Window, minsize: Vector2i = Vector2i(0, 0)) 🔗
Pops up the dialog
in the editor UI with Window.popup_exclusive_centered. The dialog must have no current parent, otherwise the method fails.
See also Window.set_unparent_when_invisible.
void popup_dialog_centered_clamped(dialog: Window, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75) 🔗
Pops up the dialog
in the editor UI with Window.popup_exclusive_centered_clamped. The dialog must have no current parent, otherwise the method fails.
See also Window.set_unparent_when_invisible.
void popup_dialog_centered_ratio(dialog: Window, ratio: float = 0.8) 🔗
Pops up the dialog
in the editor UI with Window.popup_exclusive_centered_ratio. The dialog must have no current parent, otherwise the method fails.
See also Window.set_unparent_when_invisible.
void popup_node_selector(callback: Callable, valid_types: Array[StringName] = []) 🔗
Pops up an editor dialog for selecting a Node from the edited scene. The callback
must take a single argument of type NodePath. It is called on the selected NodePath or the empty path ^""
if the dialog is canceled. If valid_types
is provided, the dialog will only show Nodes that match one of the listed Node types.
Example:
func _ready():
if Engine.is_editor_hint():
EditorInterface.popup_node_selector(_on_node_selected, ["Button"])
func _on_node_selected(node_path):
if node_path.is_empty():
print("node selection canceled")
else:
print("selected ", node_path)
void popup_property_selector(object: Object, callback: Callable, type_filter: PackedInt32Array = PackedInt32Array()) 🔗
Pops up an editor dialog for selecting properties from object
. The callback
must take a single argument of type NodePath. It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^""
if the dialog is canceled. If type_filter
is provided, the dialog will only show properties that match one of the listed Variant.Type values.
Example:
func _ready():
if Engine.is_editor_hint():
EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT])
func _on_property_selected(property_path):
if property_path.is_empty():
print("property selection canceled")
else:
print("selected ", property_path)
void reload_scene_from_path(scene_filepath: String) 🔗
Reloads the scene at the given path.
void restart_editor(save: bool = true) 🔗
Restarts the editor. This closes the editor and then opens the same project. If save
is true
, the project will be saved before restarting.
void save_all_scenes() 🔗
Saves all opened scenes in the editor.
Saves the currently active scene. Returns either @GlobalScope.OK or @GlobalScope.ERR_CANT_CREATE.
void save_scene_as(path: String, with_preview: bool = true) 🔗
Saves the currently active scene as a file at path
.
void select_file(file: String) 🔗
Selects the file, with the path provided by file
, in the FileSystem dock.
void set_current_feature_profile(profile_name: String) 🔗
Selects and activates the specified feature profile with the given profile_name
. Set profile_name
to an empty string to reset to the default feature profile.
A feature profile can be created programmatically using the EditorFeatureProfile class.
Note: The feature profile that gets activated must be located in the feature_profiles
directory, as a file with the .profile
extension. If a profile could not be found, an error occurs. The editor configuration folder can be found by using EditorPaths.get_config_dir.
void set_main_screen_editor(name: String) 🔗
Sets the editor's current main screen to the one specified in name
. name
must match the title of the tab in question exactly (e.g. 2D
, 3D
, Script
, or AssetLib
for default tabs).
void set_plugin_enabled(plugin: String, enabled: bool) 🔗
Sets the enabled status of a plugin. The plugin name is the same as its directory name.
void stop_playing_scene() 🔗
Stops the scene that is currently playing.