Class reference
EditorInterface
Inherits Object
Redot editor's interface.
Description
EditorInterface gives you control over Redot 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()
// In C# you can access it via the static Singleton property.
EditorSettings settings = EditorInterface.Singleton.GetEditorSettings();
Properties
bool distraction_free_mode
bool distraction_free_modeIf true, enables distraction-free mode which hides side docks to increase the space available for the main view.
bool movie_maker_enabled
bool movie_maker_enabledIf true, the Movie Maker mode is enabled in the editor. See MovieWriter for more information.
Methods
int close_scene()
int close_scene()Closes the currently active scene, discarding any pending changes in the process. Returns OK on success or ERR_DOES_NOT_EXIST if there is no scene to close.
void edit_node(Node 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)
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, int line = -1, int column = 0, bool grab_focus = true)
Script script, int line = -1, int column = 0, bool grab_focus = 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
Control get_base_control() constReturns the main container of Redot 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
EditorCommandPalette get_command_palette() constReturns 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
String get_current_directory() constReturns 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
String get_current_feature_profile() constReturns 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
String get_current_path() constReturns the current path being viewed in the FileSystemDock.
Node get_edited_scene_root() const
Node get_edited_scene_root() constReturns the edited (current) scene's root Node.
VBoxContainer get_editor_main_screen() const
VBoxContainer get_editor_main_screen() constReturns 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
EditorPaths get_editor_paths() constReturns the EditorPaths singleton.
float get_editor_scale() const
float get_editor_scale() constReturns 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 EditorSettings.interface/editor/display_scale and EditorSettings.interface/editor/custom_display_scale settings. The editor must be restarted for changes to be properly applied.
EditorSettings get_editor_settings() const
EditorSettings get_editor_settings() constReturns the editor's EditorSettings instance.
Theme get_editor_theme() const
Theme get_editor_theme() constReturns the editor's Theme. Note: When creating custom editor UI, prefer accessing theme items directly from your GUI nodes using the get_theme_* methods.
EditorToaster get_editor_toaster() const
EditorToaster get_editor_toaster() constReturns the editor's EditorToaster.
EditorUndoRedoManager get_editor_undo_redo() const
EditorUndoRedoManager get_editor_undo_redo() constReturns the editor's EditorUndoRedoManager.
SubViewport get_editor_viewport_2d() const
SubViewport get_editor_viewport_2d() constReturns 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(int idx = 0) const
SubViewport get_editor_viewport_3d(int idx = 0) constReturns 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
FileSystemDock get_file_system_dock() constReturns 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
EditorInspector get_inspector() constReturns the editor's EditorInspector instance. Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.
Node[] get_open_scene_roots() const
Returns an array with references to the root nodes of the currently opened scenes.
PackedStringArray get_open_scenes() const
PackedStringArray get_open_scenes() constReturns an array with the file paths of the currently opened scenes.
String get_playing_scene() const
String get_playing_scene() constReturns 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
EditorFileSystem get_resource_filesystem() constReturns the editor's EditorFileSystem instance.
EditorResourcePreview get_resource_previewer() const
EditorResourcePreview get_resource_previewer() constReturns the editor's EditorResourcePreview instance.
ScriptEditor get_script_editor() const
ScriptEditor get_script_editor() constReturns 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
PackedStringArray get_selected_paths() constReturns an array containing the paths of the currently selected files (and directories) in the FileSystemDock.
EditorSelection get_selection() const
EditorSelection get_selection() constReturns the editor's EditorSelection instance.
void inspect_object(Object object, String for_property = "", bool inspector_only = false)
Object object, String for_property = "", bool inspector_only = 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
bool is_multi_window_enabled() constReturns true if multiple window support is enabled in the editor. Multiple window support is enabled if all of these statements are true: - EditorSettings.interface/multi_window/enable is true. - EditorSettings.interface/editor/single_window_mode is false. - Viewport.gui_embed_subwindows is false. This is forced to true 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
bool is_playing_scene() constReturns true if a scene is currently being played, false otherwise. Paused scenes are considered as being played.
bool is_plugin_enabled(String plugin) const
bool is_plugin_enabled(String plugin) constReturns true if the specified plugin is enabled. The plugin name is the same as its directory name.
Texture2D[] make_mesh_previews(Mesh[] meshes, int preview_size)
int preview_size)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(String scene_filepath, bool set_inherited = false)
String scene_filepath, bool set_inherited = false)Opens the scene at the given path. If set_inherited is true, creates a new inherited scene.
void play_current_scene()
Plays the currently active scene.
void play_custom_scene(String scene_filepath)
String scene_filepath)Plays the scene specified by its filepath.
void play_main_scene()
Plays the main scene.
void popup_create_dialog(Callable callback, StringName base_type = "", String current_type = "", String dialog_title = "", StringName[] type_blocklist = [])
Callable callback, StringName base_type = "", String current_type = "", String dialog_title = "", StringName[] type_blocklist = [])Pops up an editor dialog for creating an object. The callback must take a single argument of type StringName which will contain the type name of the selected object or be empty if no item is selected. The base_type specifies the base type of objects to display. For example, if you set this to "Resource", all types derived from Resource will display in the create dialog. The current_type will be passed in the search box of the create dialog, and the specified type can be immediately selected when the dialog pops up. If the current_type is not derived from base_type, there will be no result of the type in the dialog. The dialog_title allows you to define a custom title for the dialog. This is useful if you want to accurately hint the usage of the dialog. If the dialog_title is an empty string, the dialog will use "Create New 'Base Type'" as the default title. The type_blocklist contains a list of type names, and the types in the blocklist will be hidden from the create dialog. Note: Trying to list the base type in the type_blocklist will hide all types derived from the base type from the create dialog.
void popup_dialog(Window dialog, Rect2i rect = Rect2i(0, 0, 0, 0))
Window dialog, Rect2i rect = 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(Window dialog, Vector2i minsize = Vector2i(0, 0))
Window dialog, Vector2i minsize = 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(Window dialog, Vector2i minsize = Vector2i(0, 0), float fallback_ratio = 0.75)
Window dialog, Vector2i minsize = Vector2i(0, 0), float fallback_ratio = 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(Window dialog, float ratio = 0.8)
Window dialog, float ratio = 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_method_selector(Object object, Callable callback, String current_value = "")
Object object, Callable callback, String current_value = "")Pops up an editor dialog for selecting a method from object. The callback must take a single argument of type String which will contain the name of the selected method or be empty if the dialog is canceled. If current_value is provided, the method will be selected automatically in the method list, if it exists.
void popup_node_selector(Callable callback, StringName[] valid_types = [], Node current_value = null)
Callable callback, StringName[] valid_types = [], Node current_value = null)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. If current_value is provided, the Node will be automatically selected in the tree, if it exists. Example: Display the node selection dialog as soon as this node is added to the tree for the first time:
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, Callable callback, PackedInt32Array type_filter = PackedInt32Array(), String current_value = "")
Object object, Callable callback, PackedInt32Array type_filter = PackedInt32Array(), String current_value = "")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. If current_value is provided, the property will be selected automatically in the property list, if it exists.
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 popup_quick_open(Callable callback, StringName[] base_types = [])
Callable callback, StringName[] base_types = [])Pops up an editor dialog for quick selecting a resource file. The callback must take a single argument of type String which will contain the path of the selected resource or be empty if the dialog is canceled. If base_types is provided, the dialog will only show resources that match these types. Only types deriving from Resource are supported.
void reload_scene_from_path(String scene_filepath)
String scene_filepath)Reloads the scene at the given path.
void restart_editor(bool save = true)
bool save = 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.
int save_scene()
int save_scene()Saves the currently active scene. Returns either OK or ERR_CANT_CREATE.
void save_scene_as(String path, bool with_preview = true)
String path, bool with_preview = true)Saves the currently active scene as a file at path.
void select_file(String file)
String file)Selects the file, with the path provided by file, in the FileSystem dock.
void set_current_feature_profile(String profile_name)
String profile_name)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(String name)
String name)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, [code skip-lint]Script[/code], Game, or AssetLib for default tabs).
void set_plugin_enabled(String plugin, bool enabled)
String plugin, bool enabled)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.