summaryrefslogtreecommitdiff
path: root/doc/classes/EditorScript.xml
blob: 33d2f40d0b7ccb4a50c03bd4c2f8036488e75a46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorScript" inherits="RefCounted" version="4.0" 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 script:[/b]
		[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>
				Adds [param node] as a child of the root node in the editor context.
				[b]Warning:[/b] The implementation of this method is currently disabled.
			</description>
		</method>
		<method name="get_editor_interface">
			<return type="EditorInterface" />
			<description>
				Returns the [EditorInterface] singleton instance.
			</description>
		</method>
		<method name="get_scene">
			<return type="Node" />
			<description>
				Returns the Editor's currently active scene.
			</description>
		</method>
	</methods>
</class>