<para><seecref="T:Godot.EditorExportPlugin"/>s are automatically invoked whenever the user exports the project. Their most common use is to determine what files are being included in the exported project. For each plugin, <seecref="M:Godot.EditorExportPlugin._ExportBegin(System.String[],System.Boolean,System.String,System.Int32)"/> is called at the beginning of the export process and then <seecref="M:Godot.EditorExportPlugin._ExportFile(System.String,System.String,System.String[])"/> is called for each exported file.</para>
<para>To use <seecref="T:Godot.EditorExportPlugin"/>, register it using the <seecref="M:Godot.EditorPlugin.AddExportPlugin(Godot.EditorExportPlugin)"/> method first.</para>
<para>Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export. <c>features</c> is the list of features for the export, <c>is_debug</c> is <c>true</c> for debug builds, <c>path</c> is the target path for the exported project. <c>flags</c> is only used when running a runnable profile, e.g. when using native run on Android.</para>
<para>Virtual method to be overridden by the user. Called for each exported file, providing arguments that can be used to identify the file. <c>path</c> is the path of the file, <c>type</c> is the <seecref="T:Godot.Resource"/> represented by the file (e.g. <seecref="T:Godot.PackedScene"/>) and <c>features</c> is the list of features for the export.</para>
<para>Calling <seecref="M:Godot.EditorExportPlugin.Skip"/> inside this callback will make the file not included in the export.</para>
<para>Adds a custom file to be exported. <c>path</c> is the virtual path that can be used to load the file, <c>file</c> is the binary data of the file. If <c>remap</c> is <c>true</c>, file will not be exported, but instead remapped to the given <c>path</c>.</para>
<para>Adds file or directory matching <c>path</c> to <c>PlugIns</c> directory of macOS app bundle.</para>
<para>Note: This is useful only for macOS exports.</para>
</summary>
</member>
<membername="M:Godot.EditorExportPlugin.Skip">
<summary>
<para>To be called inside <seecref="M:Godot.EditorExportPlugin._ExportFile(System.String,System.String,System.String[])"/>. Skips the current file, so it's not included in the export.</para>
</summary>
</member>
<membername="T:Godot.EditorFeatureProfile">
<summary>
<para>An editor feature profile can be used to disable specific features of the Godot editor. When disabled, the features won't appear in the editor, which makes the editor less cluttered. This is useful in education settings to reduce confusion or when working in a team. For example, artists and level designers could use a feature profile that disables the script editor to avoid accidentally making changes to files they aren't supposed to edit.</para>
<para>To manage editor feature profiles visually, use Editor > Manage Feature Profiles... at the top of the editor window.</para>
<para>If <c>disable</c> is <c>true</c>, disables the class specified by <c>class_name</c>. When disabled, the class won't appear in the Create New Node dialog.</para>
<para>Returns <c>true</c> if the class specified by <c>class_name</c> is disabled. When disabled, the class won't appear in the Create New Node dialog.</para>
<para>If <c>disable</c> is <c>true</c>, disables editing for the class specified by <c>class_name</c>. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.</para>
<para>Returns <c>true</c> if editing for the class specified by <c>class_name</c> is disabled. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.</para>
<para>If <c>disable</c> is <c>true</c>, disables editing for <c>property</c> in the class specified by <c>class_name</c>. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by <c>class_name</c>.</para>
<para>Returns <c>true</c> if <c>property</c> is disabled in the class specified by <c>class_name</c>. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by <c>class_name</c>.</para>
<para>If <c>disable</c> is <c>true</c>, disables the editor feature specified in <c>feature</c>. When a feature is disabled, it will disappear from the editor entirely.</para>
<para>Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's Import button or the <seecref="M:Godot.EditorFeatureProfile.LoadFromFile(System.String)"/> method.</para>
<para>Loads an editor feature profile from a file. The file must follow the JSON format obtained by using the feature profile manager's Export button or the <seecref="M:Godot.EditorFeatureProfile.SaveToFile(System.String)"/> method.</para>
<para>Adds a comma-delimited file extension filter option to the <seecref="T:Godot.EditorFileDialog"/> with an optional semi-colon-delimited label.</para>
<para>For example, <c>"*.tscn, *.scn; Scenes"</c> results in filter text "Scenes (*.tscn, *.scn)".</para>
</summary>
</member>
<membername="M:Godot.EditorFileDialog.GetVbox">
<summary>
<para>Returns the <c>VBoxContainer</c> used to display the file system.</para>
<para>Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their <seecref="P:Godot.CanvasItem.Visible"/> property.</para>
<para>Notify the <seecref="T:Godot.EditorFileDialog"/> that its view of the data is no longer accurate. Updates the view contents on next view update.</para>
</summary>
</member>
<membername="T:Godot.EditorFileSystem">
<summary>
<para>This object holds information of all resources in the filesystem, their types, etc.</para>
<para>Note: This class shouldn't be instantiated directly. Instead, access the singleton using <seecref="M:Godot.EditorInterface.GetResourceFilesystem"/>.</para>
<para>Returns the resource type of the file, given the full path. This returns a string such as <c>"Resource"</c> or <c>"GDScript"</c>, not a file extension such as <c>".gd"</c>.</para>
<para>Returns the resource type of the file at index <c>idx</c>. This returns a string such as <c>"Resource"</c> or <c>"GDScript"</c>, not a file extension such as <c>".gd"</c>.</para>
<para>Returns the name of the script class defined in the file at index <c>idx</c>. If the file doesn't define a script class using the <c>class_name</c> syntax, this will return an empty string.</para>
<para>Returns the base class of the script class defined in the file at index <c>idx</c>. If the file doesn't define a script class using the <c>class_name</c> syntax, this will return an empty string.</para>
<para>Returns the index of the directory with name <c>name</c> or <c>-1</c> if not found.</para>
</summary>
</member>
<membername="T:Godot.EditorImportPlugin">
<summary>
<para><seecref="T:Godot.EditorImportPlugin"/>s provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers.</para>
<para>EditorImportPlugins work by associating with specific file extensions and a resource type. See <seecref="M:Godot.EditorImportPlugin.GetRecognizedExtensions"/> and <seecref="M:Godot.EditorImportPlugin.GetResourceType"/>. They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the <c>.import</c> directory (see ).</para>
<para>Below is an example EditorImportPlugin that imports a <seecref="T:Godot.Mesh"/> from a file with the extension ".special" or ".spec":</para>
# Fill the Mesh with data read in "file", left as an exercise to the reader
var filename = save_path + "." + get_save_extension()
return ResourceSaver.save(filename, mesh)
</code></para>
<para>To use <seecref="T:Godot.EditorImportPlugin"/>, register it using the <seecref="M:Godot.EditorPlugin.AddImportPlugin(Godot.EditorImportPlugin)"/> method first.</para>
<para>Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: <c>name</c>, <c>default_value</c>, <c>property_hint</c> (optional), <c>hint_string</c> (optional), <c>usage</c> (optional).</para>
<para>Gets the order of this importer to be run when importing resources. Importers with lower import orders will be called first, and higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported. The default import order is <c>0</c> unless overridden by a specific importer. See <seecref="T:Godot.ResourceImporter.ImportOrder"/> for some predefined values.</para>
<para>This method can be overridden to hide specific import options if conditions are met. This is mainly useful for hiding options that depend on others if one of them is disabled. For example:</para>
<para><code>
func get_option_visibility(option, options):
# Only show the lossy quality setting if the compression mode is set to "Lossy".
if option == "compress/lossy_quality" and options.has("compress/mode"):
<para>Gets the number of initial presets defined by the plugin. Use <seecref="M:Godot.EditorImportPlugin.GetImportOptions(System.Int32)"/> to get the default options for the preset and <seecref="M:Godot.EditorImportPlugin.GetPresetName(System.Int32)"/> to get the name of the preset.</para>
<para>Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is <c>1.0</c>.</para>
<para>Gets the name to display in the import window. You should choose this name as a continuation to "Import as", e.g. "Import as Special Mesh".</para>
<para>Imports <c>source_file</c> into <c>save_path</c> with the import <c>options</c> specified. The <c>platform_variants</c> and <c>gen_files</c> arrays will be modified by this function.</para>
<para>This method must be overridden to do the actual importing work. See this class' description for an example of overriding this method.</para>
</summary>
</member>
<membername="T:Godot.EditorInspector">
<summary>
<para>This is the control that implements property editing in the editor's Settings dialogs, the Inspector dock, etc. To get the <seecref="T:Godot.EditorInspector"/> used in the editor's Inspector dock, use <seecref="M:Godot.EditorInterface.GetInspector"/>.</para>
<para><seecref="T:Godot.EditorInspector"/> will show properties in the same order as the array returned by <seecref="M:Godot.Object.GetPropertyList"/>.</para>
<para>If a property's name is path-like (i.e. if it contains forward slashes), <seecref="T:Godot.EditorInspector"/> will create nested sections for "directories" along the path. For example, if a property is named <c>highlighting/gdscript/node_path_color</c>, it will be shown as "Node Path Color" inside the "GDScript" section nested inside the "Highlighting" section.</para>
<para>If a property has <c>@GlobalScope.PROPERTY_USAGE_GROUP</c> usage, it will group subsequent properties whose name starts with the property's hint string. The group ends when a property does not start with that hint string or when a new group starts. An empty group name effectively ends the current group. <seecref="T:Godot.EditorInspector"/> will create a top-level section for each group. For example, if a property with group usage is named <c>Collide With</c> and its hint string is <c>collide_with_</c>, a subsequent <c>collide_with_area</c> property will be shown as "Area" inside the "Collide With" section.</para>
<para>Note: Unlike sections created from path-like property names, <seecref="T:Godot.EditorInspector"/> won't capitalize the name for sections created from groups. So properties with group usage usually use capitalized names instead of snake_cased names.</para>
</summary>
</member>
<membername="M:Godot.EditorInspector.Refresh">
<summary>
<para>Refreshes the inspector.</para>
<para>Note: To save on CPU resources, calling this method will do nothing if the time specified in <c>docks/property_editor/auto_refresh_interval</c> editor setting hasn't passed yet since this method was last called. (By default, this interval is set to 0.3 seconds.)</para>
</summary>
</member>
<membername="T:Godot.EditorInspectorPlugin">
<summary>
<para><seecref="T:Godot.EditorInspectorPlugin"/> allows adding custom property editors to <seecref="T:Godot.EditorInspector"/>.</para>
<para>When an object is edited, the <seecref="M:Godot.EditorInspectorPlugin.CanHandle(Godot.Object)"/> function is called and must return <c>true</c> if the object type is supported.</para>
<para>If supported, the function <seecref="M:Godot.EditorInspectorPlugin.ParseBegin(Godot.Object)"/> will be called, allowing to place custom controls at the beginning of the class.</para>
<para>Subsequently, the <seecref="M:Godot.EditorInspectorPlugin.ParseCategory(Godot.Object,System.String)"/> and <seecref="M:Godot.EditorInspectorPlugin.ParseProperty(Godot.Object,System.Int32,System.String,System.Int32,System.String,System.Int32)"/> are called for every category and property. They offer the ability to add custom controls to the inspector too.</para>
<para>Finally, <seecref="M:Godot.EditorInspectorPlugin.ParseEnd"/> will be called.</para>
<para>On each of these calls, the "add" functions can be called.</para>
<para>To use <seecref="T:Godot.EditorInspectorPlugin"/>, register it using the <seecref="M:Godot.EditorPlugin.AddInspectorPlugin(Godot.EditorInspectorPlugin)"/> method first.</para>
<para>Called to allow adding property specific editors to the inspector. Usually these inherit <seecref="T:Godot.EditorProperty"/>. Returning <c>true</c> removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one.</para>
<para>Adds an editor that allows modifying multiple properties. The <c>editor</c> control must extend <seecref="T:Godot.EditorProperty"/>.</para>
</summary>
</member>
<membername="T:Godot.EditorInterface">
<summary>
<para>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 <seecref="T:Godot.EditorSettings"/>, <seecref="T:Godot.EditorFileSystem"/>, <seecref="T:Godot.EditorResourcePreview"/>, <seecref="T:Godot.ScriptEditor"/>, the editor viewport, and information about scenes.</para>
<para>Note: This class shouldn't be instantiated directly. Instead, access the singleton using <seecref="M:Godot.EditorPlugin.GetEditorInterface"/>.</para>
<para>Shows the given property on the given <c>object</c> in the editor's Inspector dock. If <c>inspector_only</c> is <c>true</c>, plugins will not attempt to edit <c>object</c>.</para>
<para>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.</para>
<para>Warning: Removing and freeing this node will render the editor useless and may cause a crash.</para>
<para>Returns the actual scale of the editor UI (<c>1.0</c> being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins.</para>
<para>Note: This value is set via the <c>interface/editor/display_scale</c> and <c>interface/editor/custom_display_scale</c> editor settings. Editor must be restarted for changes to be properly applied.</para>
<para>Edits the given <seecref="T:Godot.Resource"/>. If the resource is a <seecref="T:Godot.Script"/> you can also edit it with <seecref="M:Godot.EditorInterface.EditScript(Godot.Script,System.Int32,System.Int32,System.Boolean)"/> to specify the line and column position.</para>
<para>Edits the given <seecref="T:Godot.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.</para>
<para>Returns the path of the directory currently selected in the <seecref="T:Godot.FileSystemDock"/>. If a file is selected, its base directory will be returned using <c>String.get_base_dir</c> instead.</para>
<para>Sets the editor's current main screen to the one specified in <c>name</c>. <c>name</c> must match the text of the tab in question exactly (<c>2D</c>, <c>3D</c>, <c>Script</c>, <c>AssetLib</c>).</para>
</summary>
</member>
<membername="T:Godot.EditorPlugin">
<summary>
<para>Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also <seecref="T:Godot.EditorScript"/> to add functions to the editor.</para>
</summary>
</member>
<membername="F:Godot.EditorPlugin.DockSlot.Max">
<summary>
<para>Represents the size of the <seecref="T:Godot.EditorPlugin.DockSlot"/> enum.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.ApplyChanges">
<summary>
<para>This method is called when the editor is about to save the project, switch to another tab, etc. It asks the plugin to apply any pending state changes to ensure consistency.</para>
<para>This is used, for example, in shader editors to let the plugin know that it must apply the shader code being written by the user to the object.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.Build">
<summary>
<para>This method is called when the editor is about to run the project. The plugin can then perform required operations before the project runs.</para>
<para>This method must return a boolean. If this method returns <c>false</c>, the project will not run. The run is aborted immediately, so this also prevents all other plugins' <seecref="M:Godot.EditorPlugin.Build"/> methods from running.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.Clear">
<summary>
<para>Clear all the state and reset the object being edited to zero. This ensures your plugin does not keep editing a currently existing node, or a node from the wrong scene.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.DisablePlugin">
<summary>
<para>Called by the engine when the user disables the <seecref="T:Godot.EditorPlugin"/> in the Plugin tab of the project settings window.</para>
<para>Called by the engine when the 2D editor's viewport is updated. Use the <c>overlay</c><seecref="T:Godot.Control"/> for drawing. You can update the viewport manually by calling <seecref="M:Godot.EditorPlugin.UpdateOverlays"/>.</para>
<para>This method is the same as <seecref="M:Godot.EditorPlugin.ForwardCanvasDrawOverViewport(Godot.Control)"/>, except it draws on top of everything. Useful when you need an extra layer that shows over anything else.</para>
<para>You need to enable calling of this method by using <seecref="M:Godot.EditorPlugin.SetForceDrawOverForwardingEnabled"/>.</para>
<para>Called when there is a root node in the current edited scene, <seecref="M:Godot.EditorPlugin.Handles(Godot.Object)"/> is implemented and an <seecref="T:Godot.InputEvent"/> happens in the 2D viewport. Intercepts the <seecref="T:Godot.InputEvent"/>, if <c>return true</c><seecref="T:Godot.EditorPlugin"/> consumes the <c>event</c>, otherwise forwards <c>event</c> to other Editor classes. Example:</para>
<para><code>
# Prevents the InputEvent to reach other Editor classes
func forward_canvas_gui_input(event):
var forward = true
return forward
</code></para>
<para>Must <c>return false</c> in order to forward the <seecref="T:Godot.InputEvent"/> to other Editor classes. Example:</para>
<para><code>
# Consumes InputEventMouseMotion and forwards other InputEvent types
<para>Called by the engine when the 3D editor's viewport is updated. Use the <c>overlay</c><seecref="T:Godot.Control"/> for drawing. You can update the viewport manually by calling <seecref="M:Godot.EditorPlugin.UpdateOverlays"/>.</para>
<para>This method is the same as <seecref="M:Godot.EditorPlugin.ForwardSpatialDrawOverViewport(Godot.Control)"/>, except it draws on top of everything. Useful when you need an extra layer that shows over anything else.</para>
<para>You need to enable calling of this method by using <seecref="M:Godot.EditorPlugin.SetForceDrawOverForwardingEnabled"/>.</para>
<para>Called when there is a root node in the current edited scene, <seecref="M:Godot.EditorPlugin.Handles(Godot.Object)"/> is implemented and an <seecref="T:Godot.InputEvent"/> happens in the 3D viewport. Intercepts the <seecref="T:Godot.InputEvent"/>, if <c>return true</c><seecref="T:Godot.EditorPlugin"/> consumes the <c>event</c>, otherwise forwards <c>event</c> to other Editor classes. Example:</para>
<para><code>
# Prevents the InputEvent to reach other Editor classes
func forward_spatial_gui_input(camera, event):
var forward = true
return forward
</code></para>
<para>Must <c>return false</c> in order to forward the <seecref="T:Godot.InputEvent"/> to other Editor classes. Example:</para>
<para><code>
# Consumes InputEventMouseMotion and forwards other InputEvent types
<para>This is for editors that edit script-based objects. You can return a list of breakpoints in the format (<c>script:line</c>), for example: <c>res://path_to_script.gd:25</c>.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.GetPluginIcon">
<summary>
<para>Override this method in your plugin to return a <seecref="T:Godot.Texture"/> in order to give it an icon.</para>
<para>For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", and "AssetLib" buttons.</para>
<para>Ideally, the plugin icon should be white with a transparent background and 16x16 pixels in size.</para>
<para>Override this method in your plugin to provide the name of the plugin when displayed in the Godot editor.</para>
<para>For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", and "AssetLib" buttons.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.GetState">
<summary>
<para>Override this method to provide a state data you want to be saved, like view position, grid settings, folding, etc. This is used when saving the scene (so state is kept when opening it again) and for switching tabs (so state can be restored when the tab returns). This data is automatically saved for each scene in an <c>editstate</c> file in the editor metadata folder. If you want to store global (scene-independent) editor data for your plugin, you can use <seecref="M:Godot.EditorPlugin.GetWindowLayout(Godot.ConfigFile)"/> instead.</para>
<para>Use <seecref="M:Godot.EditorPlugin.SetState(Godot.Collections.Dictionary)"/> to restore your saved state.</para>
<para>Note: This method should not be used to save important settings that should persist with the project.</para>
<para>Note: You must implement <seecref="M:Godot.EditorPlugin.GetPluginName"/> for the state to be stored and restored correctly.</para>
<para><code>
func get_state():
var state = {"zoom": zoom, "preferred_color": my_color}
<para>Override this method to provide the GUI layout of the plugin or any other data you want to be stored. This is used to save the project's editor layout when <seecref="M:Godot.EditorPlugin.QueueSaveLayout"/> is called or the editor layout was changed (for example changing the position of a dock). The data is stored in the <c>editor_layout.cfg</c> file in the editor metadata directory.</para>
<para>Use <seecref="M:Godot.EditorPlugin.SetWindowLayout(Godot.ConfigFile)"/> to restore your saved layout.</para>
<para>Implement this function if your plugin edits a specific type of object (Resource or Node). If you return <c>true</c>, then you will get the functions <seecref="M:Godot.EditorPlugin.Edit(Godot.Object)"/> and <seecref="M:Godot.EditorPlugin.MakeVisible(System.Boolean)"/> called when the editor requests them. If you have declared the methods <seecref="M:Godot.EditorPlugin.ForwardCanvasGuiInput(Godot.InputEvent)"/> and <seecref="M:Godot.EditorPlugin.ForwardSpatialGuiInput(Godot.Camera,Godot.InputEvent)"/> these will be called too.</para>
</summary>
</member>
<membername="M:Godot.EditorPlugin.HasMainScreen">
<summary>
<para>Returns <c>true</c> if this is a main screen editor plugin (it goes in the workspace selector together with 2D, 3D, Script and AssetLib).</para>
<para>This method is called after the editor saves the project or when it's closed. It asks the plugin to save edited external scenes/resources.</para>
<para>Restore the state saved by <seecref="M:Godot.EditorPlugin.GetState"/>. This method is called when the current scene tab is changed in the editor.</para>
<para>Note: Your plugin must implement <seecref="M:Godot.EditorPlugin.GetPluginName"/>, otherwise it will not be recognized and this method will not be called.</para>
<para>Restore the plugin GUI layout and data saved by <seecref="M:Godot.EditorPlugin.GetWindowLayout(Godot.ConfigFile)"/>. This method is called for every plugin on editor startup. Use the provided <c>configuration</c> file to read your saved data.</para>
<para>Adds a custom control to a container (see <seecref="T:Godot.EditorPlugin.CustomControlContainer"/>). There are many locations where custom controls can be added in the editor UI.</para>
<para>Please remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it).</para>
<para>When your plugin is deactivated, make sure to remove your custom control with <seecref="M:Godot.EditorPlugin.RemoveControlFromContainer(Godot.EditorPlugin.CustomControlContainer,Godot.Control)"/> and free it with <seecref="M:Godot.Node.QueueFree"/>.</para>
<para>Adds a control to the bottom panel (together with Output, Debug, Animation, etc). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with <seecref="M:Godot.EditorPlugin.RemoveControlFromBottomPanel(Godot.Control)"/> and free it with <seecref="M:Godot.Node.QueueFree"/>.</para>
<para>Adds the control to a specific dock slot (see <seecref="T:Godot.EditorPlugin.DockSlot"/> for options).</para>
<para>If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions.</para>
<para>When your plugin is deactivated, make sure to remove your custom control with <seecref="M:Godot.EditorPlugin.RemoveControlFromDocks(Godot.Control)"/> and free it with <seecref="M:Godot.Node.QueueFree"/>.</para>
<para>Adds a custom menu item to Project > Tools as <c>name</c> that calls <c>callback</c> on an instance of <c>handler</c> with a parameter <c>ud</c> when user activates it.</para>
<para>Adds a custom submenu under Project > Tools ><c>name</c>. <c>submenu</c> should be an object of class <seecref="T:Godot.PopupMenu"/>. This submenu should be cleaned up using <c>remove_tool_menu_item(name)</c>.</para>
<para>Adds a custom type, which will appear in the list of nodes or resources. An icon can be optionally passed.</para>
<para>When given node or resource is selected, the base type will be instanced (ie, "Spatial", "Control", "Resource"), then the script will be loaded and set to this object.</para>
<para>You can use the virtual method <seecref="M:Godot.EditorPlugin.Handles(Godot.Object)"/> to check if your custom object is being edited by checking the script or using the <c>is</c> keyword.</para>
<para>During run-time, this will be a simple object with a script so this function does not need to be called then.</para>
<para>Updates the overlays of the 2D and 3D editor viewport. Causes methods <seecref="M:Godot.EditorPlugin.ForwardCanvasDrawOverViewport(Godot.Control)"/>, <seecref="M:Godot.EditorPlugin.ForwardCanvasForceDrawOverViewport(Godot.Control)"/>, <seecref="M:Godot.EditorPlugin.ForwardSpatialDrawOverViewport(Godot.Control)"/> and <seecref="M:Godot.EditorPlugin.ForwardSpatialForceDrawOverViewport(Godot.Control)"/> to be called.</para>
<para>Registers a new <seecref="T:Godot.EditorImportPlugin"/>. Import plugins are used to import custom and unsupported assets as a custom <seecref="T:Godot.Resource"/> type.</para>
<para>Note: If you want to import custom 3D asset formats use <seecref="M:Godot.EditorPlugin.AddSceneImportPlugin(Godot.EditorSceneImporter)"/> instead.</para>
<para>See <seecref="M:Godot.EditorPlugin.AddInspectorPlugin(Godot.EditorInspectorPlugin)"/> for an example of how to register a plugin.</para>
<para>Registers a new <seecref="T:Godot.EditorSpatialGizmoPlugin"/>. Gizmo plugins are used to add custom gizmos to the 3D preview viewport for a <seecref="T:Godot.Spatial"/>.</para>
<para>See <seecref="M:Godot.EditorPlugin.AddInspectorPlugin(Godot.EditorInspectorPlugin)"/> for an example of how to register a plugin.</para>
<para>Registers a new <seecref="T:Godot.EditorInspectorPlugin"/>. Inspector plugins are used to extend <seecref="T:Godot.EditorInspector"/> and provide custom configuration tools for your object's properties.</para>
<para>Note: Always use <seecref="M:Godot.EditorPlugin.RemoveInspectorPlugin(Godot.EditorInspectorPlugin)"/> to remove the registered <seecref="T:Godot.EditorInspectorPlugin"/> when your <seecref="T:Godot.EditorPlugin"/> is disabled to prevent leaks and an unexpected behavior.</para>
<para>Use this method if you always want to receive inputs from 3D view screen inside <seecref="M:Godot.EditorPlugin.ForwardSpatialGuiInput(Godot.Camera,Godot.InputEvent)"/>. It might be especially usable if your plugin will want to use raycast in the scene.</para>
<para>Enables calling of <seecref="M:Godot.EditorPlugin.ForwardCanvasForceDrawOverViewport(Godot.Control)"/> for the 2D editor and <seecref="M:Godot.EditorPlugin.ForwardSpatialForceDrawOverViewport(Godot.Control)"/> for the 3D editor when their viewports are updated. You need to call this method only once and it will work permanently for this plugin.</para>
<para>Gets the Editor's dialog used for making scripts.</para>
<para>Note: Users can configure it before use.</para>
<para>Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash.</para>
</summary>
</member>
<membername="T:Godot.EditorProperty">
<summary>
<para>This control allows property editing for one or multiple properties into <seecref="T:Godot.EditorInspector"/>. It is added via <seecref="T:Godot.EditorInspectorPlugin"/>.</para>
</summary>
</member>
<membername="P:Godot.EditorProperty.Label">
<summary>
<para>Set this property to change the label (if you want to show one).</para>
</summary>
</member>
<membername="P:Godot.EditorProperty.ReadOnly">
<summary>
<para>Used by the inspector, set to <c>true</c> when the property is read-only.</para>
</summary>
</member>
<membername="P:Godot.EditorProperty.Checkable">
<summary>
<para>Used by the inspector, set to <c>true</c> when the property is checkable.</para>
</summary>
</member>
<membername="P:Godot.EditorProperty.Checked">
<summary>
<para>Used by the inspector, set to <c>true</c> when the property is checked.</para>
</summary>
</member>
<membername="P:Godot.EditorProperty.DrawRed">
<summary>
<para>Used by the inspector, set to <c>true</c> when the property is drawn with the editor theme's warning color. This is used for editable children's properties.</para>
</summary>
</member>
<membername="P:Godot.EditorProperty.Keying">
<summary>
<para>Used by the inspector, set to <c>true</c> when the property can add keys for animation.</para>
<para>Gets the edited property. If your editor is for a single property (added via <seecref="M:Godot.EditorInspectorPlugin.ParseProperty(Godot.Object,System.Int32,System.String,System.Int32,System.String,System.Int32)"/>), then this will return the property.</para>
<para>If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed.</para>
<para>Puts the <c>editor</c> control below the property label. The control must be previously added using <seecref="M:Godot.Node.AddChild(Godot.Node,System.Boolean)"/>.</para>
<para>If one or several properties have changed, this must be called. <c>field</c> is used in case your editor can modify fields separately (as an example, Vector3.x). The <c>changing</c> argument avoids the editor requesting this property to be refreshed (leave as <c>false</c> if unsure).</para>
</summary>
</member>
<membername="T:Godot.EditorResourcePicker">
<summary>
<para>This <seecref="T:Godot.Control"/> node is used in the editor's Inspector dock to allow editing of <seecref="T:Godot.Resource"/> type properties. It provides options for creating, loading, saving and converting resources. Can be used with <seecref="T:Godot.EditorInspectorPlugin"/> to recreate the same behavior.</para>
<para>Note: This <seecref="T:Godot.Control"/> does not include any editor for the resource, as editing is controlled by the Inspector dock itself or sub-Inspectors.</para>
<para>If <c>true</c>, the main button with the resource preview works in the toggle mode. Use <seecref="M:Godot.EditorResourcePicker.SetTogglePressed(System.Boolean)"/> to manually set the state.</para>
<para>This virtual method can be implemented to handle context menu items not handled by default. See <seecref="M:Godot.EditorResourcePicker.SetCreateOptions(Godot.Object)"/>.</para>
<para>This virtual method is called when updating the context menu of <seecref="T:Godot.EditorResourcePicker"/>. Implement this method to override the "New ..." items with your own options. <c>menu_node</c> is a reference to the <seecref="T:Godot.PopupMenu"/> node.</para>
<para>Note: Implement <seecref="M:Godot.EditorResourcePicker.HandleMenuSelected(System.Int32)"/> to handle these custom items.</para>
<para>Returns a list of all allowed types and subtypes corresponding to the <seecref="P:Godot.EditorResourcePicker.BaseType"/>. If the <seecref="P:Godot.EditorResourcePicker.BaseType"/> is empty, an empty list is returned.</para>
<para>Sets the toggle mode state for the main button. Works only if <seecref="P:Godot.EditorResourcePicker.ToggleMode"/> is set to <c>true</c>.</para>
</summary>
</member>
<membername="T:Godot.EditorResourcePreview">
<summary>
<para>This object is used to generate previews for resources of files.</para>
<para>Note: This class shouldn't be instantiated directly. Instead, access the singleton using <seecref="M:Godot.EditorInterface.GetResourcePreviewer"/>.</para>
<para>Queue a resource file located at <c>path</c> for preview. Once the preview is ready, the <c>receiver</c>'s <c>receiver_func</c> will be called. The <c>receiver_func</c> must take the following four arguments: <seecref="T:System.String"/> path, <seecref="T:Godot.Texture"/> preview, <seecref="T:Godot.Texture"/> thumbnail_preview, <c>Variant</c> userdata. <c>userdata</c> can be anything, and will be returned when <c>receiver_func</c> is called.</para>
<para>Note: If it was not possible to create the preview the <c>receiver_func</c> will still be called, but the preview will be null.</para>
<para>Queue the <c>resource</c> being edited for preview. Once the preview is ready, the <c>receiver</c>'s <c>receiver_func</c> will be called. The <c>receiver_func</c> must take the following four arguments: <seecref="T:System.String"/> path, <seecref="T:Godot.Texture"/> preview, <seecref="T:Godot.Texture"/> thumbnail_preview, <c>Variant</c> userdata. <c>userdata</c> can be anything, and will be returned when <c>receiver_func</c> is called.</para>
<para>Note: If it was not possible to create the preview the <c>receiver_func</c> will still be called, but the preview will be null.</para>
<para>Custom code to generate previews. Please check <c>file_dialog/thumbnail_size</c> in <seecref="T:Godot.EditorSettings"/> to find out the right size to do previews at.</para>
<para>If this function returns <c>true</c>, the generator will call <seecref="M:Godot.EditorResourcePreviewGenerator.Generate(Godot.Resource,Godot.Vector2)"/> or <seecref="M:Godot.EditorResourcePreviewGenerator.GenerateFromPath(System.String,Godot.Vector2)"/> for small previews as well.</para>
<para>Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call <seecref="M:Godot.EditorResourcePreviewGenerator.Generate(Godot.Resource,Godot.Vector2)"/>.</para>
<para>Returning an empty texture is an OK way to fail and let another generator take care.</para>
<para>Care must be taken because this function is always called from a thread (not the main thread).</para>
<para>If this function returns <c>true</c>, the generator will automatically generate the small previews from the normal preview texture generated by the methods <seecref="M:Godot.EditorResourcePreviewGenerator.Generate(Godot.Resource,Godot.Vector2)"/> or <seecref="M:Godot.EditorResourcePreviewGenerator.GenerateFromPath(System.String,Godot.Vector2)"/>.</para>
<para>Returns <c>true</c> if your generator supports the resource of type <c>type</c>.</para>
</summary>
</member>
<membername="T:Godot.EditorSceneImporter">
<summary>
<para><seecref="T:Godot.EditorSceneImporter"/> allows to define an importer script for a third-party 3D format.</para>
<para>To use <seecref="T:Godot.EditorSceneImporter"/>, register it using the <seecref="M:Godot.EditorPlugin.AddSceneImportPlugin(Godot.EditorSceneImporter)"/> method first.</para>
</summary>
</member>
<membername="T:Godot.EditorSceneImporterFBX">
<summary>
<para>This is an FBX 3D asset importer with full support for most FBX features.</para>
<para>If exporting a FBX scene from Autodesk Maya, use these FBX export settings:</para>
<para><code>
- Smoothing Groups
- Smooth Mesh
- Triangluate (for meshes with blend shapes)
- Bake Animation
- Resample All
- Deformed Models
- Skins
- Blend Shapes
- Curve Filters
- Constant Key Reducer
- Auto Tangents Only
- *Do not check* Constraints (as it will break the file)
- Can check Embed Media (embeds textures into the exported FBX file)
- Note that when importing embedded media, the texture and mesh will be a single immutable file.
- You will have to re-export then re-import the FBX if the texture has changed.
- Units: Centimeters
- Up Axis: Y
- Binary format in FBX 2017
</code></para>
</summary>
</member>
<membername="T:Godot.EditorSceneImporterGLTF">
<summary>
<para>Note: This class is only compiled in editor builds. Run-time glTF loading and saving is not available in exported projects. References to <seecref="T:Godot.EditorSceneImporterGLTF"/> within a script will cause an error in an exported project.</para>
</summary>
</member>
<membername="T:Godot.EditorScenePostImport">
<summary>
<para>Imported scenes can be automatically modified right after import by setting their Custom Script Import property to a <c>tool</c> script that inherits from this class.</para>
<para>The <seecref="M:Godot.EditorScenePostImport.PostImport(Godot.Object)"/> callback receives the imported scene's root node and returns the modified version of the scene. Usage example:</para>
<para><code>
tool # Needed so it runs in editor
extends EditorScenePostImport
# This sample changes all node names
# Called right after the scene is imported and gets the root node
func post_import(scene):
# Change all node names to "modified_[oldnodename]"
iterate(scene)
return scene # Remember to return the imported scene
<para>Returns the source file path which got imported (e.g. <c>res://scene.dae</c>).</para>
</summary>
</member>
<membername="T:Godot.EditorScript">
<summary>
<para>Scripts extending this class and implementing its <seecref="M:Godot.EditorScript._Run"/> method can be executed from the Script Editor's File > Run menu option (or by pressing <c>Ctrl+Shift+X</c>) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using <seecref="T:Godot.EditorPlugin"/>s instead.</para>
<para>Note: Extending scripts need to have <c>tool</c> mode enabled.</para>
<para>Example script:</para>
<para><code>
tool
extends EditorScript
func _run():
print("Hello from the Godot Editor!")
</code></para>
<para>Note: 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 Output dock.</para>
<para>Note: EditorScript is reference counted, meaning it is destroyed when nothing references it. This can cause errors during asynchronous operations if there are no references to the script.</para>
<para>Returns the <seecref="T:Godot.EditorInterface"/> singleton instance.</para>
</summary>
</member>
<membername="T:Godot.EditorScriptPicker">
<summary>
<para>Similar to <seecref="T:Godot.EditorResourcePicker"/> this <seecref="T:Godot.Control"/> node is used in the editor's Inspector dock, but only to edit the <c>script</c> property of a <seecref="T:Godot.Node"/>. Default options for creating new resources of all possible subtypes are replaced with dedicated buttons that open the "Attach Node Script" dialog. Can be used with <seecref="T:Godot.EditorInspectorPlugin"/> to recreate the same behavior.</para>
<para>Note: You must set the <seecref="P:Godot.EditorScriptPicker.ScriptOwner"/> for the custom context menu items to work.</para>
<para>The owner <seecref="T:Godot.Node"/> of the script property that holds the edited resource.</para>
</summary>
</member>
<membername="T:Godot.EditorSelection">
<summary>
<para>This object manages the SceneTree selection in the editor.</para>
<para>Note: This class shouldn't be instantiated directly. Instead, access the singleton using <seecref="M:Godot.EditorInterface.GetSelection"/>.</para>
<para>Note: The newly selected node will not be automatically edited in the inspector. If you want to edit a node, use <seecref="M:Godot.EditorInterface.EditNode(Godot.Node)"/>.</para>
<para>Gets the list of selected nodes, optimized for transform operations (i.e. moving them, rotating, etc). This list avoids situations where a node is selected and also child/grandchild.</para>
</summary>
</member>
<membername="T:Godot.EditorSettings">
<summary>
<para>Object that holds the project-independent editor settings. These settings are generally visible in the Editor > Editor Settings menu.</para>
<para>Property names use slash delimiters to distinguish sections. Setting values can be of any <c>Variant</c> type. It's recommended to use <c>snake_case</c> for editor settings to be consistent with the Godot editor itself.</para>
<para>Accessing the settings can be done using the following methods, such as:</para>
<para><code>
# `settings.set("some/property", value)` also works as this class overrides `_set()` internally.
settings.set_setting("some/property",value)
# `settings.get("some/property", value)` also works as this class overrides `_get()` internally.
settings.get_setting("some/property")
var list_of_settings = settings.get_property_list()
</code></para>
<para>Note: This class shouldn't be instantiated directly. Instead, access the singleton using <seecref="M:Godot.EditorInterface.GetEditorSettings"/>.</para>
<para>Emitted after any editor setting has changed. It's used by various editor plugins to update their visuals on theme changes or logic on configuration changes.</para>
<para>Sets the <c>value</c> of the setting specified by <c>name</c>. This is equivalent to using <seecref="M:Godot.Object.Set(System.String,System.Object)"/> on the EditorSettings instance.</para>
<para>Returns the value of the setting specified by <c>name</c>. This is equivalent to using <seecref="M:Godot.Object.Get(System.String)"/> on the EditorSettings instance.</para>
<para>Sets the initial value of the setting specified by <c>name</c> to <c>value</c>. This is used to provide a value for the Revert button in the Editor Settings. If <c>update_current</c> is true, the current value of the setting will be set to <c>value</c> as well.</para>
<para>Returns <c>true</c> if the setting specified by <c>name</c> can have its value reverted to the default value, <c>false</c> otherwise. When this method returns <c>true</c>, a Revert button will display next to the setting in the Editor Settings.</para>
<para>Returns the default value of the setting specified by <c>name</c>. This is the value that would be applied when clicking the Revert button in the Editor Settings.</para>
<para>Adds a custom property info to a property. The dictionary must contain:</para>
<para>- <c>name</c>: <seecref="T:System.String"/> (the name of the property)</para>
<para>- <c>type</c>: <seecref="T:System.Int32"/> (see <seecref="T:Godot.Variant.Type"/>)</para>
<para>- optionally <c>hint</c>: <seecref="T:System.Int32"/> (see <seecref="T:Godot.PropertyHint"/>) and <c>hint_string</c>: <seecref="T:System.String"/></para>
<para>Returns the project-specific settings path. Projects all have a unique subdirectory inside the settings path where project-specific settings are saved.</para>
<para>Sets project-specific metadata with the <c>section</c>, <c>key</c> and <c>data</c> specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also <seecref="M:Godot.EditorSettings.GetProjectMetadata(System.String,System.String,System.Object)"/>.</para>
<para>Returns project-specific metadata for the <c>section</c> and <c>key</c> specified. If the metadata doesn't exist, <c>default</c> will be returned instead. See also <seecref="M:Godot.EditorSettings.SetProjectMetadata(System.String,System.String,System.Object)"/>.</para>
<para>Returns the list of recently visited folders in the file dialog for this project.</para>
</summary>
</member>
<membername="T:Godot.EditorSpatialGizmo">
<summary>
<para>Custom gizmo that is used for providing custom visualization and editing (handles) for 3D Spatial objects. See <seecref="T:Godot.EditorSpatialGizmoPlugin"/> for more information.</para>
<para>Commit a handle being edited (handles must have been previously added by <seecref="M:Godot.EditorSpatialGizmo.AddHandles(Godot.Vector3[],Godot.Material,System.Boolean,System.Boolean)"/>).</para>
<para>If the <c>cancel</c> parameter is <c>true</c>, an option to restore the edited value to the original is provided.</para>
<para>Gets the name of an edited handle (handles must have been previously added by <seecref="M:Godot.EditorSpatialGizmo.AddHandles(Godot.Vector3[],Godot.Material,System.Boolean,System.Boolean)"/>).</para>
<para>Handles can be named for reference to the user when editing.</para>
<para>Gets actual value of a handle. This value can be anything and used for eventually undoing the motion when calling <seecref="M:Godot.EditorSpatialGizmo.CommitHandle(System.Int32,System.Object,System.Boolean)"/>.</para>
<para>Returns <c>true</c> if the handle at index <c>index</c> is highlighted by being hovered with the mouse.</para>
</summary>
</member>
<membername="M:Godot.EditorSpatialGizmo.Redraw">
<summary>
<para>This function is called when the <seecref="T:Godot.Spatial"/> this gizmo refers to changes (the <seecref="M:Godot.Spatial.UpdateGizmo"/> is called).</para>
<para>This function is used when the user drags a gizmo handle (previously added with <seecref="M:Godot.EditorSpatialGizmo.AddHandles(Godot.Vector3[],Godot.Material,System.Boolean,System.Boolean)"/>) in screen coordinates.</para>
<para>The <seecref="T:Godot.Camera"/> is also provided so screen coordinates can be converted to raycasts.</para>
<para>Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this function during <seecref="M:Godot.EditorSpatialGizmo.Redraw"/>.</para>
</summary>
<paramname="modulate">If the parameter is null, then the default value is new Color(1, 1, 1, 1)</param>
<para>Adds a mesh to the gizmo with the specified <c>billboard</c> state, <c>skeleton</c> and <c>material</c>. If <c>billboard</c> is <c>true</c>, the mesh will rotate to always face the camera. Call this function during <seecref="M:Godot.EditorSpatialGizmo.Redraw"/>.</para>
<para>Adds the specified <c>segments</c> to the gizmo's collision shape for picking. Call this function during <seecref="M:Godot.EditorSpatialGizmo.Redraw"/>.</para>
<para>Adds collision triangles to the gizmo for picking. A <seecref="T:Godot.TriangleMesh"/> can be generated from a regular <seecref="T:Godot.Mesh"/> too. Call this function during <seecref="M:Godot.EditorSpatialGizmo.Redraw"/>.</para>
<para>Adds a list of handles (points) which can be used to deform the object being edited.</para>
<para>There are virtual functions which will be called upon editing of these handles. Call this function during <seecref="M:Godot.EditorSpatialGizmo.Redraw"/>.</para>
<para>Returns the <seecref="T:Godot.EditorSpatialGizmoPlugin"/> that owns this gizmo. It's useful to retrieve materials using <seecref="M:Godot.EditorSpatialGizmoPlugin.GetMaterial(System.String,Godot.EditorSpatialGizmo)"/>.</para>
</summary>
</member>
<membername="M:Godot.EditorSpatialGizmo.Clear">
<summary>
<para>Removes everything in the gizmo including meshes, collisions and handles.</para>
<para>Sets the gizmo's hidden state. If <c>true</c>, the gizmo will be hidden. If <c>false</c>, it will be shown.</para>
</summary>
</member>
<membername="T:Godot.EditorSpatialGizmoPlugin">
<summary>
<para><seecref="T:Godot.EditorSpatialGizmoPlugin"/> allows you to define a new type of Gizmo. There are two main ways to do so: extending <seecref="T:Godot.EditorSpatialGizmoPlugin"/> for the simpler gizmos, or creating a new <seecref="T:Godot.EditorSpatialGizmo"/> type. See the tutorial in the documentation for more info.</para>
<para>To use <seecref="T:Godot.EditorSpatialGizmoPlugin"/>, register it using the <seecref="M:Godot.EditorPlugin.AddSpatialGizmoPlugin(Godot.EditorSpatialGizmoPlugin)"/> method first.</para>
<para>Override this method to return a custom <seecref="T:Godot.EditorSpatialGizmo"/> for the spatial nodes of your choice, return <c>null</c> for the rest of nodes. See also <seecref="M:Godot.EditorSpatialGizmoPlugin.HasGizmo(Godot.Spatial)"/>.</para>
<para>Override this method to set the gizmo's priority. Higher values correspond to higher priority. If a gizmo with higher priority conflicts with another gizmo, only the gizmo with higher priority will be used.</para>
<para>All built-in editor gizmos return a priority of <c>-1</c>. If not overridden, this method will return <c>0</c>, which means custom gizmos will automatically override built-in gizmos.</para>
<para>Override this method to define which Spatial nodes have a gizmo from this plugin. Whenever a <seecref="T:Godot.Spatial"/> node is added to a scene this method is called, if it returns <c>true</c> the node gets a generic <seecref="T:Godot.EditorSpatialGizmo"/> assigned and is added to this plugin's list of active gizmos.</para>
<para>Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with <seecref="M:Godot.EditorSpatialGizmoPlugin.GetMaterial(System.String,Godot.EditorSpatialGizmo)"/> and used in <seecref="M:Godot.EditorSpatialGizmo.AddMesh(Godot.Mesh,System.Boolean,Godot.SkinReference,Godot.Material)"/> and <seecref="M:Godot.EditorSpatialGizmo.AddLines(Godot.Vector3[],Godot.Material,System.Boolean,System.Nullable{Godot.Color})"/>. Should not be overridden.</para>
<para>Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with <seecref="M:Godot.EditorSpatialGizmoPlugin.GetMaterial(System.String,Godot.EditorSpatialGizmo)"/> and used in <seecref="M:Godot.EditorSpatialGizmo.AddUnscaledBillboard(Godot.Material,System.Single,System.Nullable{Godot.Color})"/>. Should not be overridden.</para>
</summary>
<paramname="color">If the parameter is null, then the default value is new Color(1, 1, 1, 1)</param>
<para>Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with <seecref="M:Godot.EditorSpatialGizmoPlugin.GetMaterial(System.String,Godot.EditorSpatialGizmo)"/> and used in <seecref="M:Godot.EditorSpatialGizmo.AddHandles(Godot.Vector3[],Godot.Material,System.Boolean,System.Boolean)"/>. Should not be overridden.</para>
<para>You can optionally provide a texture to use instead of the default icon.</para>
<para>Adds a new material to the internal material list for the plugin. It can then be accessed with <seecref="M:Godot.EditorSpatialGizmoPlugin.GetMaterial(System.String,Godot.EditorSpatialGizmo)"/>. Should not be overridden.</para>
<para>Gets material from the internal list of materials. If an <seecref="T:Godot.EditorSpatialGizmo"/> is provided, it will try to get the corresponding variant (selected and/or editable).</para>
</summary>
</member>
<membername="T:Godot.EditorSpinSlider">
<summary>
<para>This <seecref="T:Godot.Control"/> node is used in the editor's Inspector dock to allow editing of numeric values. Can be used with <seecref="T:Godot.EditorInspectorPlugin"/> to recreate the same behavior.</para>
<para>If <c>true</c>, the slider is hidden.</para>
</summary>
</member>
<membername="T:Godot.EditorVCSInterface">
<summary>
<para>Defines the API that the editor uses to extract information from the underlying VCS. The implementation of this API is included in VCS plugins, which are scripts that inherit <seecref="T:Godot.EditorVCSInterface"/> and are attached (on demand) to the singleton instance of <seecref="T:Godot.EditorVCSInterface"/>. Instead of performing the task themselves, all the virtual functions listed below are calling the internally overridden functions in the VCS plugins to provide a plug-n-play experience. A custom VCS plugin is supposed to inherit from <seecref="T:Godot.EditorVCSInterface"/> and override these virtual functions.</para>
<para>Creates a new remote destination with name <c>remote_name</c> and points it to <c>remote_url</c>. This can be both an HTTPS remote or an SSH remote.</para>
<para>Gets an instance of an <seecref="T:Godot.Collections.Array"/> of <seecref="T:System.String"/>s containing available branch names in the VCS.</para>
<para>Returns an <seecref="T:Godot.Collections.Array"/> of <seecref="T:Godot.Collections.Dictionary"/> items (see <seecref="M:Godot.EditorVCSInterface.CreateDiffFile(System.String,System.String)"/>, <seecref="M:Godot.EditorVCSInterface.CreateDiffHunk(System.Int32,System.Int32,System.Int32,System.Int32)"/>, <seecref="M:Godot.EditorVCSInterface.CreateDiffLine(System.Int32,System.Int32,System.String,System.String)"/>, <seecref="M:Godot.EditorVCSInterface.AddLineDiffsIntoDiffHunk(Godot.Collections.Dictionary,Godot.Collections.Array)"/> and <seecref="M:Godot.EditorVCSInterface.AddDiffHunksIntoDiffFile(Godot.Collections.Dictionary,Godot.Collections.Array)"/>), each containing information about a diff. If <c>identifier</c> is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.</para>
<para>Returns an <seecref="T:Godot.Collections.Array"/> of <seecref="T:Godot.Collections.Dictionary"/> items (see <seecref="M:Godot.EditorVCSInterface.CreateDiffHunk(System.Int32,System.Int32,System.Int32,System.Int32)"/>), each containing a line diff between a file at <c>file_path</c> and the <c>text</c> which is passed in.</para>
<para>Returns an <seecref="T:Godot.Collections.Array"/> of <seecref="T:Godot.Collections.Dictionary"/> items (see <seecref="M:Godot.EditorVCSInterface.CreateStatusFile(System.String,Godot.EditorVCSInterface.ChangeType,Godot.EditorVCSInterface.TreeArea)"/>), each containing the status data of every modified file in the project folder.</para>
<para>Returns an <seecref="T:Godot.Collections.Array"/> of <seecref="T:Godot.Collections.Dictionary"/> items (see <seecref="M:Godot.EditorVCSInterface.CreateCommit(System.String,System.String,System.String,System.Int64,System.Int64)"/>), each containing the data for a past commit.</para>
<para>Returns an <seecref="T:Godot.Collections.Array"/> of <seecref="T:System.String"/>s, each containing the name of a remote configured in the VCS.</para>
<para>Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at <c>project_path</c>.</para>
<para>Pushes changes to the <c>remote</c>. Optionally, if <c>force</c> is set to true, a force push will override the change history already present on the remote.</para>
<para>Set user credentials in the underlying VCS. <c>username</c> and <c>password</c> are used only during HTTPS authentication unless not already mentioned in the remote URL. <c>ssh_public_key_path</c>, <c>ssh_private_key_path</c>, and <c>ssh_passphrase</c> are only used during SSH authentication.</para>
<para>Helper function to create a <c>Dictionary</c> for storing a line diff. <c>new_line_no</c> is the line number in the new file (can be <c>-1</c> if the line is deleted). <c>old_line_no</c> is the line number in the old file (can be <c>-1</c> if the line is added). <c>content</c> is the diff text. <c>status</c> is a single character string which stores the line origin.</para>
<para>Helper function to create a <c>Dictionary</c> for storing diff hunk data. <c>old_start</c> is the starting line number in old file. <c>new_start</c> is the starting line number in new file. <c>old_lines</c> is the number of lines in the old file. <c>new_lines</c> is the number of lines in the new file.</para>
<para>Helper function to create a commit <seecref="T:Godot.Collections.Dictionary"/> item. <c>msg</c> is the commit message of the commit. <c>author</c> is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. <c>id</c> is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. <c>unix_timestamp</c> is the UTC Unix timestamp of when the commit was created. <c>offset_minutes</c> is the timezone offset in minutes, recorded from the system timezone where the commit was created.</para>
<para>Pops up an error message in the edior.</para>
</summary>
</member>
<membername="T:Godot.GLTFMesh">
<summary>
<para>Note: This class is only compiled in editor builds. Run-time glTF loading and saving is not available in exported projects. References to <seecref="T:Godot.GLTFMesh"/> within a script will cause an error in an exported project.</para>
</summary>
</member>
<membername="T:Godot.ScriptCreateDialog">
<summary>
<para>The <seecref="T:Godot.ScriptCreateDialog"/> creates script files according to a given template for a given scripting language. The standard use is to configure its fields prior to calling one of the <seecref="M:Godot.Popup.Popup_(System.Nullable{Godot.Rect2})"/> methods.</para>
<para><code>
func _ready():
dialog.config("Node", "res://new_node.gd") # For in-engine types
dialog.config("\"res://base_node.gd\"", "res://derived_node.gd") # For script types
<para>Prefills required fields to configure the ScriptCreateDialog for use.</para>
</summary>
</member>
<membername="T:Godot.ScriptEditor">
<summary>
<para>Note: This class shouldn't be instantiated directly. Instead, access the singleton using <seecref="M:Godot.EditorInterface.GetScriptEditor"/>.</para>
<para>Opens the script create dialog. The script will extend <c>base_name</c>. The file extension can be omitted from <c>base_path</c>. It will be added based on the selected scripting language.</para>
</summary>
</member>
<membername="M:Godot.ScriptEditor.ReloadScripts">
<summary>
<para>Reload all currently opened scripts from disk in case the file contents are newer.</para>