godot/doc/classes/EditorScript.xml

<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorScript" inherits="RefCounted" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Base script that can be used to add extension functions to the editor.
	</brief_description>
	<description>
		Scripts extending this class and implementing its [method _run] method can be executed from the Script Editor's [b]File &gt; Run[/b] menu option (or by pressing [kbd]Ctrl + Shift + X[/kbd]) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using [EditorPlugin]s instead.
		[b]Note:[/b] Extending scripts need to have [code]tool[/code] mode enabled.
		[b]Example:[/b] Running the following script prints "Hello from the Godot Editor!":
		[codeblocks]
		[gdscript]
		@tool
		extends EditorScript

		func _run():
		    print("Hello from the Godot Editor!")
		[/gdscript]
		[csharp]
		using Godot;

		[Tool]
		public partial class HelloEditor : EditorScript
		{
		    public override void _Run()
		    {
		        GD.Print("Hello from the Godot Editor!");
		    }
		}
		[/csharp]
		[/codeblocks]
		[b]Note:[/b] The script is run in the Editor context, which means the output is visible in the console window started with the Editor (stdout) instead of the usual Godot [b]Output[/b] dock.
		[b]Note:[/b] EditorScript is [RefCounted], meaning it is destroyed when nothing references it. This can cause errors during asynchronous operations if there are no references to the script.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="_run" qualifiers="virtual">
			<return type="void" />
			<description>
				This method is executed by the Editor when [b]File &gt; Run[/b] is used.
			</description>
		</method>
		<method name="add_root_node">
			<return type="void" />
			<param index="0" name="node" type="Node" />
			<description>
				Makes [param node] root of the currently opened scene. Only works if the scene is empty. If the [param node] is a scene instance, an inheriting scene will be created.
			</description>
		</method>
		<method name="get_editor_interface" qualifiers="const" deprecated="[EditorInterface] is a global singleton and can be accessed directly by its name.">
			<return type="EditorInterface" />
			<description>
				Returns the [EditorInterface] singleton instance.
			</description>
		</method>
		<method name="get_scene" qualifiers="const">
			<return type="Node" />
			<description>
				Returns the edited (current) scene's root [Node]. Equivalent of [method EditorInterface.get_edited_scene_root].
			</description>
		</method>
	</methods>
</class>