Contains data used to animate everything in the engine. An Animation resource contains data used to animate everything in the engine. Animations are divided into tracks, and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (signals) to the track. [html br/] Animations are just data containers, and must be added to odes such as an [AnimationPlayer] or [AnimationTreePlayer] to be played back. Add a track to the Animation. The track type must be specified as any of the values in te TYPE_* enumeration. Remove a track by specifying the track index. Return the amount of tracks in the animation. Get the type of a track. Get the path of a track. for more information on the path format, see [method track_set_path] Set the path of a track. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ":". Example: "character/skeleton:ankle" or "character/mesh:transform/local:" Return the amount of keys in a given track. Return the time at which the key is located. Set the total length of the animation (in seconds). Note that length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping. Return the total length of the animation (in seconds). Set a flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation once it's over. Return wether the animation has the loop flag set. Transform tracks are used to change node local transforms or skeleton pose bones. Transitions are Interpolated. TODO will be changed and bleh Value tracks set values in node properties, but only those which can be Interpolated. Container and player of [Animaton] resources. An animation player is used for general purpose playback of [Animation] resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in diferent channels. Add an animation resource to the player, which will be later referenced by the "name" argument. Remove an animation from the player (by supplying the same name used to add it). Request wether an [Animation] name exist within the player. Get an [Animation] resource by requesting a name. Get the list of names of the animations stored in the player. Specify a blend time (in seconds) between two animations, referemced by their names. Get the blend time between two animations, referemced by their names. Start playback of an animation (referenced by "name"). Optionally a channel can be specified. Start playback of an animation channel. (or channel 0 if none is provided). Stop playback on all animation channels. Return wether an animation chanel is playing (or channel 0 if none is provided). Return the name of the animation being played in a channel (or channel 0 if none is provided). Pause the playback in all animation channels. Return [html i]true[html /i] if all playback is paused. Set a speed scaling ratio in a given animation channel (or channel 0 if none is provided). Default ratio is [html i]1[html /i] (no scaling). Get the speed scaling ratio in a given animation channel (or channel 0 if none is provided). Default ratio is [html i]1[html /i] (no scaling). Seek the animation in an animation channel (or channel 0 if none is provided) to a specific position (in seconds). Return the playback position (in seconds) in an animation channel (or channel 0 if none is provided) The animation player creates caches for faster access to the nodes it will animate. However, if a specific node is removed, it may not notice it, so clear_caches will force the player to search for the nodes again. Maximum amount of animation channels. Provides a base class for different kinds of buttons. BaseButton is the abstract base class for buttons, so it shouldn't be used directly (It doesnt display anything). Other types of buttons inherit from it. Set the button to pressed state (only if toggle_mode is active). Return when the button is pressed (only if toggle_mode is active). Set the button toggle_mode property. Toggle mode makes the button flip state between pressed and unpressed each time its area is clicked. Return the toggle_mode property (see [method set_toggle_mode]). Set the button into disabled state. When a button is disabled, it can't be clicked or toggled. Return wether the button is in disabled state (see [method set_disabled]). Set the button click_on_press mode. This mode generates click signals when a mousebutton or key is just pressed (by default signals are generated when the button/keys are released and both press and release occur in the visual area of the Button). Return the state of the click_on_press property (see [method set_click_on_press]). This signal is emitted when the button was just toggled between pressed and normal states (only if toggle_mode is active). The new state is contained in the [html i]pressed[html /i] argument. This signal is emitted every time the button is pressed or toggled. Standard themed Button. Button is just the standard themed button: [html image src="images/button_example.png"/] It can contain a text and an icon, and will display them according to the current theme. Set the button text, which will be displayed inside the button area. Return the button text. Set the button icon, which will be displayed to the left of the text. Return the button icon. Set the [html i]flat[html /i] property of a Button. Flat buttons don't display decoration unless hoevered or pressed. Set the [html i]clip_text[html /i] property of a Button. When this property is enabled, text that is too large to fit the button is clipped, when disabled (default) the Button will always be wide enough to hold the text. Return the state of the [html i]clip_text[html /i] property (see [method set_clip_text]) Return the state of the [html i]flat[html /i] property (see [method set_flat]) Camera node, displays from a point of view. Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest [Viewport] node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the Camera will register in the global viewport. In other words, a Camera just provides [html i]3D[html /i] display capabilities to a [Viewport], and, without one, a [Scene] registered in that [Viewport] (or higher viewports) can't be displayed. Return a normal vector in worldspace, that is the result of projecting a point on the [Viewport] rectangle by the camera proyection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking. Return a 3D position in worldspace, that is the result of projecting a point on the [Viewport] rectangle by the camera proyection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking. Return how a 3D point in worldpsace maps to a 2D coordinate in the [Viewport] rectangle. Set the camera projection to perspective mode, by specifying a [html i]FOV[html /i] angle in degrees (FOV means Field of View), and the [html i]near[html /i] and [html i]far[html /i] clip planes in worldspace units. Set the camera projection to orthogonal mode, by specifying a rectangle and the [html i]near[html /i] and [html i]far[html /i] clip planes in worldspace units. (As a hint, 2D games often use this projection, with values specified in pixels) Make this camera the current Camera for the [Viewport] (see class description). If the Camera Node is outside the scene tree, it will attempt to become current once it's added. Return wether the Camera is the current one in the [Viewport], or plans to become current (if outside the scene tree). Get the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the [Node] transform. Perspective Projection (object's size on the screen becomes smaller when far away). Orthogonal Projection (objects remain the same size on the screen no matter how far away they are). Control is the base class Node for all the GUI components. Control is the base class Node for all the GUI components. Every GUI component inherits from it, directly or indirectly. Control Nodes contain positions relative to their parent control nodes. In this way, sections of the scene tree made of contiguous Control Nodes, become user interfaces.[html br/] Controls contain a [html i]canvas item[html /i] RID from the visual server, and can draw to it when receiving a NOTIFICATION_DRAW.[html br/] TODO: Explain margins and anchors[html br/] TODO: explain focus[html br/] Return the minimum size this Control can shrink to. A control will never be displayed or resized smaller than its minimum size. Return wether this control is a [html i]window[html /i]. Controls are considered windows when their parent [Node] is not a Control. Return the [html i]window[html /i] for this control, ascending the scene tree (see [method is_window]). Change the anchor (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) type for a margin (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Changing the anchor mode converts the current margin offset from the previos anchor mode to the new one, so margin offsets ([method set_margin]) must be done after setting anchors, or at the same time ([method set_anchor_and_margin]). Return the anchor type (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) for a given margin (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Set a margin offset. Margin can be one of (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Offset value being set depends on the anchor mode. Change the anchor (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) type for a margin (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM), and also set its offset. This is a helper (see [method set_anchor] and [method set_margin]). Sets MARGIN_LEFT and MARGIN_TOP at the same time. This is a helper (see [method set_margin]). Sets MARGIN_RIGHT and MARGIN_BOTTOM at the same time. This is a helper (see [method set_margin]). Move the Control to a new position, relative to the top-left corner of the parent Control, changing all margins if needed and without changing current anchor mode. This is a helper (see [method set_margin]). Changes MARGIN_RIGHT and MARGIN_BOTTOM to fit a given size. This is a helper (see [method set_margin]). Move the Control to a new position, relative to the top-left corner of the [html i]window[html /i] Control, and without changing current anchor mode. (see [method set_margin]). Return a margin offset. Margin can be one of (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Offset value being returned depends on the anchor mode. Returns MARGIN_LEFT and MARGIN_TOP at the same time. This is a helper (see [method set_margin]). Returns the Control position, relative to the top-left corner of the parent Control and independly of the anchor mode. Returns the size of the Control, computed from all margins, however the size returned will [html b]never be smaller than the minimum size reported by [method get_minimum_size][html /b]. This means that even if end position of the Control rectangle is smaller than the begin position, the Control will still display and interact correctly. (see description, [method get_minimum_size], [method set_margin], [method set_anchor]). Returns the Control position, relative to the top-left corner of the parent Control and independent of the anchor mode. Return position and size of the Control, relative to the top-left corner of the parent Control. This is a helper (see [method get_pos],[method get_size]). Return position and size of the Control, relative to the top-left corner of the [html i]window[html /i] Control. This is a helper (see [method get_global_pos],[method get_size]). Change all margins and anchors, so this Control always takes up the same area as the parent Control. This is a helper (see [method set_anchor],[method set_margin]). Display a Control as modal. Control must be a subwindow (see [method set_as_subwindow]). Modal controls capture the input signals until closed or the area outside them is accessed. When a modal control loses focus, or the ESC key is pressed, they automatically hide. Modal controls are used extensively for popup dialogs and menus. Set the focus access mode for the control (FOCUS_NONE, FOCUS_CLICK, FOCUS_ALL). Only one Control can be focused at the same time, and it will receive keyboard signals. Return wether the Control is the current focused control (see [method set_focus_mode]). Steal the focus from another control and become the focused control (see [method set_focus_mode]). Override whole the [Theme] for this Control and all its children controls. Return a [Theme] override, if one exists (see [method set_theme]). Override a single icon ([Texture]) in the theme of this Control. If texture is empty, override is cleared. Override a single stylebox ([Stylebox]) in the theme of this Control. If stylebox is empty, override is cleared. Override a single font (font) in the theme of this Control. If font is empty, override is cleared. Override a single constant (integer) in the theme of this Control. If constant equals Theme.INVALID_CONSTANT, override is cleared. Return the parent Control. Unlike get_parent() in [Node], only returns a valid object if the parent is a Control. Control gained focus. Mouse pointer entered the area of the Control. Control changed size (get_size() reports the new size). Control can acquire focus only if clicked. Control lost focus. Control can't acquire focus. X is relative to MARGIN_LEFT, Y is relative to MARGIN_TOP, Mouse pointer exited the area of the Control. Control can acquire focus if clicked, or by pressing TAB/Directionals in the keyboard from another Control. X and Y are a ratio (0 to 1) relative to the parent size 0 is left/top, 1 is right/bottom. X is relative to -MARGIN_RIGHT, Y is relative to -MARGIN_BOTTOM, GridMap is like a tile map, but in 3D. GridMap is a 3D Tile map, using [html i]3D Cells[html /i] instead of tiles. On each cell, a mesh and a collision volume can be placed from a [MeshLibrary]. GridMap is used for designing worlds quickly. Despite that GridMaps can contain up to hundreds millions of cells, they are very optimized, and only use resources for the cells that contain items. Set a MeshLibrary. Cell indices refer to items in the theme. Get the current MeshLibrary (if exists). Set the size of a cell, in worldpsace units. All cells in a GridMap are the same size. Return the current cell size. Set the width of the GridMap. Width is the amount of cells i the direction of the X coordinate. Get the width of the GridMap. Width is the amount of cells i the direction of the X coordinate. Set the height of the GridMap. Height is the amount of cells i the direction of the Y coordinate. Get the height of the GridMap. Height is the amount of cells i the direction of the Y coordinate. Set the depth of the GridMap. Depth is the amount of cells i the direction of the Z coordinate. Get the depth of the GridMap. Depth is the amount of cells i the direction of the Z coordinate. Set a cell item (x,y,z pos). Cell items are indices to items in the [MeshLibrary]. Get a cell item (x,y,z pos). Cell items are indices to items in the [MeshLibrary]. Value indicating that a cell item is not used or invalid. Theme for a [GridMap]. MeshLibrary is [Resource] containing the data used in a [GridMap]. It's filled with items, each containing a mesh and a collision shape. Create a new item, and assign it a given id. Set the name of an item, referenced by id. Set the [Mesh] of an item, referenced by id. Get the name of an item, referenced by id. Get the [Mesh] of an item, referenced by id. Remove an item, referenced by id. Clear all items contained in this resource. Get the list of item IDs contained in this theme. Get the last unused item id. This is useful for creating new item IDs. Directional Light, such as the Sun or the Moon. A DirectionalLight is a type of [Light] node that emits light constantly in one direction (the negative z axis of the node). It is used lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldpace location of the DirectionalLight transform (origin) is ignored, only the basis is used do determine light direction. Dialog for selecting files or directories in the filesystem. FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. Clear all the added filters in the dialog. Add a custom filter. Filter format is: "mask ; description. Get the current working directory of the file dialog. Get the current selected file of the file dialog (empty if none). Get the current selected path (directory and file) of the file dialog (empty if none). Set the file dialog mode from the MODE_* enum. Get the file dialog mode from the MODE_* enum. Event emitted when the user selects a file (double clicks it or presses the OK button). Editor will not allow to select nonexistent files. Editor will warn when a file exists. Simple Material with a fixed parameter set. FixedMaterial is a simple type of material [Resource], which contains a fixed amount of paramters. It is the only type of material supported in fixed-pipeline devices and APIs. It is also an often a better alternative to [ShaderMaterial] for most simple use cases. Set a parameter, parameters are defined in the PARAM_* enum. The type of each parameter may change, so it's best to check the enum. Return a parameter, parameters are defined in the PARAM_* enum. The type of each parameter may change, so it's best to check the enum. Set a texture. Textures change parameters per texel and are mapped to the model depending on the texcoord mode (see [method set_texcoord_mode]). Return a texture. Textures change parameters per texel and are mapped to the model depending on the texcoord mode (see [method set_texcoord_mode]). Set the texture coordinate generation mode. Materials have a unique, texgen mode which can generate texture coordinates on the fly. Texgen mode must be one of the values from the TEXGEN_* enum. TEXGEN can be selected as a texture coordinate mode (see [method set_texcoord_mode]). Return the texture coordinate generation mode. Materials have a unique, texgen mode which can generate texture coordinates on the fly. Texgen mode must be one of the values from the TEXGEN_* enum. TEXGEN can be selected as a texture coordinate mode (see [method set_texcoord_mode]). Set the texture coordinate mode. Each texture param (from the PARAM_* enum) has one. It defines how the textures are mapped to the object. Return the texture coordinate mode. Each texture param (from the PARAM_* enum) has one. It defines how the textures are mapped to the object. Sets a special transform used to post-transform UV coordinates of the uv_xfrom tecoord mode: TEXCOORD_UV_TRANSFORM Returns the special transform used to post-transform UV coordinates of the uv_xfrom tecoord mode: TEXCOORD_UV_TRANSFORM Specular Exponent (size of the specular dot) Detail Layer for diffuse lighting. Read texture coordinates from the UV2 array. Use the screen coordinates as UV, scaled by depth and the screenz coefficient. Read texture coordinates from the UV array and transform them by uv_xform. Use object local X and Y coordinates as UV. Maximum amount of parameters Diffuse Lighting (light scattered from surface). Emission Lighting (light emitted from the surface) Specular Lighting (light reflected from the surface). Mix coefficient for the detail layer. Use view normal reflected by object normal as UV. Normal Map (irregularity map). Glow (Visible emitted scattered light). Read texture coordinates from the UV array. Use texture coordinates from the texgen. Use the screen coordinates as UV. Internationalized font and text drawing support. Font contains an unicode compatible character set, as well as the ability to draw it with variable width, ascent, descent and kerning. For creating fonts from TTF files (or other font formats), see the editor support for fonts. TODO check wikipedia for graph of ascent/baseline/descent/height/etc. Set the total font height (ascent plus descent) in pixels. Return the total font height (ascent plus descent) in pixels. Set the font ascent (number of pixels above the baseline). Return the font ascent (number of pixels above the baseline). Return the font descent (number of pixels below the baseline). Add a kerning pair to the [Font] as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character. Return a kerning pair as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character. Add a texture to the [Font]. Add a character to the font, where "character" is the unicode value, "texture" is the texture index, "rect" is the region in the texture (in pixels!), "align" is the (optional) alignment for the character and "advance" is the (optional) advance. Return the size of a character, optionally taking kerning into account if the next character is provided. Return the size of a string, taking kerning and advance into account. Clear all the font data. Draw "string" into a canvas item using the font at a given "pos" position, with "modulate" color, and optionally clipping the width. "pos" specifies te baseline, not the top. To draw from the top, [html i]ascent[html /i] must be added to the Y axis. Draw character "char" into a canvas item using the font at a given "pos" position, with "modulate" color, and optionally kerning if "next" is apassed. clipping the width. "pos" specifies te baseline, not the top. To draw from the top, [html i]ascent[html /i] must be added to the Y axis. The width used by the character is returned, making this function useful for drawing strings character by character. Contains global variables accessible from everywhere. Contains global variables accessible from everywhere. Use the normal [Object] API, such as "Globals.get(variable)", "Globals.set(variable,value)" or "Globals.has(variable)" to access them. Variables stored in engine.cfg are also loaded into globals, making this object very useful for reading custom game configuration options. Horizontal version of [ScrollBar], which goes from top (min) to bottom (max). Horizontal version of [Separator]. Horizontal version of [Separator]. It is used to separate objects vertiacally, though (but it looks horizontal!). IP Protocol support functions. IP contains some support functions for the IPv4 protocol. TCP/IP support is in different classes (see [TCP_Client], [TCP_Server]). IP provides hostname resolution support, both blocking and threaded. Resolve a given hostname, blocking. Resolved hostname is returned as an IP. Create a queue item for resolving a given hostname. The queue ID is returned, or RESOLVER_INVALID_ID on error. Return the status of hostname queued for resolving, given it's queue ID. Returned status can be any of the RESOLVER_STATUS_* enumeration. Return a resolved item address, or an empty string if an error happened or resolution didn't happen yet (see [method get_resolve_item_status]). Erase a queue ID, removing it from the queue if needed. This should be used after a queue is completed to free it and enable more queries to happen. Control that displays formatted text. Label is a control that displays formatted text, optionally autowrapping it to the [Control] area. It inherits from range to be able to scroll wrapped text vertically. Set the alignmend mode to any of the ALIGN_* enumeration values. Return the alignmend mode (any of the ALIGN_* enumeration values). Set the label text. Text can contain newlines. Return the label text. Text can contain newlines. Set [html i]autowrap[html /i] mode. When enabled, autowrap will fit text to the control width, breaking sentences when they exceed the available horizontal space. When disabled, the label minimum width becomes the width of the longest row, and the minimum height large enough to fit all rows. Return the state of the [html i]autowrap[html /i] mode (see [method set_autowrap]). Align rows centered. Align rows to the left (default). Align rows to the right (default). Expand row whitespaces to fit the width. Provides a base class for different kinds of light nodes. Light is the abstract base class for light nodes, so it shouldn't be used directly (It can't be instanced). Other types of light nodes inherit from it. Light contains the common variables and parameters used for lighting. Control that provides single line string editing. LineEdit provides a single line string editor, used for text fields. Clear the [LineEdit] text. Select the whole string. Set the text in the [LineEdit], clearing the existing one and the selection. Return the text in the [LineEdit]. Set the cursor position inside the [LineEdit], causing it to scroll if needed. Return the cursor position inside the [LineEdit]. Set the maximum amount of characters the [LineEdit] can edit, and cropping existing text in case it exceeds that limit. Setting 0 removes the limit. Return the maximum amount of characters the [LineEdit] can edit. If 0 is returned, no limit exists. Append text at cursor, scrolling the [LineEdit] when needed. Set the [html i]editable[html /i] status of the [LineEdit]. When disabled, existing text can't be modified and new text can't be added. Return the [html i]editable[html /i] status of the [LineEdit] (see [method set_editable]). Set the [html i]secret[html /i] status of the [LineEdit]. When enabled, every character is displayed as "*". Return the [html i]secret[html /i] status of the [LineEdit] (see [method set_secret]). This signal is emitted when the user presses KEY_ENTER on the [LineEdit]. This signal is often used as an alternate confirmation mechanism in dialogs. When the text changes, this signal is emitted. Main loop is the abstract main loop base class. Main loop is the abstract main loop base class. All other main loop classes are derived from it. Upon application start, a [MainLoop] has to be provided to OS, else the application will exit. This happens automatically (and a [SceneMainLoop] is created), unless a main [Script] is supplied, which may or not create and return a [MainLoop]. Abstract base [Resource] for coloring and shading geometry. Material is a base [Resource] used for coloring and shading geometry. All materials inherit from it and almost all [VisualInstance] derived nodes carry a Material. A few flags and parameters are shared between all material types and are configured here. Set a [Material] flag, which toggles on or off a behavior when rendering. See enumeration FLAG_* for a list. Return a [Material] flag, which toggles on or off a behavior when rendering. See enumeration FLAG_* for a list. Set blend mode for the material, which can be one of BLEND_MODE_MIX (default), BLEND_MODE_ADD, BLEND_MODE_SUB. Keep in mind that only BLEND_MODE_MIX ensures that the material [html i]may[html /i] be opaque, any other blend mode will render with alpha blending enabled in raster-based [VisualServer] implementations. Return blend mode for the material, which can be one of BLEND_MODE_MIX (default), BLEND_MODE_ADD, BLEND_MODE_SUB. Keep in mind that only BLEND_MODE_MIX ensures that the material [html i]may[html /i] be opaque, any other blend mode will render with alpha blending enabled in raster-based [VisualServer] implementations. Set the line width for geometry drawn with FLAG_WIREFRAME enabled, or LINE primitives. Note that not all hardware or VisualServer backends support this (like DirectX). Return the line width for geometry drawn with FLAG_WIREFRAME enabled, or LINE primitives. Note that not all hardware or VisualServer backends support this (like DirectX). Triangle geometry is drawn as lines if this flag is enabled. Both front facing and back facing triangles are rendered when this flag is enabled. Geometry world transform is computed as billboard if this flag is enabled, often used for impostors. Shading (lighting) is disabled when this flag is enabled. Use the regular alpha blending equation (source and dest colors are faded) (default). Maximum amount of flags Geometry is visible when this flag is enabled (default). Use additive blending equation, often used for particle effects such as fire or light decals. Use substractive blending equation, often used for some smoke effects or types of glass. Front facing and back facing order is swapped when this flag is enabled. Special button that brings up a [PopupMenu] when clicked. Special button that brings up a [PopupMenu] when clicked. That's pretty much all it does, as it's just a helper class when bulding GUIs. Return the [PopupMenu] contained in this button. A [Resource] that contains vertex-array based geometry. Mesh is a type of [Resource] that contains vertex-array based geometry, divided in [html i]surfaces[html /i]. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is prefered to a single surface, because objects created in 3D editing software commonly contain multiple materials. Create a new surface ([method get_surface_count] will become surf_idx for this.[html br/] Surfaces are created to be rendered using a "primitive", which may be PRIMITIVE_POINTS, PRIMITIVE_LINES, PRIMITIVE_LINE_STRIP, PRIMITIVE_LINE_LOOP, PRIMITIVE_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP, PRIMITIVE_TRIANGLE_FAN. (As a note, when using indices, it is recommended to only use just points, lines or triangles).[html br/] The format of a surface determines which arrays it will allocate and hold, so "format" is a combination of ARRAY_FORMAT_* mask constants ORed together. ARRAY_FORMAT_VERTEX must be always present. "array_len" determines the amount of vertices in the array (not primitives!). if ARRAY_FORMAT_INDEX is in the format mask, then it means that an index array will be allocated and "index_array_len" must be passed. Return the amount of surfaces that the [Mesh] holds. Remove a surface at position surf_idx, shifting greater surfaces one surf_idx slot down. Set a surface array, array must be defined in the format (see [method add_surface]), and which array being set in "data" must be indicated passing a value from the ARRAY_* enum (NOT THE ARRAY_FORMAT_ enum!!). A Mesh can't be displayed (error will be reported) if an array that is present in the format was not set. Return a surface array, array must be defined in the format (see [method add_surface]), and which array being returned must be indicated passing a value from the ARRAY_* enum (NOT THE ARRAY_FORMAT_ enum!!) (see [method add_surface]). Return the length in vertices of the vertex array in the requested surface (see [method add_surface]). Return the length in indices of the index array in the requested surface (see [method add_surface]). Return the format mask of the requested surface (see [method add_surface]). Return the primitive type of the requested surface (see [method add_surface]). Set a [Material] for a given surface. Surface will be rendered using this material. Return a [Material] in a given surface. Surface is rendered using this material. Render array as lines (every two vertices a line is created). Amount of weights/bone indices per vertex (always 4). Array format will include vertices (mandatory). Vertex array (array of [Vector3]() vertices). Render array as points (one vertex equals one point). Array format will include bone indices. Array format will include a color array. Array of bone indices, as a float array. Each element in groups of 4 floats. Vertex array (array of [Color]() colors). Index array will be used. Array of integers, used as indices referencing vertices. No index can be beyond the vertex array size. Render array as triangle strips. Array format will include tangents Array format will include normals Tangent array, array of groups of 4 floats. first 3 floats determine the tangent, and the last the binormal direction as -1 or 1. Normal array (array of [Vector3]() normals). Render array as triangles (every three vertices a triangle is created). Render array as line loop (like line strip, but closed). Render array as line strip. Array format will include bone weights. Array format will include UVs. Array of bone weights, as a float array. Each element in groups of 4 floats. UV array (array of [Vector3]() UVs or float array of groups of 2 floats (u,v)). Render array as triangle fans. Default value used for index_array_len when no indices are present. Node that instances meshes into a [Scenario]. MeshInstance is a [Node] that takes a [Mesh] resource and adds it to the current [Scenario] by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a sigle [Mesh] in many places. This allows to reuse geometry and save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead. Set the [Mesh] resource for the instance. Return the current [Mesh] resource for the instance. Return the AABB of the mesh, in local coordinates. This helper creates a [StaticBody] child [Node] using the mesh geometry as collision. It's mainly used for testing. Soon to be removed, bye bye. Provides high perfomance mesh instancing. MultiMesh provides low level mesh instancing. If the amount of [Mesh] instances needed goes from hundreds to thousands (and most need to be visible at close proximity) creating such a large amount of [MeshInstance] nodes may affect performance by using too much CPU or video memory. [html br/]For this case a MultiMesh becomes very useful, as it can draw thousands of instances with little API overhead.[html br/] As a drawback, if the instances are too far away of each other, performance may be reduced as every sigle instance will always rendered (they are spatially indexed as one, for the whole object).[html br/] Since instances may have any behavior, the AABB used for visibility must be provided by the user, or generated with [method generate_aabb]. Set the [Mesh] resource to be drawn in multiple instances. Return the [Mesh] resource drawn as multiple instances. Set the amount of instnces that is going to be drawn. Changing this number will erase all the existing instance transform and color data. Return the amount of instnces that is going to be drawn. Set the transform for a specific instance. Return the transform of a specific instance. Set the color of a specific instance. Get the color of a specific instance. Set the visibility AABB. If not provided, MultiMesh will not be visible. Return the visibility AABB. Generate a new visibility AABB, using mesh AABB and instance transforms. Since instance information is stored in the [VisualServer], this function is VERY SLOW and must NOT be used often. Node that instances a [MultiMesh]. MultiMeshInstance is a [Node] that takes a [MultiMesh] resource and adds it to the current [Scenario] by creating an instance of it (yes, this is an instance of instances). Set the [MultiMesh] to be instance. Return the [MultiMesh] that is used for instancing. Base class for all the "Scene" elements. Nodes can be set as children of other nodes, resulting in a tree arrangement. Any tree of nodes is called a "Scene".[html br/] Scenes can be saved to disk, and then instanced into other scenes. This allows for very high flexibility in the architecture and data model of the projects. Scenes become "active" and part of the "Scene Tree" once they are added as children of a [RootNode].[html br/][html br/] As an illustrative example, a Scene (tree of nodes): [html div align="center"][html img src="images/scene.png"/][html /div] This scene will was edited separatedly, then is added as part of a game (by instancing it), becoming part of a "Scene Tree": [html div align="center"][html img src="images/scene_tree.png"/][html /div] In short, nodes are an effective all-in-one way to create and organize assets, gameplay and game data. When a Node is freed (deleted), it will delete all its children nodes. TODO: explain better process/signal/group call ordering Set the name of the [Node]. Name must be unique within parent, and setting an already existing name will cause for the node to be automatically renamed. Return the name of the [Node]. Name is be unique within parent. Add a child [Node]. Nodes can have as many children as they want, but every child must have a unique name. Children nodes are automatically deleted when the parent node is deleted, so deleting a whole scene is performed by deleting its topmost node. Remove a child [Node]. Node is NOT deleted and will have to be deleted manually. Return the amount of children nodes. Return a children node by it's index (see [method get_child_count]). This method is often used for iterating all children of a node. Fetch a node. "path" must be valid (or else error will occur) and can be either the name of a child node, a relative path (from the current node to another node), or an absolute path to a node.[html br/] Examples ofa paths are: get_node("Sword") , get_node("../Swamp/Alligator") , get_node("/MyGame"). [html br/]Note: fetching absolute paths only works when the node is inside the scene tree (see [method is_inside_tree]). Return the parent [Node] of the current [Node], or an empty Object if the node lacks a parent. Return [html i]true[html /i] if the "node" argument is a direct or indirect child of the current node, otherwise return [html i]false[html /i]. Return [html i]true[html /i] if "node" occurs later in the scene hierarchy than the current node, otherwise return [html i]false[html /i]. Return the absolute path of the current node. This only works if the curent node is inside the scene tree (see [method is_inside_tree]). Return the relative path from the current node to the specified node in "node" argument. Both nodes must be in the same scene, or else the function will fail. Add a node to a group. Groups are helpers to name and organize group of nodes, like for example: "Enemies" "Collectables", etc. A [Node] can be in any number of groups. Nodes can be assigned a group at any time, but will not be added to it until they are inside the scene tree (see [method is_inside_tree]). Remove a node from a group. Move a child node to a different position (order) amongst the other children. Since calls, signals, etc are performed by tree order, changing the order of chilren nodes may be useful. Move this node to the top of the array of nodes of the parent node. This is often useful on GUIs ([Control]), because their order of drawing fully depends on their order in the tree. Set the node owner. A node can have any other node as owner (as long as a valid parent, grandparent, etc ascending in the tree). When saving a node (using SceneSaver) all the nodes it owns will be saved with it. This allows to create complex SceneTrees, with instancing and subinstancing. Get the node owner (see [method set_node_owner]). Remove a node and set all its children as childrens of the parent node (if exists). All even subscriptions that pass by the removed node will be unsubscribed. Get the node index in the parent (assuming it has a parent). Print the screne to stdout. Used mainly for debugging purposes. A node can contain a filename. This filename should not be changed by the user, unless writing editors and tools. When a scene is instanced from a file, it topmost node contains the filename from where it was loaded. Return a filename that may be containedA node can contained by the node. When a scene is instanced from a file, it topmost node contains the filename from where it was loaded (see [method set_filename]). Notify the current node and all its chldren recursively by calling notification() in all of them. Enables or disables node processing. When a node is being processed, it will receive a NOTIFICATION_PROCESS on every frame. It is common to check how much time was elapsed since the previous frame by calling [method get_process_time]. If the application is set to run at 60 fps, NOTIFICATION_PROCESS will be received 60 times per second (even if the visuals are running at faster or lower fps). Because of this, nodes that wish to do processing are recommended to use [method set_idle_process] instead, unless strong syncronization is requiered (for example, to modify the behavior of physics objects). Return the amount of time elapsed (in seconds) between two succesive NOTIFICATION_PROCESS notifications. Return wether processing is enabled in the current node. Enables or disables node idle processing. When a node is being idle-processed, it will receive a NOTIFICATION_IDLE_PROCESS when idle. It is common to check how much time was elapsed since the previous idle time by calling [method get_idle_process_time]. Idle processing is commonly syncronized to [VisualServer] being done rendering a frame, so this type of processing is syncronized to the visible frames per second. To syncronize with the desired frames per second, see [method set_process] instead. Return the amount of time elapsed (in seconds) between two succesive NOTIFICATION_IDLE_PROCESS notifications. Return wether idle processing is enabled in the current node. Return a duplicate of the scene, with all nodes and parameters copied. Subscriptions will not be duplicated. Replace a node in a scene by a given one. Subscriptions that pass through this node will be lost. Notification received when a node is unparented (parent removed it from the list of children). Notification received every frame when the process flag is set (see [method set_process]). Notification received when a node is set as a child of another node. Note that this doesn't mean that a node entered the Scene Tree. Notification received every time the application enters idle when the idle process flag is set (see [method set_process]). OmniDirectional Light, such as a lightbulb or a candle. An OmniDirectional light is a type of [Light] node that emits lights in all directions. The light is attenuated through the distance and this attenuation can be configured by changing the energy, radius and attenuation parameters of [Light]. TODO: Image of an omnilight. Button control that provides selectable options when pressed. OptionButton is a type button that provides a selectable list of items when pressed. The item selected becomes the "current" item and is displayed as the button text. Add an item, with text "label" and (optionally) id. If no "id" is passed, "id" becomes the item index. New items are appended at the end. Add an item, with a "texture" icon, text "label" and (optionally) id. If no "id" is passed, "id" becomes the item index. New items are appended at the end. Set the text of an item at index "idx". Set the icon of an item at index "idx". Set the ID of an item at index "idx". Return the text of the item at index "idx". Return the icon of the item at index "idx". Return the ID of the item at index "idx". Return the amount of items in the OptionButton. Add a separator to the list of items. Separators help to group items. Separator also takes up an index and is appended at the end. Clear all the items in the [OptionButton]. Select an item by index and make it the current item. Return the current item index This signal is emitted when the current item was changed by the user. ID of the item selected is passed as argument (if no IDs were added, ID will be just the item index). Abstraction and base class for packet-based protocols. PacketPeer is an abstration and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low level bytes or having to worry about network ordering. Wrapper to use a PacketPeer over a StreamPeer. PacketStreamPeer provides a wrapper for working using packets over a stream. This allows for using packet based code with StreamPeers. PacketPeerStream implements a custom protocol over the StreamPeer, so the user should not read or write to the wrapped StreamPeer directly. Set the StreamPeer object to be wrapped Provides an opaque background for [Control] children. Panel is a [Control] that displays an opaque background. It's commoly used as a parent and container for other types of [Control] nodes. [html div align="center"][html img src="images/panel_example.png"/][html /div] Particle system 3D Node Particles is a particle system 3D [Node] that is used to simulate several types of particle effects, such as explosions, rain, snow, fireflies, or other magical-like shinny sparkles. Particles are drawn using impostors, and given their dynamic behavior, the user must provide a visibility AABB (although helpers to create one automatically exist). Set total amount of particles in the system. Return the total amount of particles in the system. Set the "emitting" property state. When emitting, the particle system generates new particles at constant rate. Return the "emitting" property state (see [method set_emitting]). Set the visibility AABB for the particle system, since the default one will not work properly most of the time. Return the current visibility AABB. Set the half extents for the emission box. Return the half extents for the emission box. Set the normal vector towards where gravity is pulling (by default, negative Y). Return the normal vector towards where gravity is pulling (by default, negative Y). Set a specific variable for the particle system (see VAR_* enum). Return a specific variable for the particle system (see VAR_* enum). Set the randomness for a specific variable of the particle system. Randomness produces small changes from the default each time a particle is emitted. Return the randomness for a specific variable of the particle system. Randomness produces small changes from the default each time a particle is emitted. Set the position of a color phase (0 to 1) Return the position of a color phase (0 to 1) Set the color of a color phase. Return the color of a color phase. Set the material used to draw particles Return the material used to draw particles Base class for differnt types of Physics bodies. PhysicsBody is an abstract base class for implementing a physics body. All PhysicsBody types inherit from it. Base container control for popups and dialogs. PopUp is a base [Control] used to show dialogs and popups. It's a subwindow and modal by default (see [Control]) and has helpers for custom popup behavior. Popup (show the control in modal form) in the center of the screen, at the curent size, or at a size determined by "size". Popup (show the control in modal form) in the center of the screen, scalled at a ratio of size of the screen. Popup (show the control in modal form). This signal is emitted when a popup is about to be shown. (often used in [PopupMenu] for clearing the list of options and creating a new one according to the current context). PopupMenu displays a list of options. PopupMenu is the typical Control that displays a list of options. They are popular in toolbars or context menus. Add a new item with text "label" and icon "texture. An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Add a new item with text "label". An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Add a new checkable item with text "label" and icon "texture. An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Note that checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. Add a new checkable item with text "label". An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Note that checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. Set the text of the item at index "idx". Set the icon of the item at index "idx". Set the accelerator of the item at index "idx". Accelerators are special combinations of keys that activate the item, no matter which control is fucused. Set the checkstate status of the item at index "idx". Set the id of the item at index "idx". Return the text of the item at index "idx". Return the icon of the item at index "idx". Return the accelerator of the item at index "idx". Accelerators are special combinations of keys that activate the item, no matter which control is fucused. Return the checkstate status of the item at index "idx". Return the id of the item at index "idx". Find and return the index of the item containing a given id. Return the amount of items. Add a separator between items. Separators also occupy an index. Clear the popup menu. This even is emitted when an item is pressed or its accelerator is activated. The id of the item is returned if it exists, else the index. Portals provide virtual openings to rooms. Portals provide virtual openings to [RoomInstance] nodes, so cameras can look at them from the outside. Note that portals are a visibility optimization technique, and are in no way related to the game of the same name (as in, they are not used for teleportation). For more information on how rooms and portals work, see [RoomInstance]. Portals are represented as 2D convex polygon shapes (in the X,Y local plane), and are placed on the surface of the areas occupied by a [RoomInstance], to indicate that the room can be accessed or looked-at through them. If two rooms are next to each other, and two similar portals in each of them share the same world position (and are parallel and opposed to each other), they will automatically "connect" and form "doors" (for example, the portals that connect a kitchen to a living room are placed in the door they share). Portals must always have a [RoomInstance] node as a parent, grandparent or far parent, or else they will not be active. Set the portal shape. The shape is an array of [Point2] points, representing a convex polygon in the X,Y plane. Return the portal shape. The shape is an array of [Point2] points, representing a convex polygon in the X,Y plane. Enable the portal (it is enabled by defaul though), disabling it will cause the parent [RoomInstance] to not be visible any longer when looking through the portal. Return wether the portal is active. When disabled it causes the parent [RoomInstance] to not be visible any longer when looking through the portal. Set the distance threshold for disabling the portal. Every time that the portal goes beyond "distance", it disables itself, becoming the opaque color (see [method set_disabled_color]). Return the distance threshold for disabling the portal. Every time that the portal goes beyond "distance", it disables itself, becoming the opaque color (see [method set_disabled_color]). When the portal goes beyond the disable distance (see [method set_disable_distance]), it becomes opaque and displayed with color "color". Return the color for when the portal goes beyond the disable distance (see [method set_disable_distance]) and becomes disabled. Set the range for auto-connecting two portals from different rooms sharing the same space. Return the range for auto-connecting two portals from different rooms sharing the same space. Abstract base class for range-based controls. Range is a base class for [Control] nodes that change a floating point [html i]value[html /i] between a need a [html i]minimum[html /i], [html i]maximum[html /i], using [html i]step[html /i] and [html i]page[html /i], for example a [ScrollBar]. Return the current value. Return the minimum value. Return the maximum value. Return the stepping, if step is 0, stepping is disabled. Return the page size, if page is 0, paging is disabled. Return value mapped to 0 to 1 (unit) range. Set minimum value, clamped range value to it if it's less. Set step value. If step is 0, stepping will be disabled. Set page size. Page is mainly used for scrollbars or anything that controls text scrolling. Set value mapped to 0 to 1 (unit) range, it will then be converted to the actual value within min and max. This signal is emitted when value changes. This signal is emitted when min, max, range or step change. Base class for all resources. Resource is the base class for all resource types. Resources are primarily data containers. They are reference counted and freed when no longer in use. They are also loaded only once from disk, and further attempts to load the resource will return the same reference (all this in contrast to a [Node], which is not reference counted and can be instanced from disk as many times as desred). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource. Set the path of the resource. This is useful mainly for editors when saving/loading, and shouldn't be changed by anything else. Return the path of the resource. This is useful mainly for editors when saving/loading, and shouldn't be changed by anything else. Set the name of the resources, any name is ok (it doesn't have to be unique). Name is for descriptive purposes only. Return the name of the resources, any name is ok (it doesn't have to be unique). Name is for descriptive purposes only. Return the RID of the resource (or an empty RID). Many resources (such as [Texture], [Mesh], etc) are high level abstractions of resources stored in a server, so this function will return the original RID. Room data resource. Room contains the data to define the bounds of a scene (using a BSP Tree). It is instanced by a [RoomInstance] node to create rooms. See that class documentation for more information about rooms. Set the bounds of the room as a BSP tree. a BSP Tree is defined a Dictionary: (TODO - see source code on how to create a BSP tree from a dictionary). Return the bounds of the room as a BSP tree. a BSP Tree is defined a Dictionary: (TODO - see source code on how to create a BSP tree from a dictionary). Set the "geometry" hint of the room. This means, how the room actually looks (an array of [Vector3]s, forming triangles). Return the "geometry" hint of the room. This means, how the room actually looks (an array of [Vector3]s, forming triangles). Node that instances a Room. RoomInstance is a [Node] that instances a [Room] resource and places it on the world. Rooms are used for defining the areas taken up by [html i]interiors[html /i]. An [html i]interior[html /i] is any closed space that has an entrance/exit (or not) to the outside world, for example the inside of a house, a room in a house, a cave.[html br/]So why is this used? Rooms and Portals ([Portal]) are a common visualization optimization technique, it is used to make interiors invisible (not rendered) when the camera is at the exterior (such as an open field), and also the exterior invisible when inside an interior (such as a house). It is also used to make interior rooms invisible from other interior rooms. [html div align="center"][html img src="images/portals_example.png"/][html /div] Set the [Room] resource, containing the room bounds. Return the [Room] resource, containing the room bounds. This helper function computes a [Room] from the shapes of all the children [VisualInstance] nodes, and sets it to the node. Audio Sample (sound) class. Sample provides an audio sample class, containing audio data, together with some information for playback, such as format, mix rate and loop. It is used by sound playback routines. Create new data for the sample, with format "format" (see FORMAT_* enum), stereo hint, and length in frames (not samples or bytes!) "frame". Calling create overrides previous existing data if it exists. Stereo samples are interleaved pairs of left and right (in that order) points Return the sample format (see FORMAT_* enum). Return true if the sample was created stereo. Return the sample length in frames. Set sample data. Data must be little endian, no matter the host platform, and exactly as long to fit all frames. Example, if data is Stereo, 16 bits, 256 frames, it will be 1024 bytes long. Return sample data. Data will be endian, no matter with the host platform, and exactly as long to fit all frames. Example, if data is Stereo, 16 bits, 256 frames, it will be 1024 bytes long. Set the mix rate for the sample (expected playback frequency). Return the mix rate for the sample (expected playback frequency). Set the loop format, see LOOP_* enum Return the loop format, see LOOP_* enum. Set the loop begin position, it must be a valid frame and less than the loop end position. Return the loop begin position. Set the loop end position, it must be a valid frame and greater than the loop begin position. Return the loop begin position. Ima-ADPCM Audio. Forward looping (when playback reaches loop end, goes back to loop begin) 16-Bits signed little endian PCM audio. 8-Bits signed little endian PCM audio. No loop enabled. Ping-Pong looping (when playback reaches loop end, plays backward untilloop begin). Not available in all platforms. Sample Player node. SamplePlayer is a [Node] meant for simple sample playback. A library of samples is loaded and played back "as is", without positioning or anything. Set the amount of simultaneous voices that will be used for playback. Return the amount of simultaneous voices that will be used for playback. Play back sample, given it's identifier "name". if "unique" is true, all othere previous samples will be stopped. The voice allocated for playback will be returned. Stop a voice "voice". (see [method play]). Change the mix rate of a voice "voice" to given "hz". Scale the pitch (mix rate) of a voice by a ratio value "ratio". A ratio of 1.0 means the voice is unscaled. Set the volume of a voice, 0db is maximum volume (every about -6db, volume is reduced in half). "db" does in fact go from zero to negative. Set the panning of a voice. Panning goes from -1 (left) to +1 (right). Optionally, if the hardware supports 3D sound, also set depth and height (also in range -1 to +1). Set and enable a filter of a voice, with type "type" (see FILTER_* enum), cutoff (0 to 22khz) frequency and resonance (0+). Set the chorus send level of a voice (0 to 1). For setting chorus parameters, see [AudioServer]. Set the reverb send level and type of a voice (0 to 1). (see REVERB_* enum for type). Return the current mix rate for a given voice. Return the current pitch scale for a given voice. Return the current volume (in db) for a given voice. 0db is maximum volume (every about -6db, volume is reduced in half). "db" does in fact go from zero to negative. Return the current panning for a given voice. Panning goes from -1 (left) to +1 (right). Return the current pan depth for a given voice (not used unless the hardware supports 3D sound) Return the current pan height for a given voice (not used unless the hardware supports 3D sound) Return the current filter type in use (see FILTER_* enum) for a given voice. Return the current filter cutoff for a given voice. Cutoff goes from 0 to 22khz. Return the current filter resonance for a given voice. Resonance goes from 0 up. Return the current chorus send level for a given voice. (0 to 1). Return the current reverb room type for a given voice (see REVERB_* enum). Return the current reverb send level for a given voice. (0 to 1). HighPass filter is used for voice. Filter is disabled for voice. Huge reverb room (cathedral, warehouse). Medium reverb room (street) Small reverb room (house room). Lowpass filter is used for voice. Large reverb room (Theather) Band-Limit filter is used for voice, in this case resonance is the highpass cutoff. Notch filter is used for voice. Bandpass filter is used for voice. Deprecated, will go away. Base class for scroll bars. Scrollbars are a [Range] based [Control], that display a draggable area (the size of the page). Horizontal ([HScrollBar]) and Vertical ([VScrollBar]) versions are available. Base class for separators. Separator is a [Control] used for sepataring other controls. It's purely a visual decoration. Horizontal ([HSeparator]) and Vertical ([VSeparator]) versions are available. To be changed, ignore. To be changed, ignore. Skeleton for characters and animated objects. Skeleton provides a hierachial interface for managing bones, including pose, rest and animation (see [Animation]). Skeleton will support rag doll dynamics in the future. Add a bone, with name "name". [method get_bone_count] will become the bone index. Return the bone index that matches "name" as its name. Return the name of the bone at index "index" Return the bone index which is the parent of the bone at "bone_idx". If -1, then bone has no parent. Note that the parent bone returned will always be less than "bone_idx". Set the bone index "parent_idx" as the parent of the bone at "bone_idx". If -1, then bone has no parent. Note: "parent_idx" must be less than "bone_idx". Return the amount of bones in the skeleton. Return the rest transform for a bone "bone_idx". Set the rest transform for bone "bone_idx" Deprecated soon Deprecated soon Deprecated Soon Clear all the bones in this skeleton. Return the pose transform for bone "bone_idx". Return the pose transform for bone "bone_idx". Base class for all 3D nodes. Spatial is the base for every type of 3D [Node]. It contains a 3D [Transform] which can be set or get as local or global. If a Spatial [Node] has Spatial children, their transforms will be relative to the parent. Set the transform locally, relative to the parent spatial node. Return the local transform, relative to the bone parent. Set the transform globally, relative to worldspace. Return the gloal transform, relative to worldspace. Return the parent [Spatial], or an empty [Object] if no parent exists or parent is not of type [Spatial. Spatial nodes receive this notification when the viewport next to it in ascending hierarchy changed the [Scenario]. Spatial nodes receive this notifacation with their global transform changes. This means that either the current or a parent node changed it's transform. Spotlight Light, such as a reflector spotlight or a latern. A SpotLight light is a type of [Light] node that emits lights in a specific direction, in the shape of a cone. The light is attenuated through the distance and this attenuation can be configured by changing the energy, radius and attenuation parameters of [Light]. TODO: Image of a spotlight. Squirrel script language support. [html a href="http://squirrel-lang.org/"]Squirrel Language[html /a] support for the engine. Allows to load a [Script] from a .sq or .nut source or compiled file, or bundled it into scenes. PhysicsBody for static collision objects. StaticBody implements a static collision [Node], by utilizing a rigid body in the [PhysicsServer]. Static bodies are used for static collision. For more information on physics body nodes, see [PhysicsBody]. Abstraction and base class for stream-based protocols. StreamPeer is an abstration and base class for stream-based protocols (such as TCP or Unix Sockets). It provides an API for sending and receiving data through streams as raw data or strings. Send a chunk of data through the connection, blocking if necesary until the data is done sending. This function returns an [Error] code. Send a chunk of data through the connection, if all the data could not be sent at once, only part of it will. This function returns two values, an [Error] code and an integer, describing how much data was actually sent. Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an [Error] code and a data array. Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an [Error] code, and a data array. Base class for dawing stylized boxes for the UI. StyleBox is [Resource] that provides an abstract base class for dawing stylized boxes for the UI. StyleBoxes are used for dawing the styles of buttons, line edit backgrounds, tree backgrounds, etc. and also for testing a transparency mask for pointer signals. If mask test fails on a StyleBox assigned as mask to a control, clicks and motion signals will go through it to the one below. Test a position in a rectangle, return wether it pases the mask test. Set the default offset "offset" of the margin "margin" (see MARGIN_* enum) for a StyleBox, Controls that draw styleboxes with context inside need to know the margin, so the border of the stylebox is not occluded. Return the default offset of the margin "margin" (see MARGIN_* enum) of a StyleBox, Controls that draw styleboxes with context inside need to know the margin, so the border of the stylebox is not occluded. Return the offset of margin "margin" (see MARGIN_* enum). Return the minimum size that this stylebox can be shrunk to. Return the "offset" of a stylebox, this is a helper function, like writing Point2( style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP) ) Empty stylebox (does not display anything). Empty stylebox (really does not display anything). Image mask based StyleBox, for mask test. This StyleBox is similar to [StyleBoxTexture], but only meant to be used for mask testing. It takes an image and applies stretch rules to determine if the poit clicked is masked or not. Set the image used for mask testing. Pixels (converted to grey) that have a value, less than 0.5 will fail the test. Return the image used for mask testing. (see [method set_imag]). Set the expand property (default). When expanding, the image will use the same rules as [StyleBoxTexture] for expand. If not expanding, the image will always be tested at its original size. Return wether the expand property is set(default). When expanding, the image will use the same rules as [StyleBoxTexture] for expand. If not expanding, the image will always be tested at its original size. Set an expand margin size (from enum MARGIN_*). Parts of the image below the size of the margin (and in the direction of the margin) will not expand. Return the expand margin size (from enum MARGIN_*). Parts of the image below the size of the margin (and in the direction of the margin) will not expand. Vertical version of [ScrollBar], which goes from left (min) to right (max). Vertical version of [Separator]. Vertical version of [Separator]. It is used to separate objects horizontally, though (but it looks vertical!).