Namespace Godot
Classes
- AStar2D
An implementation of the A* algorithm, used to find the shortest path between two vertices on a connected graph in 2D space.
See AStar3D for a more thorough explanation on how to use this class. AStar2D is a wrapper for AStar3D that enforces 2D coordinates.
- AStar2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AStar2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AStar2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AStar3D
A* (A star) is a computer algorithm used in pathfinding and graph traversal, the process of plotting short paths among vertices (points), passing through a given set of edges (segments). It enjoys widespread use due to its performance and accuracy. Godot's A* implementation uses points in 3D space and Euclidean distances by default.
You must add points manually with AddPoint(long, Vector3, float) and create segments manually with ConnectPoints(long, long, bool). Once done, you can test if there is a path between two points with the ArePointsConnected(long, long, bool) function, get a path containing indices by GetIdPath(long, long), or one containing actual coordinates with GetPointPath(long, long).
It is also possible to use non-Euclidean distances. To do so, create a class that extends AStar3D and override methods _ComputeCost(long, long) and _EstimateCost(long, long). Both take two indices and return a length, as is shown in the following example.
public partial class MyAStar : AStar3D { public override float _ComputeCost(long fromId, long toId) { return Mathf.Abs((int)(fromId - toId)); }
public override float _EstimateCost(long fromId, long toId) { return Mathf.Min(0, Mathf.Abs((int)(fromId - toId)) - 1); }
}
_EstimateCost(long, long) should return a lower bound of the distance, i.e.
_estimate_cost(u, v) <= _compute_cost(u, v)
. This serves as a hint to the algorithm because the custom _ComputeCost(long, long) might be computation-heavy. If this is not the case, make _EstimateCost(long, long) return the same value as _ComputeCost(long, long) to provide the algorithm with the most accurate information.If the default _EstimateCost(long, long) and _ComputeCost(long, long) methods are used, or if the supplied _EstimateCost(long, long) method returns a lower bound of the cost, then the paths returned by A* will be the lowest-cost paths. Here, the cost of a path equals the sum of the _ComputeCost(long, long) results of all segments in the path multiplied by the
weight_scale
s of the endpoints of the respective segments. If the default methods are used and theweight_scale
s of all points are set to1.0
, then this equals the sum of Euclidean distances of all segments in the path.
- AStar3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AStar3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AStar3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AStarGrid2D
AStarGrid2D is a variant of AStar2D that is specialized for partial 2D grids. It is simpler to use because it doesn't require you to manually create points and connect them together. This class also supports multiple types of heuristics, modes for diagonal movement, and a jumping mode to speed up calculations.
To use AStarGrid2D, you only need to set the Region of the grid, optionally set the CellSize, and then call the Update() method:
AStarGrid2D astarGrid = new AStarGrid2D(); astarGrid.Region = new Rect2I(0, 0, 32, 32); astarGrid.CellSize = new Vector2I(16, 16); astarGrid.Update(); GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // prints (0, 0), (1, 1), (2, 2), (3, 3), (3, 4) GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // prints (0, 0), (16, 16), (32, 32), (48, 48), (48, 64)
To remove a point from the pathfinding grid, it must be set as "solid" with SetPointSolid(Vector2I, bool).
- AStarGrid2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AStarGrid2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AStarGrid2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AcceptDialog
The default use of AcceptDialog is to allow it to only be accepted or closed, with the same result. However, the Confirmed and Canceled signals allow to make the two actions different, and the AddButton(string, bool, string) method allows to add custom buttons and actions.
- AcceptDialog.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AcceptDialog.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AcceptDialog.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AesContext
This class holds the context information required for encryption and decryption operations with AES (Advanced Encryption Standard). Both AES-ECB and AES-CBC modes are supported.
using Godot; using System.Diagnostics;
public partial class MyNode : Node { private AesContext _aes = new AesContext();
public override void _Ready() { string key = "My secret key!!!"; // Key must be either 16 or 32 bytes. string data = "My secret text!!"; // Data size must be multiple of 16 bytes, apply padding if needed. // Encrypt ECB _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer()); byte[] encrypted = _aes.Update(data.ToUtf8Buffer()); _aes.Finish(); // Decrypt ECB _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer()); byte[] decrypted = _aes.Update(encrypted); _aes.Finish(); // Check ECB Debug.Assert(decrypted == data.ToUtf8Buffer()); string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes. // Encrypt CBC _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer()); encrypted = _aes.Update(data.ToUtf8Buffer()); _aes.Finish(); // Decrypt CBC _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer()); decrypted = _aes.Update(encrypted); _aes.Finish(); // Check CBC Debug.Assert(decrypted == data.ToUtf8Buffer()); }
}
- AesContext.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AesContext.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AesContext.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimatableBody2D
An animatable 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, AnimationMixers (with CallbackModeProcess set to Physics), and RemoteTransform2D.
When AnimatableBody2D is moved, its linear and angular velocity are estimated and used to affect other physics bodies in its path. This makes it useful for moving platforms, doors, and other moving objects.
- AnimatableBody2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimatableBody2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimatableBody2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimatableBody3D
An animatable 3D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, AnimationMixers (with CallbackModeProcess set to Physics), and RemoteTransform3D.
When AnimatableBody3D is moved, its linear and angular velocity are estimated and used to affect other physics bodies in its path. This makes it useful for moving platforms, doors, and other moving objects.
- AnimatableBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimatableBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimatableBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimatedSprite2D
AnimatedSprite2D is similar to the Sprite2D node, except it carries multiple textures as animation frames. Animations are created using a SpriteFrames resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The SpriteFrames resource can be configured in the editor via the SpriteFrames bottom panel.
- AnimatedSprite2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimatedSprite2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimatedSprite2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimatedSprite3D
AnimatedSprite3D is similar to the Sprite3D node, except it carries multiple textures as animation SpriteFrames. Animations are created using a SpriteFrames resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The SpriteFrames resource can be configured in the editor via the SpriteFrames bottom panel.
- AnimatedSprite3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimatedSprite3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimatedSprite3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimatedTexture
AnimatedTexture is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike AnimationPlayer or AnimatedSprite2D, it isn't a Node, but has the advantage of being usable anywhere a Texture2D resource can be used, e.g. in a TileSet.
The playback of the animation is controlled by the SpeedScale property, as well as each frame's duration (see SetFrameDuration(int, float)). The animation loops, i.e. it will restart at frame 0 automatically after playing the last frame.
AnimatedTexture currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one.
Note: AnimatedTexture doesn't support using AtlasTextures. Each frame needs to be a separate Texture2D.
Warning: The current implementation is not efficient for the modern renderers.
Deprecated. This class is deprecated, and might be removed in a future release.
- AnimatedTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimatedTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimatedTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Animation
This resource holds data that can be used to animate anything 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 (events) to the track.
// This creates an animation that makes the node "Enemy" move to the right by // 100 pixels in 2.0 seconds. var animation = new Animation(); int trackIndex = animation.AddTrack(Animation.TrackType.Value); animation.TrackSetPath(trackIndex, "Enemy:position:x"); animation.TrackInsertKey(trackIndex, 0.0f, 0); animation.TrackInsertKey(trackIndex, 2.0f, 100); animation.Length = 2.0f;
Animations are just data containers, and must be added to nodes such as an AnimationPlayer to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check Animation.TrackType to see available types.
Note: For 3D position/rotation/scale, using the dedicated Position3D, Rotation3D and Scale3D track types instead of Value is recommended for performance reasons.
- Animation.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Animation.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Animation.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationLibrary
An animation library stores a set of animations accessible through StringName keys, for use with AnimationPlayer nodes.
- AnimationLibrary.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationLibrary.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationLibrary.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationMixer
Base class for AnimationPlayer and AnimationTree to manage animation lists. It also has general properties and methods for playback and blending.
After instantiating the playback information data within the extended class, the blending is processed by the AnimationMixer.
- AnimationMixer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationMixer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationMixer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNode
Base resource for AnimationTree nodes. In general, it's not used directly, but you can create custom ones with custom blending formulas.
Inherit this when creating animation nodes mainly for use in AnimationNodeBlendTree, otherwise AnimationRootNode should be used instead.
- AnimationNode.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNode.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNode.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeAdd2
A resource to add to an AnimationNodeBlendTree. Blends two animations additively based on the amount value.
If the amount is greater than
1.0
, the animation connected to "in" port is blended with the amplified animation connected to "add" port.If the amount is less than
0.0
, the animation connected to "in" port is blended with the inverted animation connected to "add" port.
- AnimationNodeAdd2.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeAdd2.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeAdd2.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeAdd3
A resource to add to an AnimationNodeBlendTree. Blends two animations out of three additively out of three based on the amount value.
This animation node has three inputs:
- The base animation to add to
- A "-add" animation to blend with when the blend amount is negative
- A "+add" animation to blend with when the blend amount is positive
If the absolute value of the amount is greater than
1.0
, the animation connected to "in" port is blended with the amplified animation connected to "-add"/"+add" port.
- AnimationNodeAdd3.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeAdd3.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeAdd3.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeAnimation
A resource to add to an AnimationNodeBlendTree. Only has one output port using the Animation property. Used as an input for AnimationNodes that blend animations together.
- AnimationNodeAnimation.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeAnimation.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeAnimation.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeBlend2
A resource to add to an AnimationNodeBlendTree. Blends two animations linearly based on the amount value.
In general, the blend value should be in the
[0.0, 1.0]
range. Values outside of this range can blend amplified or inverted animations, however, AnimationNodeAdd2 works better for this purpose.
- AnimationNodeBlend2.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeBlend2.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeBlend2.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeBlend3
A resource to add to an AnimationNodeBlendTree. Blends two animations out of three linearly out of three based on the amount value.
This animation node has three inputs:
- The base animation to blend with
- A "-blend" animation to blend with when the blend amount is negative value
- A "+blend" animation to blend with when the blend amount is positive value
In general, the blend value should be in the
[-1.0, 1.0]
range. Values outside of this range can blend amplified animations, however, AnimationNodeAdd3 works better for this purpose.
- AnimationNodeBlend3.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeBlend3.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeBlend3.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeBlendSpace1D
A resource used by AnimationNodeBlendTree.
AnimationNodeBlendSpace1D represents a virtual axis on which any type of AnimationRootNodes can be added using AddBlendPoint(AnimationRootNode, float, int). Outputs the linear blend of the two AnimationRootNodes adjacent to the current value.
You can set the extents of the axis with MinSpace and MaxSpace.
- AnimationNodeBlendSpace1D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeBlendSpace1D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeBlendSpace1D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeBlendSpace2D
A resource used by AnimationNodeBlendTree.
AnimationNodeBlendSpace1D represents a virtual 2D space on which AnimationRootNodes are placed. Outputs the linear blend of the three adjacent animations using a Vector2 weight. Adjacent in this context means the three AnimationRootNodes making up the triangle that contains the current value.
You can add vertices to the blend space with AddBlendPoint(AnimationRootNode, Vector2, int) and automatically triangulate it by setting AutoTriangles to
true
. Otherwise, use AddTriangle(int, int, int, int) and RemoveTriangle(int) to triangulate the blend space by hand.
- AnimationNodeBlendSpace2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeBlendSpace2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeBlendSpace2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeBlendTree
This animation node may contain a sub-tree of any other type animation nodes, such as AnimationNodeTransition, AnimationNodeBlend2, AnimationNodeBlend3, AnimationNodeOneShot, etc. This is one of the most commonly used animation node roots.
An AnimationNodeOutput node named
output
is created by default.
- AnimationNodeBlendTree.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeBlendTree.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeBlendTree.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeOneShot
A resource to add to an AnimationNodeBlendTree. This animation node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
After setting the request and changing the animation playback, the one-shot node automatically clears the request on the next process frame by setting its
request
value to None.// Play child animation connected to "shot" port. animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
// Abort child animation connected to "shot" port. animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
// Abort child animation with fading out connected to "shot" port. animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.FadeOut);
// Get current state (read-only). animationTree.Get("parameters/OneShot/active");
// Get current internal state (read-only). animationTree.Get("parameters/OneShot/internal_active");
- AnimationNodeOneShot.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeOneShot.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeOneShot.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeOutput
A node created automatically in an AnimationNodeBlendTree that outputs the final animation.
- AnimationNodeOutput.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeOutput.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeOutput.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeStateMachine
Contains multiple AnimationRootNodes representing animation states, connected in a graph. State transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the AnimationNodeStateMachinePlayback object from the AnimationTree node to control it programmatically.
Example:
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback; stateMachine.Travel("some_state");
- AnimationNodeStateMachine.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeStateMachine.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeStateMachine.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeStateMachinePlayback
Allows control of AnimationTree state machines created with AnimationNodeStateMachine. Retrieve with
$AnimationTree.get("parameters/playback")
.Example:
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback").As<AnimationNodeStateMachinePlayback>(); stateMachine.Travel("some_state");
- AnimationNodeStateMachinePlayback.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeStateMachinePlayback.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeStateMachinePlayback.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeStateMachineTransition
The path generated when using Travel(StringName, bool) is limited to the nodes connected by AnimationNodeStateMachineTransition.
You can set the timing and conditions of the transition in detail.
- AnimationNodeStateMachineTransition.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeStateMachineTransition.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeStateMachineTransition.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeSub2
A resource to add to an AnimationNodeBlendTree. Blends two animations subtractively based on the amount value.
This animation node is usually used for pre-calculation to cancel out any extra poses from the animation for the "add" animation source in AnimationNodeAdd2 or AnimationNodeAdd3.
In general, the blend value should be in the
[0.0, 1.0]
range, but values outside of this range can be used for amplified or inverted animations.Note: This calculation is different from using a negative value in AnimationNodeAdd2, since the transformation matrices do not satisfy the commutative law. AnimationNodeSub2 multiplies the transformation matrix of the inverted animation from the left side, while negative AnimationNodeAdd2 multiplies it from the right side.
- AnimationNodeSub2.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeSub2.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeSub2.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeSync
An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an AnimationTree.
- AnimationNodeSync.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeSync.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeSync.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeTimeScale
Allows to scale the speed of the animation (or reverse it) in any child AnimationNodes. Setting it to
0.0
will pause the animation.
- AnimationNodeTimeScale.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeTimeScale.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeTimeScale.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeTimeSeek
This animation node can be used to cause a seek command to happen to any sub-children of the animation graph. Use to play an Animation from the start or a certain playback position inside the AnimationNodeBlendTree.
After setting the time and changing the animation playback, the time seek node automatically goes into sleep mode on the next process frame by setting its
seek_request
value to-1.0
.// Play child animation from the start. animationTree.Set("parameters/TimeSeek/seek_request", 0.0);
// Play child animation from 12 second timestamp. animationTree.Set("parameters/TimeSeek/seek_request", 12.0);
- AnimationNodeTimeSeek.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeTimeSeek.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeTimeSeek.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationNodeTransition
Simple state machine for cases which don't require a more advanced AnimationNodeStateMachine. Animations can be connected to the inputs and transition times can be specified.
After setting the request and changing the animation playback, the transition node automatically clears the request on the next process frame by setting its
transition_request
value to empty.Note: When using a cross-fade,
current_state
andcurrent_index
change to the next state immediately after the cross-fade begins.// Play child animation connected to "state_2" port. animationTree.Set("parameters/Transition/transition_request", "state_2");
// Get current state name (read-only). animationTree.Get("parameters/Transition/current_state");
// Get current state index (read-only). animationTree.Get("parameters/Transition/current_index");
- AnimationNodeTransition.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationNodeTransition.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationNodeTransition.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationPlayer
An animation player is used for general-purpose playback of animations. It contains a dictionary of AnimationLibrary resources and custom blend times between animation transitions.
Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example
"movement/run"
. If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library.AnimationPlayer is better-suited than Tween for more complex animations, for example ones with non-trivial timings. It can also be used over Tween if the animation track editor is more convenient than doing it in code.
Updating the target properties of animations occurs at the process frame.
- AnimationPlayer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationPlayer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationPlayer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationRootNode
AnimationRootNode is a base class for AnimationNodes that hold a complete animation. A complete animation refers to the output of an AnimationNodeOutput in an AnimationNodeBlendTree or the output of another AnimationRootNode. Used for TreeRoot or in other AnimationRootNodes.
Examples of built-in root nodes include AnimationNodeBlendTree (allows blending nodes between each other using various modes), AnimationNodeStateMachine (allows to configure blending and transitions between nodes using a state machine pattern), AnimationNodeBlendSpace2D (allows linear blending between threeAnimationNodes), AnimationNodeBlendSpace1D (allows linear blending only between twoAnimationNodes).
- AnimationRootNode.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationRootNode.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationRootNode.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AnimationTree
A node used for advanced animation transitions in an AnimationPlayer.
Note: When linked with an AnimationPlayer, several properties and methods of the corresponding AnimationPlayer will not function as expected. Playback and transitions should be handled using only the AnimationTree and its constituent AnimationNode(s). The AnimationPlayer node should be used solely for adding, deleting, and editing animations.
- AnimationTree.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AnimationTree.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AnimationTree.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Area2D
Area2D is a region of 2D space defined by one or multiple CollisionShape2D or CollisionPolygon2D child nodes. It detects when other CollisionObject2Ds enter or exit it, and it also keeps track of which collision objects haven't exited it yet (i.e. which one are overlapping it).
This node can also locally alter or override physics parameters (gravity, damping) and route audio to custom audio buses.
- Area2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Area2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Area2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Area3D
Area3D is a region of 3D space defined by one or multiple CollisionShape3D or CollisionPolygon3D child nodes. It detects when other CollisionObject3Ds enter or exit it, and it also keeps track of which collision objects haven't exited it yet (i.e. which one are overlapping it).
This node can also locally alter or override physics parameters (gravity, damping) and route audio to custom audio buses.
Warning: Using a ConcavePolygonShape3D inside a CollisionShape3D child of this node (created e.g. by using the Create Trimesh Collision Sibling option in the Mesh menu that appears when selecting a MeshInstance3D node) may give unexpected results, since this collision shape is hollow. If this is not desired, it has to be split into multiple ConvexPolygonShape3Ds or primitive shapes like BoxShape3D, or in some cases it may be replaceable by a CollisionPolygon3D.
- Area3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Area3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Area3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ArrayMesh
The ArrayMesh is used to construct a Mesh by specifying the attributes as arrays.
The most basic example is the creation of a single triangle:
var vertices = new Vector3[] { new Vector3(0, 1, 0), new Vector3(1, 0, 0), new Vector3(0, 0, 1), };
// Initialize the ArrayMesh. var arrMesh = new ArrayMesh(); var arrays = new Godot.Collections.Array(); arrays.Resize((int)Mesh.ArrayType.Max); arrays[(int)Mesh.ArrayType.Vertex] = vertices;
// Create the Mesh. arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays); var m = new MeshInstance3D(); m.Mesh = arrMesh;
The MeshInstance3D is ready to be added to the SceneTree to be shown.
See also ImmediateMesh, MeshDataTool and SurfaceTool for procedural geometry generation.
Note: Godot uses clockwise winding order for front faces of triangle primitive modes.
- ArrayMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ArrayMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ArrayMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ArrayOccluder3D
ArrayOccluder3D stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to ArrayMesh, but for occluders.
See OccluderInstance3D's documentation for instructions on setting up occlusion culling.
- ArrayOccluder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ArrayOccluder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ArrayOccluder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AspectRatioContainer
A container type that arranges its child controls in a way that preserves their proportions automatically when the container is resized. Useful when a container has a dynamic size and the child nodes must adjust their sizes accordingly without losing their aspect ratios.
- AspectRatioContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AspectRatioContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AspectRatioContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AssemblyHasScriptsAttribute
Attribute that determines that the assembly contains Godot scripts and, optionally, the collection of types that implement scripts; otherwise, retrieving the types requires lookup.
- AtlasTexture
Texture2D resource that draws only part of its Atlas texture, as defined by the Region. An additional Margin can also be set, which is useful for small adjustments.
Multiple AtlasTexture resources can be cropped from the same Atlas. Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls.
Note: AtlasTexture cannot be used in an AnimatedTexture, and may not tile properly in nodes such as TextureRect, when inside other AtlasTexture resources.
- AtlasTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AtlasTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AtlasTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioBusLayout
Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See AudioServer for usage.
- AudioBusLayout.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioBusLayout.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioBusLayout.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffect
Base resource for audio bus. Applies an audio effect on the bus that the resource is applied on.
- AudioEffect.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffect.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffect.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectAmplify
Increases or decreases the volume being routed through the audio bus.
- AudioEffectAmplify.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectAmplify.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectAmplify.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectBandLimitFilter
Limits the frequencies in a range around the CutoffHz and allows frequencies outside of this range to pass.
- AudioEffectBandLimitFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectBandLimitFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectBandLimitFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectBandPassFilter
Attenuates the frequencies inside of a range around the CutoffHz and cuts frequencies outside of this band.
- AudioEffectBandPassFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectBandPassFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectBandPassFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectCapture
AudioEffectCapture is an AudioEffect which copies all audio frames from the attached audio effect bus into its internal ring buffer.
Application code should consume these audio frames from this ring buffer using GetBuffer(int) and process it as needed, for example to capture data from an AudioStreamMicrophone, implement application-defined effects, or to transmit audio over the network. When capturing audio data from a microphone, the format of the samples will be stereo 32-bit floating point PCM.
Note:
ProjectSettings.audio/driver/enable_input
must betrue
for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
- AudioEffectCapture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectCapture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectCapture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectChorus
Adds a chorus audio effect. The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter.
- AudioEffectChorus.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectChorus.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectChorus.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectCompressor
Dynamic range compressor reduces the level of the sound when the amplitude goes over a certain threshold in Decibels. One of the main uses of a compressor is to increase the dynamic range by clipping as little as possible (when sound goes over 0dB).
Compressor has many uses in the mix:
- In the Master bus to compress the whole output (although an AudioEffectLimiter is probably better).
- In voice channels to ensure they sound as balanced as possible.
- Sidechained. This can reduce the sound level sidechained with another audio bus for threshold detection. This technique is common in video game mixing to the level of music and SFX while voices are being heard.
- Accentuates transients by using a wider attack, making effects sound more punchy.
- AudioEffectCompressor.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectCompressor.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectCompressor.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectDelay
Plays input signal back after a period of time. The delayed signal may be played back multiple times to create the sound of a repeating, decaying echo. Delay effects range from a subtle echo effect to a pronounced blending of previous sounds with new sounds.
- AudioEffectDelay.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectDelay.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectDelay.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectDistortion
Different types are available: clip, tan, lo-fi (bit crushing), overdrive, or waveshape.
By distorting the waveform the frequency content changes, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
- AudioEffectDistortion.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectDistortion.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectDistortion.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectEQ
AudioEffectEQ gives you control over frequencies. Use it to compensate for existing deficiencies in audio. AudioEffectEQs are useful on the Master bus to completely master a mix and give it more character. They are also useful when a game is run on a mobile device, to adjust the mix to that kind of speakers (it can be added but disabled when headphones are plugged).
- AudioEffectEQ.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectEQ.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectEQ.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectEQ10
Frequency bands:
Band 1: 31 Hz
Band 2: 62 Hz
Band 3: 125 Hz
Band 4: 250 Hz
Band 5: 500 Hz
Band 6: 1000 Hz
Band 7: 2000 Hz
Band 8: 4000 Hz
Band 9: 8000 Hz
Band 10: 16000 Hz
See also AudioEffectEQ, AudioEffectEQ6, AudioEffectEQ21.
- AudioEffectEQ10.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectEQ10.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectEQ10.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectEQ21
Frequency bands:
Band 1: 22 Hz
Band 2: 32 Hz
Band 3: 44 Hz
Band 4: 63 Hz
Band 5: 90 Hz
Band 6: 125 Hz
Band 7: 175 Hz
Band 8: 250 Hz
Band 9: 350 Hz
Band 10: 500 Hz
Band 11: 700 Hz
Band 12: 1000 Hz
Band 13: 1400 Hz
Band 14: 2000 Hz
Band 15: 2800 Hz
Band 16: 4000 Hz
Band 17: 5600 Hz
Band 18: 8000 Hz
Band 19: 11000 Hz
Band 20: 16000 Hz
Band 21: 22000 Hz
See also AudioEffectEQ, AudioEffectEQ6, AudioEffectEQ10.
- AudioEffectEQ21.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectEQ21.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectEQ21.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectEQ6
Frequency bands:
Band 1: 32 Hz
Band 2: 100 Hz
Band 3: 320 Hz
Band 4: 1000 Hz
Band 5: 3200 Hz
Band 6: 10000 Hz
See also AudioEffectEQ, AudioEffectEQ10, AudioEffectEQ21.
- AudioEffectEQ6.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectEQ6.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectEQ6.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectFilter
Allows frequencies other than the CutoffHz to pass.
- AudioEffectFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectHighPassFilter
Cuts frequencies lower than the CutoffHz and allows higher frequencies to pass.
- AudioEffectHighPassFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectHighPassFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectHighPassFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectHighShelfFilter
Reduces all frequencies above the CutoffHz.
- AudioEffectHighShelfFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectHighShelfFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectHighShelfFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectLimiter
A limiter is similar to a compressor, but it's less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master bus is always recommended to reduce the effects of clipping.
Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded.
- AudioEffectLimiter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectLimiter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectLimiter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectLowPassFilter
Cuts frequencies higher than the CutoffHz and allows lower frequencies to pass.
- AudioEffectLowPassFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectLowPassFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectLowPassFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectLowShelfFilter
Reduces all frequencies below the CutoffHz.
- AudioEffectLowShelfFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectLowShelfFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectLowShelfFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectNotchFilter
Attenuates frequencies in a narrow band around the CutoffHz and cuts frequencies outside of this range.
- AudioEffectNotchFilter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectNotchFilter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectNotchFilter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectPanner
Determines how much of an audio signal is sent to the left and right buses.
- AudioEffectPanner.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectPanner.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectPanner.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectPhaser
Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a low-frequency oscillator.
- AudioEffectPhaser.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectPhaser.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectPhaser.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectPitchShift
Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients.
- AudioEffectPitchShift.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectPitchShift.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectPitchShift.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectRecord
Allows the user to record the sound from an audio bus. This can include all audio output by Godot when used on the "Master" audio bus.
Can be used (with an AudioStreamMicrophone) to record from a microphone.
It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
- AudioEffectRecord.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectRecord.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectRecord.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectReverb
Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.
- AudioEffectReverb.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectReverb.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectReverb.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectSpectrumAnalyzer
This audio effect does not affect sound output, but can be used for real-time audio visualizations.
See also AudioStreamGenerator for procedurally generating sounds.
- AudioEffectSpectrumAnalyzer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectSpectrumAnalyzer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectSpectrumAnalyzer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectSpectrumAnalyzerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectSpectrumAnalyzerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectSpectrumAnalyzerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioEffectStereoEnhance
An audio effect that can be used to adjust the intensity of stereo panning.
- AudioEffectStereoEnhance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioEffectStereoEnhance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioEffectStereoEnhance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioListener2D
Once added to the scene tree and enabled using MakeCurrent(), this node will override the location sounds are heard from. Only one AudioListener2D can be current. Using MakeCurrent() will disable the previous AudioListener2D.
If there is no active AudioListener2D in the current Viewport, center of the screen will be used as a hearing point for the audio. AudioListener2D needs to be inside SceneTree to function.
- AudioListener2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioListener2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioListener2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioListener3D
Once added to the scene tree and enabled using MakeCurrent(), this node will override the location sounds are heard from. This can be used to listen from a location different from the Camera3D.
- AudioListener3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioListener3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioListener3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioServer
AudioServer is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
- AudioServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioServerInstance
AudioServer is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
- AudioServerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioServerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioServerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStream
Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via AudioStreamWav) and Ogg (via AudioStreamOggVorbis) file formats.
- AudioStream.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStream.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStream.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamGenerator
AudioStreamGenerator is a type of audio stream that does not play back sounds on its own; instead, it expects a script to generate audio data for it. See also AudioStreamGeneratorPlayback.
Here's a sample on how to use it to generate a sine wave:
[Export] public AudioStreamPlayer Player { get; set; }
private AudioStreamGeneratorPlayback _playback; // Will hold the AudioStreamGeneratorPlayback. private float _sampleHz; private float _pulseHz = 440.0f; // The frequency of the sound wave.
public override void _Ready() { if (Player.Stream is AudioStreamGenerator generator) // Type as a generator to access MixRate. { _sampleHz = generator.MixRate; Player.Play(); _playback = (AudioStreamGeneratorPlayback)Player.GetStreamPlayback(); FillBuffer(); } }
public void FillBuffer() { double phase = 0.0; float increment = _pulseHz / _sampleHz; int framesAvailable = _playback.GetFramesAvailable();
for (int i = 0; i < framesAvailable; i++) { _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf.Tau)); phase = Mathf.PosMod(phase + increment, 1.0); }
}
In the example above, the "AudioStreamPlayer" node must use an AudioStreamGenerator as its stream. The
fill_buffer
function provides audio data for approximating a sine wave.See also AudioEffectSpectrumAnalyzer for performing real-time audio spectrum analysis.
Note: Due to performance constraints, this class is best used from C# or from a compiled language via GDExtension. If you still want to use this class from GDScript, consider using a lower MixRate such as 11,025 Hz or 22,050 Hz.
- AudioStreamGenerator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamGenerator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamGenerator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamGeneratorPlayback
This class is meant to be used with AudioStreamGenerator to play back the generated audio in real-time.
- AudioStreamGeneratorPlayback.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamGeneratorPlayback.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamGeneratorPlayback.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamMP3
MP3 audio stream driver. See Data if you want to load an MP3 file at run-time.
- AudioStreamMP3.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamMP3.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamMP3.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamMicrophone
When used directly in an AudioStreamPlayer node, AudioStreamMicrophone plays back microphone input in real-time. This can be used in conjunction with AudioEffectCapture to process the data or save it.
Note:
ProjectSettings.audio/driver/enable_input
must betrue
for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
- AudioStreamMicrophone.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamMicrophone.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamMicrophone.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamOggVorbis
The AudioStreamOggVorbis class is a specialized AudioStream for handling Ogg Vorbis file formats. It offers functionality for loading and playing back Ogg Vorbis files, as well as managing looping and other playback properties. This class is part of the audio stream system, which also supports WAV files through the AudioStreamWav class.
- AudioStreamOggVorbis.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamOggVorbis.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamOggVorbis.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlayback
Can play, loop, pause a scroll through audio. See AudioStream and AudioStreamOggVorbis for usage.
- AudioStreamPlayback.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlayback.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlayback.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlaybackOggVorbis.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlaybackOggVorbis.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlaybackOggVorbis.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlaybackPolyphonic
Playback instance for AudioStreamPolyphonic. After setting the
stream
property of AudioStreamPlayer, AudioStreamPlayer2D, or AudioStreamPlayer3D, the playback instance can be obtained by calling GetStreamPlayback(), GetStreamPlayback() or GetStreamPlayback() methods.
- AudioStreamPlaybackPolyphonic.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlaybackPolyphonic.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlaybackPolyphonic.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlaybackResampled.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlaybackResampled.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlaybackResampled.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlayer
Plays an audio stream non-positionally.
To play audio positionally, use AudioStreamPlayer2D or AudioStreamPlayer3D instead of AudioStreamPlayer.
- AudioStreamPlayer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlayer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlayer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlayer2D
Plays audio that is attenuated with distance to the listener.
By default, audio is heard from the screen center. This can be changed by adding an AudioListener2D node to the scene and enabling it by calling MakeCurrent() on it.
See also AudioStreamPlayer to play a sound non-positionally.
Note: Hiding an AudioStreamPlayer2D node does not disable its audio output. To temporarily disable an AudioStreamPlayer2D's audio output, set VolumeDb to a very low value like
-100
(which isn't audible to human hearing).
- AudioStreamPlayer2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlayer2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlayer2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPlayer3D
Plays audio with positional sound effects, based on the relative position of the audio listener. Positional effects include distance attenuation, directionality, and the Doppler effect. For greater realism, a low-pass filter is applied to distant sounds. This can be disabled by setting AttenuationFilterCutoffHz to
20500
.By default, audio is heard from the camera position. This can be changed by adding an AudioListener3D node to the scene and enabling it by calling MakeCurrent() on it.
See also AudioStreamPlayer to play a sound non-positionally.
Note: Hiding an AudioStreamPlayer3D node does not disable its audio output. To temporarily disable an AudioStreamPlayer3D's audio output, set VolumeDb to a very low value like
-100
(which isn't audible to human hearing).
- AudioStreamPlayer3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPlayer3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPlayer3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamPolyphonic
AudioStream that lets the user play custom streams at any time from code, simultaneously using a single player.
Playback control is done via the AudioStreamPlaybackPolyphonic instance set inside the player, which can be obtained via GetStreamPlayback(), GetStreamPlayback() or GetStreamPlayback() methods. Obtaining the playback instance is only valid after the
stream
property is set as an AudioStreamPolyphonic in those players.
- AudioStreamPolyphonic.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamPolyphonic.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamPolyphonic.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamRandomizer
Picks a random AudioStream from the pool, depending on the playback mode, and applies random pitch shifting and volume shifting during playback.
- AudioStreamRandomizer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamRandomizer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamRandomizer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- AudioStreamWav
AudioStreamWAV stores sound samples loaded from WAV files. To play the stored sound, use an AudioStreamPlayer (for non-positional audio) or AudioStreamPlayer2D/AudioStreamPlayer3D (for positional audio). The sound can be looped.
This class can also be used to store dynamically-generated PCM audio data. See also AudioStreamGenerator for procedural audio generation.
- AudioStreamWav.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- AudioStreamWav.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- AudioStreamWav.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BackBufferCopy
Node for back-buffering the currently-displayed screen. The region defined in the BackBufferCopy node is buffered with the content of the screen it covers, or the entire screen according to the CopyMode. It can be accessed in shader scripts using the screen texture (i.e. a uniform sampler with
hint_screen_texture
).Note: Since this node inherits from Node2D (and not Control), anchors and margins won't apply to child Control-derived nodes. This can be problematic when resizing the window. To avoid this, add Control-derived nodes as siblings to the BackBufferCopy node instead of adding them as children.
- BackBufferCopy.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BackBufferCopy.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BackBufferCopy.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BaseButton
BaseButton is an abstract base class for GUI buttons. It doesn't display anything by itself.
- BaseButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BaseButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BaseButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BaseMaterial3D
This class serves as a default material with a wide variety of rendering features and properties without the need to write shader code. See the tutorial below for details.
- BaseMaterial3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BaseMaterial3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BaseMaterial3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Bitmap
A two-dimensional array of boolean values, can be used to efficiently store a binary matrix (every matrix element takes only one bit) and query the values using natural cartesian coordinates.
- Bitmap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Bitmap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Bitmap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Bone2D
A hierarchy of Bone2Ds can be bound to a Skeleton2D to control and animate other Node2D nodes.
You can use Bone2D and Skeleton2D nodes to animate 2D meshes created with the Polygon2D UV editor.
Each bone has a Rest transform that you can reset to with ApplyRest(). These rest poses are relative to the bone's parent.
If in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses.
- Bone2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Bone2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Bone2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BoneAttachment3D
This node selects a bone in a Skeleton3D and attaches to it. This means that the BoneAttachment3D node will either dynamically copy or override the 3D transform of the selected bone.
- BoneAttachment3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BoneAttachment3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BoneAttachment3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BoneMap
This class contains a dictionary that uses a list of bone names in SkeletonProfile as key names.
By assigning the actual Skeleton3D bone name as the key value, it maps the Skeleton3D to the SkeletonProfile.
- BoneMap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BoneMap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BoneMap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BoxContainer
A container that arranges its child controls horizontally or vertically, rearranging them automatically when their minimum size changes.
- BoxContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BoxContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BoxContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BoxMesh
Generate an axis-aligned box PrimitiveMesh.
The box's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to
Vector3(3, 2, 1)
. This is equivalent to addingUV *= vec2(3.0, 2.0)
in a vertex shader.Note: When using a large textured BoxMesh (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase SubdivideDepth, SubdivideHeight and SubdivideWidth until you no longer notice UV jittering.
- BoxMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BoxMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BoxMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BoxOccluder3D
BoxOccluder3D stores a cuboid shape that can be used by the engine's occlusion culling system.
See OccluderInstance3D's documentation for instructions on setting up occlusion culling.
- BoxOccluder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BoxOccluder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BoxOccluder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- BoxShape3D
A 3D box shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D.
Performance: BoxShape3D is fast to check collisions against. It is faster than CapsuleShape3D and CylinderShape3D, but slower than SphereShape3D.
- BoxShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- BoxShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- BoxShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Button
Button is the standard themed button. It can contain text and an icon, and it will display them according to the current Theme.
Example of creating a button and assigning an action when pressed by code:
public override void _Ready() { var button = new Button(); button.Text = "Click me"; button.Pressed += ButtonPressed; AddChild(button); }
private void ButtonPressed() { GD.Print("Hello world!"); }
See also BaseButton which contains common properties and methods associated with this node.
Note: Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use TouchScreenButton for buttons that trigger gameplay movement or actions.
- Button.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Button.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Button.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ButtonGroup
A group of BaseButton-derived buttons. The buttons in a ButtonGroup are treated like radio buttons: No more than one button can be pressed at a time. Some types of buttons (such as CheckBox) may have a special appearance in this state.
Every member of a ButtonGroup should have ToggleMode set to
true
.
- ButtonGroup.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ButtonGroup.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ButtonGroup.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CSharpScript
This class represents a C# script. It is the C# equivalent of the GDScript class and is only available in Mono-enabled Godot builds.
See also GodotSharp.
- CSharpScript.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CSharpScript.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CSharpScript.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CallbackTweener
CallbackTweener is used to call a method in a tweening sequence. See TweenCallback(Callable) for more usage information.
The tweener will finish automatically if the callback's target object is freed.
Note: TweenCallback(Callable) is the only correct way to create CallbackTweener. Any CallbackTweener created manually will not function correctly.
- CallbackTweener.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CallbackTweener.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CallbackTweener.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Camera2D
Camera node for 2D scenes. It forces the screen (current layer) to scroll following this node. This makes it easier (and faster) to program scrollable scenes than manually changing the position of CanvasItem-based nodes.
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.
This node is intended to be a simple helper to get things going quickly, but more functionality may be desired to change how the camera works. To make your own custom camera node, inherit it from Node2D and change the transform of the canvas by setting CanvasTransform in Viewport (you can obtain the current Viewport by using GetViewport()).
Note that the Camera2D node's
position
doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use GetScreenCenterPosition() to get the real position.
- Camera2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Camera2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Camera2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Camera3D
Camera3D 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 3D display capabilities to a Viewport, and, without one, a scene registered in that Viewport (or higher viewports) can't be displayed.
- Camera3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Camera3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Camera3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraAttributes
Controls camera-specific attributes such as depth of field and exposure override.
When used in a WorldEnvironment it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own CameraAttributes, including the editor camera. When used in a Camera3D it will override any CameraAttributes set in the WorldEnvironment. When used in VoxelGI or LightmapGI, only the exposure settings will be used.
See also Environment for general 3D environment settings.
This is a pure virtual class that is inherited by CameraAttributesPhysical and CameraAttributesPractical.
- CameraAttributes.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraAttributes.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraAttributes.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraAttributesPhysical
CameraAttributesPhysical is used to set rendering settings based on a physically-based camera's settings. It is responsible for exposure, auto-exposure, and depth of field.
When used in a WorldEnvironment it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own CameraAttributes, including the editor camera. When used in a Camera3D it will override any CameraAttributes set in the WorldEnvironment and will override the Camera3Ds Far, Near, Fov, and KeepAspect properties. When used in VoxelGI or LightmapGI, only the exposure settings will be used.
The default settings are intended for use in an outdoor environment, tips for settings for use in an indoor environment can be found in each setting's documentation.
Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility.
- CameraAttributesPhysical.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraAttributesPhysical.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraAttributesPhysical.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraAttributesPractical
Controls camera-specific attributes such as auto-exposure, depth of field, and exposure override.
When used in a WorldEnvironment it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own CameraAttributes, including the editor camera. When used in a Camera3D it will override any CameraAttributes set in the WorldEnvironment. When used in VoxelGI or LightmapGI, only the exposure settings will be used.
- CameraAttributesPractical.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraAttributesPractical.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraAttributesPractical.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraFeed
A camera feed gives you access to a single physical camera attached to your device. When enabled, Godot will start capturing frames from the camera which can then be used. See also CameraServer.
Note: Many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background.
- CameraFeed.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraFeed.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraFeed.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraServer
The CameraServer keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
It is notably used to provide AR modules with a video feed from the camera.
Note: This class is currently only implemented on macOS and iOS. On other platforms, no CameraFeeds will be available.
- CameraServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraServerInstance
The CameraServer keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
It is notably used to provide AR modules with a video feed from the camera.
Note: This class is currently only implemented on macOS and iOS. On other platforms, no CameraFeeds will be available.
- CameraServerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraServerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraServerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CameraTexture
This texture gives access to the camera texture provided by a CameraFeed.
Note: Many cameras supply YCbCr images which need to be converted in a shader.
- CameraTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CameraTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CameraTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CanvasGroup
Child CanvasItem nodes of a CanvasGroup are drawn as a single object. It allows to e.g. draw overlapping translucent 2D nodes without blending (set SelfModulate property of CanvasGroup to achieve this effect).
Note: The CanvasGroup uses a custom shader to read from the backbuffer to draw its children. Assigning a Material to the CanvasGroup overrides the builtin shader. To duplicate the behavior of the builtin shader in a custom Shader use the following:
shader_type canvas_item; render_mode unshaded;
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;
void fragment() { vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0);
if (c.a > 0.0001) { c.rgb /= c.a; } COLOR *= c;
}
Note: Since CanvasGroup and ClipChildren both utilize the backbuffer, children of a CanvasGroup who have their ClipChildren set to anything other than Disabled will not function correctly.
- CanvasGroup.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CanvasGroup.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CanvasGroup.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CanvasItem
Abstract base class for everything in 2D space. Canvas items are laid out in a tree; children inherit and extend their parent's transform. CanvasItem is extended by Control for GUI-related nodes, and by Node2D for 2D game objects.
Any CanvasItem can draw. For this, QueueRedraw() is called by the engine, then NotificationDraw will be received on idle time to request a redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the CanvasItem are provided (see
draw_*
functions). However, they can only be used inside _Draw(), its corresponding _Notification(int) or methods connected to the Draw signal.Canvas items are drawn in tree order on their canvas layer. By default, children are on top of their parents, so a root CanvasItem will be drawn behind everything. This behavior can be changed on a per-item basis.
A CanvasItem can be hidden, which will also hide its children. By adjusting various other properties of a CanvasItem, you can also modulate its color (via Modulate or SelfModulate), change its Z-index, blend mode, and more.
- CanvasItem.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CanvasItem.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CanvasItem.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CanvasItemMaterial
CanvasItemMaterials provide a means of modifying the textures associated with a CanvasItem. They specialize in describing blend and lighting behaviors for textures. Use a ShaderMaterial to more fully customize a material's interactions with a CanvasItem.
- CanvasItemMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CanvasItemMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CanvasItemMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CanvasLayer
CanvasItem-derived nodes that are direct or indirect children of a CanvasLayer will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index
0
, so a CanvasLayer with index-1
will be drawn below, and a CanvasLayer with index1
will be drawn above. This order will hold regardless of the ZIndex of the nodes within each layer.CanvasLayers can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers
1
and higher) or backgrounds (on layers-1
and lower).Note: Embedded Windows are placed on layer
1024
. CanvasItems on layers1025
and higher appear in front of embedded windows.Note: Each CanvasLayer is drawn on one specific Viewport and cannot be shared between multiple Viewports, see CustomViewport. When using multiple Viewports, for example in a split-screen game, you need create an individual CanvasLayer for each Viewport you want it to be drawn on.
- CanvasLayer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CanvasLayer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CanvasLayer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CanvasModulate
CanvasModulate applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but CanvasLayers can be used to render things independently.
- CanvasModulate.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CanvasModulate.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CanvasModulate.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CanvasTexture
CanvasTexture is an alternative to ImageTexture for 2D rendering. It allows using normal maps and specular maps in any node that inherits from CanvasItem. CanvasTexture also allows overriding the texture's filter and repeat mode independently of the node's properties (or the project settings).
Note: CanvasTexture cannot be used in 3D. It will not display correctly when applied to any VisualInstance3D, such as Sprite3D or Decal. For physically-based materials in 3D, use BaseMaterial3D instead.
- CanvasTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CanvasTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CanvasTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CapsuleMesh
Class representing a capsule-shaped PrimitiveMesh.
- CapsuleMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CapsuleMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CapsuleMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CapsuleShape2D
A 2D capsule shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D.
Performance: CapsuleShape2D is fast to check collisions against, but it is slower than RectangleShape2D and CircleShape2D.
- CapsuleShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CapsuleShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CapsuleShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CapsuleShape3D
A 3D capsule shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D.
Performance: CapsuleShape3D is fast to check collisions against. It is faster than CylinderShape3D, but slower than SphereShape3D and BoxShape3D.
- CapsuleShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CapsuleShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CapsuleShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CenterContainer
CenterContainer is a container that keeps all of its child controls in its center at their minimum size.
- CenterContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CenterContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CenterContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CharFXTransform
By setting various properties on this object, you can control how individual characters will be displayed in a RichTextEffect.
- CharFXTransform.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CharFXTransform.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CharFXTransform.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CharacterBody2D
CharacterBody2D is a specialized class for physics bodies that are meant to be user-controlled. They are not affected by physics at all, but they affect other physics bodies in their path. They are mainly used to provide high-level API to move objects with wall and slope detection (MoveAndSlide() method) in addition to the general collision detection provided by MoveAndCollide(Vector2, bool, float, bool). This makes it useful for highly configurable physics bodies that must move in specific ways and collide with the world, as is often the case with user-controlled characters.
For game objects that don't require complex movement or collision detection, such as moving platforms, AnimatableBody2D is simpler to configure.
- CharacterBody2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CharacterBody2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CharacterBody2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CharacterBody3D
CharacterBody3D is a specialized class for physics bodies that are meant to be user-controlled. They are not affected by physics at all, but they affect other physics bodies in their path. They are mainly used to provide high-level API to move objects with wall and slope detection (MoveAndSlide() method) in addition to the general collision detection provided by MoveAndCollide(Vector3, bool, float, bool, int). This makes it useful for highly configurable physics bodies that must move in specific ways and collide with the world, as is often the case with user-controlled characters.
For game objects that don't require complex movement or collision detection, such as moving platforms, AnimatableBody3D is simpler to configure.
- CharacterBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CharacterBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CharacterBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CheckBox
CheckBox allows the user to choose one of only two possible options. It's similar to CheckButton in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has no immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed.
See also BaseButton which contains common properties and methods associated with this node.
When ButtonGroup specifies a ButtonGroup, CheckBox changes its appearance to that of a radio button and uses the various
radio_*
theme properties.
- CheckBox.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CheckBox.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CheckBox.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CheckButton
CheckButton is a toggle button displayed as a check field. It's similar to CheckBox in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an immediate effect on something. For example, it can be used when pressing it shows or hides advanced settings, without asking the user to confirm this action.
See also BaseButton which contains common properties and methods associated with this node.
- CheckButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CheckButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CheckButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CircleShape2D
A 2D circle shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D.
Performance: CircleShape2D is fast to check collisions against. It is faster than RectangleShape2D and CapsuleShape2D.
- CircleShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CircleShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CircleShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ClassDB
Provides access to metadata stored for every available class.
- ClassDB.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ClassDB.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ClassDB.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ClassDBInstance
Provides access to metadata stored for every available class.
- ClassDBInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ClassDBInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ClassDBInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CodeEdit
CodeEdit is a specialized TextEdit designed for editing plain text code files. It has many features commonly found in code editors such as line numbers, line folding, code completion, indent management, and string/comment management.
Note: Regardless of locale, CodeEdit will by default always use left-to-right text direction to correctly display source code.
- CodeEdit.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CodeEdit.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CodeEdit.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CodeHighlighter
By adjusting various properties of this resource, you can change the colors of strings, comments, numbers, and other text patterns inside a TextEdit control.
- CodeHighlighter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CodeHighlighter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CodeHighlighter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CollisionObject2D
Abstract base class for 2D physics objects. CollisionObject2D can hold any number of Shape2Ds for collision. Each shape must be assigned to a shape owner. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the
shape_owner_*
methods.Note: Only collisions between objects within the same canvas (Viewport canvas or CanvasLayer) are supported. The behavior of collisions between objects in different canvases is undefined.
- CollisionObject2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CollisionObject2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CollisionObject2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CollisionObject3D
Abstract base class for 3D physics objects. CollisionObject3D can hold any number of Shape3Ds for collision. Each shape must be assigned to a shape owner. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the
shape_owner_*
methods.Warning: With a non-uniform scale, this node will likely not behave as expected. It is advised to keep its scale the same on all axes and adjust its collision shape(s) instead.
- CollisionObject3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CollisionObject3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CollisionObject3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CollisionPolygon2D
A node that provides a thickened polygon shape (a prism) to a CollisionObject2D parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an Area2D or turn PhysicsBody2D into a solid object.
Warning: A non-uniformly scaled CollisionShape2D will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead.
- CollisionPolygon2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CollisionPolygon2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CollisionPolygon2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CollisionPolygon3D
A node that provides a thickened polygon shape (a prism) to a CollisionObject3D parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an Area3D or turn PhysicsBody3D into a solid object.
Warning: A non-uniformly scaled CollisionShape3D will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead.
- CollisionPolygon3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CollisionPolygon3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CollisionPolygon3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CollisionShape2D
A node that provides a Shape2D to a CollisionObject2D parent and allows to edit it. This can give a detection shape to an Area2D or turn a PhysicsBody2D into a solid object.
- CollisionShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CollisionShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CollisionShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CollisionShape3D
A node that provides a Shape3D to a CollisionObject3D parent and allows to edit it. This can give a detection shape to an Area3D or turn a PhysicsBody3D into a solid object.
Warning: A non-uniformly scaled CollisionShape3D will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its Shape resource instead.
- CollisionShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CollisionShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CollisionShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ColorPicker
A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets.
Note: This control is the color picker widget itself. You can use a ColorPickerButton instead if you need a button that brings up a ColorPicker in a popup.
- ColorPicker.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ColorPicker.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ColorPicker.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ColorPickerButton
Encapsulates a ColorPicker, making it accessible by pressing a button. Pressing the button will toggle the ColorPicker's visibility.
See also BaseButton which contains common properties and methods associated with this node.
Note: By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set CustomMinimumSize to a big enough value to give the button enough space.
- ColorPickerButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ColorPickerButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ColorPickerButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ColorRect
Displays a rectangle filled with a solid Color. If you need to display the border alone, consider using a Panel instead.
- ColorRect.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ColorRect.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ColorRect.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Colors
This class contains color constants created from standardized color names. The standardized color set is based on the X11 and .NET color names.
- CompressedCubemap
A cubemap that is loaded from a
.ccube
file. This file format is internal to Godot; it is created by importing other image formats with the import system. CompressedCubemap can use one of 4 compression methods:- Lossless (WebP or PNG, uncompressed on the GPU)
- Lossy (WebP, uncompressed on the GPU)
- VRAM Compressed (compressed on the GPU)
- VRAM Uncompressed (uncompressed on the GPU)
- Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed)
Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed.
Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D.
See Cubemap for a general description of cubemaps.
- CompressedCubemap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CompressedCubemap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CompressedCubemap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CompressedCubemapArray
A cubemap array that is loaded from a
.ccubearray
file. This file format is internal to Godot; it is created by importing other image formats with the import system. CompressedCubemapArray can use one of 4 compression methods:- Lossless (WebP or PNG, uncompressed on the GPU)
- Lossy (WebP, uncompressed on the GPU)
- VRAM Compressed (compressed on the GPU)
- VRAM Uncompressed (uncompressed on the GPU)
- Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed)
Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed.
Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D.
See CubemapArray for a general description of cubemap arrays.
- CompressedCubemapArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CompressedCubemapArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CompressedCubemapArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CompressedTexture2D
A texture that is loaded from a
.ctex
file. This file format is internal to Godot; it is created by importing other image formats with the import system. CompressedTexture2D can use one of 4 compression methods (including a lack of any compression):- Lossless (WebP or PNG, uncompressed on the GPU)
- Lossy (WebP, uncompressed on the GPU)
- VRAM Compressed (compressed on the GPU)
- VRAM Uncompressed (uncompressed on the GPU)
- Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed)
Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed.
Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D.
- CompressedTexture2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CompressedTexture2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CompressedTexture2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CompressedTexture2DArray
A texture array that is loaded from a
.ctexarray
file. This file format is internal to Godot; it is created by importing other image formats with the import system. CompressedTexture2DArray can use one of 4 compression methods:- Lossless (WebP or PNG, uncompressed on the GPU)
- Lossy (WebP, uncompressed on the GPU)
- VRAM Compressed (compressed on the GPU)
- VRAM Uncompressed (uncompressed on the GPU)
- Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed)
Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed.
Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D.
See Texture2DArray for a general description of texture arrays.
- CompressedTexture2DArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CompressedTexture2DArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CompressedTexture2DArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CompressedTexture3D
CompressedTexture3D is the VRAM-compressed counterpart of ImageTexture3D. The file extension for CompressedTexture3D files is
.ctex3d
. This file format is internal to Godot; it is created by importing other image formats with the import system.CompressedTexture3D uses VRAM compression, which allows to reduce memory usage on the GPU when rendering the texture. This also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D.
See Texture3D for a general description of 3D textures.
- CompressedTexture3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CompressedTexture3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CompressedTexture3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CompressedTextureLayered
Base class for CompressedTexture2DArray and CompressedTexture3D. Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also TextureLayered.
- CompressedTextureLayered.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CompressedTextureLayered.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CompressedTextureLayered.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConcavePolygonShape2D
A 2D polyline shape, intended for use in physics. Used internally in CollisionPolygon2D when it's in Segments mode.
Being just a collection of interconnected line segments, ConcavePolygonShape2D is the most freely configurable single 2D shape. It can be used to form polygons of any nature, or even shapes that don't enclose an area. However, ConcavePolygonShape2D is hollow even if the interconnected line segments do enclose an area, which often makes it unsuitable for physics or detection.
Note: When used for collision, ConcavePolygonShape2D is intended to work with static CollisionShape2D nodes like StaticBody2D and will likely not behave well for CharacterBody2Ds or RigidBody2Ds in a mode other than Static.
Warning: Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. ConcavePolygonShape2D is hollow, so it won't detect a collision.
Performance: Due to its complexity, ConcavePolygonShape2D is the slowest 2D collision shape to check collisions against. Its use should generally be limited to level geometry. If the polyline is closed, CollisionPolygon2D's Solids mode can be used, which decomposes the polygon into convex ones; see ConvexPolygonShape2D's documentation for instructions.
- ConcavePolygonShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConcavePolygonShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConcavePolygonShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConcavePolygonShape3D
A 3D trimesh shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D.
Being just a collection of interconnected triangles, ConcavePolygonShape3D is the most freely configurable single 3D shape. It can be used to form polyhedra of any nature, or even shapes that don't enclose a volume. However, ConcavePolygonShape3D is hollow even if the interconnected triangles do enclose a volume, which often makes it unsuitable for physics or detection.
Note: When used for collision, ConcavePolygonShape3D is intended to work with static CollisionShape3D nodes like StaticBody3D and will likely not behave well for CharacterBody3Ds or RigidBody3Ds in a mode other than Static.
Warning: Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. ConcavePolygonShape3D is hollow, so it won't detect a collision.
Performance: Due to its complexity, ConcavePolygonShape3D is the slowest 3D collision shape to check collisions against. Its use should generally be limited to level geometry. For convex geometry, ConvexPolygonShape3D should be used. For dynamic physics bodies that need concave collision, several ConvexPolygonShape3Ds can be used to represent its collision by using convex decomposition; see ConvexPolygonShape3D's documentation for instructions.
- ConcavePolygonShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConcavePolygonShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConcavePolygonShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConeTwistJoint3D
A physics joint that connects two 3D physics bodies in a way that simulates a ball-and-socket joint. The twist axis is initiated as the X axis of the ConeTwistJoint3D. Once the physics bodies swing, the twist axis is calculated as the middle of the X axes of the joint in the local space of the two physics bodies. Useful for limbs like shoulders and hips, lamps hanging off a ceiling, etc.
- ConeTwistJoint3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConeTwistJoint3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConeTwistJoint3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConfigFile
This helper class can be used to store Variant values on the filesystem using INI-style formatting. The stored values are identified by a section and a key:
[section] some_key=42 string_example="Hello World3D!" a_vector=Vector3(1, 0, 2)
The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem.
The following example shows how to create a simple ConfigFile and save it on disc:
// Create new ConfigFile object. var config = new ConfigFile();
// Store some values. config.SetValue("Player1", "player_name", "Steve"); config.SetValue("Player1", "best_score", 10); config.SetValue("Player2", "player_name", "V3geta"); config.SetValue("Player2", "best_score", 9001);
// Save it to a file (overwrite if already exists). config.Save("user://scores.cfg");
This example shows how the above file could be loaded:
var score_data = new Godot.Collections.Dictionary(); var config = new ConfigFile();
// Load data from a file. Error err = config.Load("user://scores.cfg");
// If the file didn't load, ignore it. if (err != Error.Ok) { return; }
// Iterate over all sections. foreach (String player in config.GetSections()) { // Fetch the data for each section. var player_name = (String)config.GetValue(player, "player_name"); var player_score = (int)config.GetValue(player, "best_score"); score_data[player_name] = player_score; }
Any operation that mutates the ConfigFile such as SetValue(string, string, Variant), Clear(), or EraseSection(string), only changes what is loaded in memory. If you want to write the change to a file, you have to save the changes with Save(string), SaveEncrypted(string, byte[]), or SaveEncryptedPass(string, string).
Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load.
ConfigFiles can also contain manually written comment lines starting with a semicolon (
;
). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action.Note: The file extension given to a ConfigFile does not have any impact on its formatting or behavior. By convention, the
.cfg
extension is used here, but any other extension such as.ini
is also valid. Since neither.cfg
nor.ini
are standardized, Godot's ConfigFile formatting may differ from files written by other programs.
- ConfigFile.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConfigFile.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConfigFile.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConfirmationDialog
A dialog used for confirmation of actions. This window is similar to AcceptDialog, but pressing its Cancel button can have a different outcome from pressing the OK button. The order of the two buttons varies depending on the host OS.
To get cancel action, you can use:
GetCancelButton().Pressed += Canceled;
- ConfirmationDialog.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConfirmationDialog.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConfirmationDialog.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Container
Base class for all GUI containers. A Container automatically arranges its child controls in a certain way. This class can be inherited to make custom container types.
- Container.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Container.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Container.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Control
Base class for all UI-related nodes. Control features a bounding rectangle that defines its extents, an anchor position relative to its parent control or the current viewport, and offsets relative to the anchor. The offsets update automatically when the node, any of its parents, or the screen size change.
For more information on Godot's UI system, anchors, offsets, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from Control and Container nodes.
User Interface nodes and input
Godot propagates input events via viewports. Each Viewport is responsible for propagating InputEvents to their child nodes. As the Root is a Window, this already happens automatically for all UI elements in your game.
Input events are propagated through the SceneTree from the root node to all child nodes by calling _Input(InputEvent). For UI elements specifically, it makes more sense to override the virtual method _GuiInput(InputEvent), which filters out unrelated input events, such as by checking z-order, MouseFilter, focus, or if the event was inside of the control's bounding box.
Call AcceptEvent() so no other node receives the event. Once you accept an input, it becomes handled so _UnhandledInput(InputEvent) will not process it.
Only one Control node can be in focus. Only the node in focus will receive events. To get the focus, call GrabFocus(). Control nodes lose focus when another node grabs it, or if you hide the node in focus.
Sets MouseFilter to Ignore to tell a Control node to ignore mouse or touch events. You'll need it if you place an icon on top of a button.
Theme resources change the Control's appearance. If you change the Theme on a Control node, it affects all of its children. To override some of the theme's parameters, call one of the
add_theme_*_override
methods, like AddThemeFontOverride(StringName, Font). You can override the theme with the Inspector.Note: Theme items are notGodotObject properties. This means you can't access their values using Get(StringName) and Set(StringName, Variant). Instead, use the
get_theme_*
andadd_theme_*_override
methods provided by this class.
- Control.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Control.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Control.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConvexPolygonShape2D
A 2D convex polygon shape, intended for use in physics. Used internally in CollisionPolygon2D when it's in Solids mode.
ConvexPolygonShape2D is solid, which means it detects collisions from objects that are fully inside it, unlike ConcavePolygonShape2D which is hollow. This makes it more suitable for both detection and physics.
Convex decomposition: A concave polygon can be split up into several convex polygons. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several ConvexPolygonShape2D nodes or by using the CollisionPolygon2D node in Solids mode. To generate a collision polygon from a sprite, select the Sprite2D node, go to the Sprite2D menu that appears above the viewport, and choose Create Polygon2D Sibling.
Performance: ConvexPolygonShape2D is faster to check collisions against compared to ConcavePolygonShape2D, but it is slower than primitive collision shapes such as CircleShape2D and RectangleShape2D. Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes.
- ConvexPolygonShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConvexPolygonShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConvexPolygonShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ConvexPolygonShape3D
A 3D convex polyhedron shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D.
ConvexPolygonShape3D is solid, which means it detects collisions from objects that are fully inside it, unlike ConcavePolygonShape3D which is hollow. This makes it more suitable for both detection and physics.
Convex decomposition: A concave polyhedron can be split up into several convex polyhedra. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several ConvexPolygonShape3D nodes. To generate a convex decomposition from a mesh, select the MeshInstance3D node, go to the Mesh menu that appears above the viewport, and choose Create Multiple Convex Collision Siblings. Alternatively, CreateMultipleConvexCollisions(MeshConvexDecompositionSettings) can be called in a script to perform this decomposition at run-time.
Performance: ConvexPolygonShape3D is faster to check collisions against compared to ConcavePolygonShape3D, but it is slower than primitive collision shapes such as SphereShape3D and BoxShape3D. Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes.
- ConvexPolygonShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ConvexPolygonShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ConvexPolygonShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CpuParticles2D
CPU-based 2D particle node used to create a variety of particle systems and effects.
See also GpuParticles2D, which provides the same functionality with hardware acceleration, but may not run on older devices.
- CpuParticles2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CpuParticles2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CpuParticles2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CpuParticles3D
CPU-based 3D particle node used to create a variety of particle systems and effects.
See also GpuParticles3D, which provides the same functionality with hardware acceleration, but may not run on older devices.
- CpuParticles3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CpuParticles3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CpuParticles3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Crypto
The Crypto class provides access to advanced cryptographic functionalities.
Currently, this includes asymmetric key encryption/decryption, signing/verification, and generating cryptographically secure random bytes, RSA keys, HMAC digests, and self-signed X509Certificates.
using Godot; using System.Diagnostics;
public partial class MyNode : Node { private Crypto _crypto = new Crypto(); private CryptoKey _key = new CryptoKey(); private X509Certificate _cert = new X509Certificate();
public override void _Ready() { // Generate new RSA key. _key = _crypto.GenerateRsa(4096); // Generate new self-signed certificate with the given key. _cert = _crypto.GenerateSelfSignedCertificate(_key, "CN=mydomain.com,O=My Game Company,C=IT"); // Save key and certificate in the user folder. _key.Save("user://generated.key"); _cert.Save("user://generated.crt"); // Encryption string data = "Some data"; byte[] encrypted = _crypto.Encrypt(_key, data.ToUtf8Buffer()); // Decryption byte[] decrypted = _crypto.Decrypt(_key, encrypted); // Signing byte[] signature = _crypto.Sign(HashingContext.HashType.Sha256, Data.Sha256Buffer(), _key); // Verifying bool verified = _crypto.Verify(HashingContext.HashType.Sha256, Data.Sha256Buffer(), signature, _key); // Checks Debug.Assert(verified); Debug.Assert(data.ToUtf8Buffer() == decrypted); }
}
- Crypto.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Crypto.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Crypto.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CryptoKey
The CryptoKey class represents a cryptographic key. Keys can be loaded and saved like any other Resource.
They can be used to generate a self-signed X509Certificate via GenerateSelfSignedCertificate(CryptoKey, string, string, string) and as private key in AcceptStream(StreamPeer, TlsOptions) along with the appropriate certificate.
- CryptoKey.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CryptoKey.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CryptoKey.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgBox3D
This node allows you to create a box for use with the CSG system.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgBox3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgBox3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgBox3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgCombiner3D
For complex arrangements of shapes, it is sometimes needed to add structure to your CSG nodes. The CSGCombiner3D node allows you to create this structure. The node encapsulates the result of the CSG operations of its children. In this way, it is possible to do operations on one set of shapes that are children of one CSGCombiner3D node, and a set of separate operations on a second set of shapes that are children of a second CSGCombiner3D node, and then do an operation that takes the two end results as its input to create the final shape.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgCombiner3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgCombiner3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgCombiner3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgCylinder3D
This node allows you to create a cylinder (or cone) for use with the CSG system.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgCylinder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgCylinder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgCylinder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgMesh3D
This CSG node allows you to use any mesh resource as a CSG shape, provided it is closed, does not self-intersect, does not contain internal faces and has no edges that connect to more than two faces. See also CsgPolygon3D for drawing 2D extruded polygons to be used as CSG nodes.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgMesh3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgMesh3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgMesh3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgPolygon3D
An array of 2D points is extruded to quickly and easily create a variety of 3D meshes. See also CsgMesh3D for using 3D meshes as CSG nodes.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgPolygon3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgPolygon3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgPolygon3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgPrimitive3D
Parent class for various CSG primitives. It contains code and functionality that is common between them. It cannot be used directly. Instead use one of the various classes that inherit from it.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgPrimitive3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgPrimitive3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgPrimitive3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgShape3D
This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgSphere3D
This node allows you to create a sphere for use with the CSG system.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgSphere3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgSphere3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgSphere3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CsgTorus3D
This node allows you to create a torus for use with the CSG system.
Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance3D with a PrimitiveMesh. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.
- CsgTorus3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CsgTorus3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CsgTorus3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Cubemap
A cubemap is made of 6 textures organized in layers. They are typically used for faking reflections in 3D rendering (see ReflectionProbe). It can be used to make an object look as if it's reflecting its surroundings. This usually delivers much better performance than other reflection methods.
This resource is typically used as a uniform in custom shaders. Few core Godot methods make use of Cubemap resources.
To create such a texture file yourself, reimport your image files using the Godot Editor import presets.
Note: Godot doesn't support using cubemaps in a PanoramaSkyMaterial. You can use this tool to convert a cubemap to an equirectangular sky map.
- Cubemap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Cubemap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Cubemap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CubemapArray
CubemapArrays are made of an array of Cubemaps. Like Cubemaps, they are made of multiple textures, the amount of which must be divisible by 6 (one for each face of the cube). The primary benefit of CubemapArrays is that they can be accessed in shader code using a single texture reference. In other words, you can pass multiple Cubemaps into a shader using a single CubemapArray.
Moreover, Cubemaps are allocated in adjacent cache regions on the GPU. This makes CubemapArrays the most efficient way to store multiple Cubemaps.
Internally, Godot uses CubemapArrays for many effects, including the Sky if you set
ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections
totrue
.To create such a texture file yourself, reimport your image files using the import presets of the File System dock.
Note: CubemapArray is not supported in the OpenGL 3 rendering backend.
- CubemapArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CubemapArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CubemapArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Curve
This resource describes a mathematical curve by defining a set of points and tangents at each point. By default, it ranges between
0
and1
on the Y axis and positions points relative to the0.5
Y position.See also Gradient which is designed for color interpolation. See also Curve2D and Curve3D.
- Curve.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Curve.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Curve.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Curve2D
This class describes a Bézier curve in 2D space. It is mainly used to give a shape to a Path2D, but can be manually sampled for other purposes.
It keeps a cache of precalculated points along the curve, to speed up further calculations.
- Curve2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Curve2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Curve2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Curve3D
This class describes a Bézier curve in 3D space. It is mainly used to give a shape to a Path3D, but can be manually sampled for other purposes.
It keeps a cache of precalculated points along the curve, to speed up further calculations.
- Curve3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Curve3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Curve3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CurveTexture
A 1D texture where pixel brightness corresponds to points on a Curve resource, either in grayscale or in red. This visual representation simplifies the task of saving curves as image files.
If you need to store up to 3 curves within a single texture, use CurveXyzTexture instead. See also GradientTexture1D and GradientTexture2D.
- CurveTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CurveTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CurveTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CurveXyzTexture
A 1D texture where the red, green, and blue color channels correspond to points on 3 Curve resources. Compared to using separate CurveTextures, this further simplifies the task of saving curves as image files.
If you only need to store one curve within a single texture, use CurveTexture instead. See also GradientTexture1D and GradientTexture2D.
- CurveXyzTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CurveXyzTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CurveXyzTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CustomGCHandle
Provides a GCHandle that becomes weak when unloading the assembly load context, without having to manually replace the GCHandle. This hides all the complexity of releasing strong GC handles to allow the assembly load context to unload properly.
Internally, a strong CustomGCHandle actually contains a weak GCHandle, while the actual strong reference is stored in a static table.
- CylinderMesh
Class representing a cylindrical PrimitiveMesh. This class can be used to create cones by setting either the TopRadius or BottomRadius properties to
0.0
.
- CylinderMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CylinderMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CylinderMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- CylinderShape3D
A 3D cylinder shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D.
Note: There are several known bugs with cylinder collision shapes. Using CapsuleShape3D or BoxShape3D instead is recommended.
Performance: CylinderShape3D is fast to check collisions against, but it is slower than CapsuleShape3D, BoxShape3D, and SphereShape3D.
- CylinderShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- CylinderShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- CylinderShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DampedSpringJoint2D
A physics joint that connects two 2D physics bodies with a spring-like force. This resembles a spring that always wants to stretch to a given length.
- DampedSpringJoint2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DampedSpringJoint2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DampedSpringJoint2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Decal
Decals are used to project a texture onto a Mesh in the scene. Use Decals to add detail to a scene without affecting the underlying Mesh. They are often used to add weathering to building, add dirt or mud to the ground, or add variety to props. Decals can be moved at any time, making them suitable for things like blob shadows or laser sight dots.
They are made of an Aabb and a group of Texture2Ds specifying Color, normal, ORM (ambient occlusion, roughness, metallic), and emission. Decals are projected within their Aabb so altering the orientation of the Decal affects the direction in which they are projected. By default, Decals are projected down (i.e. from positive Y to negative Y).
The Texture2Ds associated with the Decal are automatically stored in a texture atlas which is used for drawing the decals so all decals can be drawn at once. Godot uses clustered decals, meaning they are stored in cluster data and drawn when the mesh is drawn, they are not drawn as a post-processing effect after.
Note: Decals cannot affect an underlying material's transparency, regardless of its transparency mode (alpha blend, alpha scissor, alpha hash, opaque pre-pass). This means translucent or transparent areas of a material will remain translucent or transparent even if an opaque decal is applied on them.
Note: Decals are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 decals can be displayed on each mesh resource. Attempting to display more than 8 decals on a single mesh resource will result in decals flickering in and out as the camera moves.
Note: When using the Mobile rendering method, decals will only correctly affect meshes whose visibility AABB intersects with the decal's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, ExtraCullMargin must be increased on the mesh. Otherwise, the decal may not be visible on the mesh.
- Decal.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Decal.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Decal.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DirAccess
This class is used to manage directories and their content, even outside of the project folder.
DirAccess can't be instantiated directly. Instead it is created with a static method that takes a path for which it will be opened.
Most of the methods have a static alternative that can be used without creating a DirAccess. Static methods only support absolute paths (including
res://
anduser://
).# Standard var dir = DirAccess.open("user://levels") dir.make_dir("world1") # Static DirAccess.make_dir_absolute("user://levels/world1")
Note: Many resources types are imported (e.g. textures or sound files), and their source asset will not be included in the exported game, as only the imported version is used. Use ResourceLoader to access imported resources.
Here is an example on how to iterate through the files of a directory:
public void DirContents(string path) { using var dir = DirAccess.Open(path); if (dir != null) { dir.ListDirBegin(); string fileName = dir.GetNext(); while (fileName != "") { if (dir.CurrentIsDir()) { GD.Print($"Found directory: {fileName}"); } else { GD.Print($"Found file: {fileName}"); } fileName = dir.GetNext(); } } else { GD.Print("An error occurred when trying to access the path."); } }
- DirAccess.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DirAccess.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DirAccess.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DirectionalLight2D
A directional light is a type of Light2D node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene (for example: to model sunlight or moonlight).
Note: DirectionalLight2D does not support light cull masks (but it supports shadow cull masks). It will always light up 2D nodes, regardless of the 2D node's LightMask.
- DirectionalLight2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DirectionalLight2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DirectionalLight2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DirectionalLight3D
A directional light is a type of Light3D node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight3D transform (origin) is ignored. Only the basis is used to determine light direction.
- DirectionalLight3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DirectionalLight3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DirectionalLight3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DisplayServer
DisplayServer handles everything related to window management. It is separated from OS as a single operating system may support multiple display servers.
Headless mode: Starting the engine with the
--headless
command line argument disables all rendering and window management functions. Most functions from DisplayServer will return dummy values in this case.
- DisplayServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DisplayServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DisplayServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DisplayServerInstance
DisplayServer handles everything related to window management. It is separated from OS as a single operating system may support multiple display servers.
Headless mode: Starting the engine with the
--headless
command line argument disables all rendering and window management functions. Most functions from DisplayServer will return dummy values in this case.
- DisplayServerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DisplayServerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DisplayServerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- DtlsServer
This class is used to store the state of a DTLS server. Upon Setup(TlsOptions) it converts connected PacketPeerUdp to PacketPeerDtls accepting them via TakeConnection(PacketPeerUdp) as DTLS clients. Under the hood, this class is used to store the DTLS state and cookies of the server. The reason of why the state and cookies are needed is outside of the scope of this documentation.
Below a small example of how to use it:
// ServerNode.cs using Godot;
public partial class ServerNode : Node { private DtlsServer _dtls = new DtlsServer(); private UdpServer _server = new UdpServer(); private Godot.Collections.Array<PacketPeerDtls> _peers = new Godot.Collections.Array<PacketPeerDtls>();
public override void _Ready() { _server.Listen(4242); var key = GD.Load<CryptoKey>("key.key"); // Your private key. var cert = GD.Load<X509Certificate>("cert.crt"); // Your X509 certificate. _dtls.Setup(key, cert); } public override void _Process(double delta) { while (Server.IsConnectionAvailable()) { PacketPeerUdp peer = _server.TakeConnection(); PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer); if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking) { continue; // It is normal that 50% of the connections fails due to cookie exchange. } GD.Print("Peer connected!"); _peers.Add(dtlsPeer); } foreach (var p in _peers) { p.Poll(); // Must poll to update the state. if (p.GetStatus() == PacketPeerDtls.Status.Connected) { while (p.GetAvailablePacketCount() > 0) { GD.Print($"Received Message From Client: {p.GetPacket().GetStringFromUtf8()}"); p.PutPacket("Hello DTLS Client".ToUtf8Buffer()); } } } }
}
// ClientNode.cs using Godot; using System.Text;
public partial class ClientNode : Node { private PacketPeerDtls _dtls = new PacketPeerDtls(); private PacketPeerUdp _udp = new PacketPeerUdp(); private bool _connected = false;
public override void _Ready() { _udp.ConnectToHost("127.0.0.1", 4242); _dtls.ConnectToPeer(_udp, validateCerts: false); // Use true in production for certificate validation! } public override void _Process(double delta) { _dtls.Poll(); if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected) { if (!_connected) { // Try to contact server _dtls.PutPacket("The Answer Is..42!".ToUtf8Buffer()); } while (_dtls.GetAvailablePacketCount() > 0) { GD.Print($"Connected: {_dtls.GetPacket().GetStringFromUtf8()}"); _connected = true; } } }
}
- DtlsServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- DtlsServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- DtlsServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ENetConnection
ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol).
- ENetConnection.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ENetConnection.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ENetConnection.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ENetMultiplayerPeer
A MultiplayerPeer implementation that should be passed to MultiplayerPeer after being initialized as either a client, server, or mesh. Events can then be handled by connecting to MultiplayerApi signals. See ENetConnection for more information on the ENet library wrapper.
Note: ENet only uses UDP, not TCP. When forwarding the server port to make your server accessible on the public Internet, you only need to forward the server port in UDP. You can use the Upnp class to try to forward the server port automatically when starting the server.
- ENetMultiplayerPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ENetMultiplayerPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ENetMultiplayerPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ENetPacketPeer
A PacketPeer implementation representing a peer of an ENetConnection.
This class cannot be instantiated directly but can be retrieved during Service(int) or via GetPeers().
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- ENetPacketPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ENetPacketPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ENetPacketPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- EncodedObjectAsId
Utility class which holds a reference to the internal identifier of an GodotObject instance, as given by GetInstanceId(). This ID can then be used to retrieve the object instance with
@GlobalScope.instance_from_id
.This class is used internally by the editor inspector and script debugger, but can also be used in plugins to pass and display objects as their IDs.
- EncodedObjectAsId.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- EncodedObjectAsId.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- EncodedObjectAsId.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Engine
The Engine singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others.
- Engine.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Engine.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Engine.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- EngineDebugger
EngineDebugger handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers.
- EngineDebugger.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- EngineDebugger.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- EngineDebugger.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- EngineDebuggerInstance
EngineDebugger handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers.
- EngineDebuggerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- EngineDebuggerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- EngineDebuggerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- EngineInstance
The Engine singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others.
- EngineInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- EngineInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- EngineInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- EngineProfiler
This class can be used to implement custom profilers that are able to interact with the engine and editor debugger.
See EngineDebugger and
EditorDebuggerPlugin
for more information.
- EngineProfiler.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- EngineProfiler.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- EngineProfiler.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Environment
Resource for environment nodes (like WorldEnvironment) that define multiple environment operations (such as background Sky or Color, ambient light, fog, depth-of-field...). These parameters affect the final render of the scene. The order of these operations is:
- Depth of Field Blur
- Glow
- Tonemap (Auto Exposure)
- Adjustments
- Environment.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Environment.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Environment.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ExportAttribute
Exports the annotated member as a property of the Godot Object.
- ExportCategoryAttribute
Define a new category for the following exported properties. This helps to organize properties in the Inspector dock.
- ExportGroupAttribute
Define a new group for the following exported properties. This helps to organize properties in the Inspector dock.
- ExportSubgroupAttribute
Define a new subgroup for the following exported properties. This helps to organize properties in the Inspector dock.
- Expression
An expression can be made of any arithmetic operation, built-in math function call, method call of a passed instance, or built-in type construction call.
An example expression text using the built-in math functions could be
sqrt(pow(3, 2) + pow(4, 2))
.In the following example we use a LineEdit node to write our expression and show the result.
private Expression _expression = new Expression();
public override void _Ready() { GetNode<LineEdit>("LineEdit").TextSubmitted += OnTextEntered; }
private void OnTextEntered(string command) { Error error = _expression.Parse(command); if (error != Error.Ok) { GD.Print(_expression.GetErrorText()); return; } Variant result = _expression.Execute(); if (!_expression.HasExecuteFailed()) { GetNode<LineEdit>("LineEdit").Text = result.ToString(); } }
- Expression.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Expression.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Expression.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FastNoiseLite
This class generates noise using the FastNoiseLite library, which is a collection of several noise algorithms including Cellular, Perlin, Value, and more.
Most generated noise values are in the range of
[-1, 1]
, but not always. Some of the cellular noise algorithms return results above1
.
- FastNoiseLite.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FastNoiseLite.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FastNoiseLite.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FileAccess
This class can be used to permanently store data in the user device's file system and to read from it. This is useful for store game save data or player configuration files.
Here's a sample on how to write and read from a file:
public void Save(string content) { using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Write); file.StoreString(content); }
public string Load() { using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Read); string content = file.GetAsText(); return content; }
In the example above, the file will be saved in the user data folder as specified in the Data paths documentation.
FileAccess will close when it's freed, which happens when it goes out of scope or when it gets assigned with
null
. Close() can be used to close it before then explicitly. In C# the reference must be disposed manually, which can be done with theusing
statement or by calling theDispose
method directly.Note: To access project resources once exported, it is recommended to use ResourceLoader instead of FileAccess, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
Note: Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing Alt + F4). If you stop the project execution by pressing F8 while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling Flush() at regular intervals.
- FileAccess.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FileAccess.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FileAccess.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FileDialog
FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. FileDialog automatically sets its window title according to the FileMode. If you want to use a custom title, disable this by setting ModeOverridesTitle to
false
.
- FileDialog.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FileDialog.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FileDialog.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FlowContainer
A container that arranges its child controls horizontally or vertically and wraps them around at the borders. This is similar to how text in a book wraps around when no more words can fit on a line.
- FlowContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FlowContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FlowContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FogMaterial
A Material resource that can be used by FogVolumes to draw volumetric effects.
If you need more advanced effects, use a custom fog shader.
- FogMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FogMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FogMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FogVolume
FogVolumes are used to add localized fog into the global volumetric fog effect. FogVolumes can also remove volumetric fog from specific areas if using a FogMaterial with a negative Density.
Performance of FogVolumes is directly related to their relative size on the screen and the complexity of their attached FogMaterial. It is best to keep FogVolumes relatively small and simple where possible.
Note: FogVolumes only have a visible effect if VolumetricFogEnabled is
true
. If you don't want fog to be globally visible (but only within FogVolume nodes), set VolumetricFogDensity to0.0
.
- FogVolume.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FogVolume.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FogVolume.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Font
Abstract base class for different font types. It has methods for drawing text and font character introspection.
- Font.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Font.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Font.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FontFile
FontFile contains a set of glyphs to represent Unicode characters imported from a font file, as well as a cache of rasterized glyphs, and a set of fallback Fonts to use.
Use FontVariation to access specific OpenType variation of the font, create simulated bold / slanted version, and draw lines of text.
For more complex text processing, use FontVariation in conjunction with TextLine or TextParagraph.
Supported font formats:
- Dynamic font importer: TrueType (.ttf), TrueType collection (.ttc), OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (.pfb, .pfm).
- Bitmap font importer: AngelCode BMFont (.fnt, .font), text and binary (version 3) format variants.
- Monospace image font importer: All supported image formats.
Note: A character is a symbol that represents an item (letter, digit etc.) in an abstract way.
Note: A glyph is a bitmap or a shape used to draw one or more characters in a context-dependent manner. Glyph indices are bound to the specific font data source.
Note: If none of the font data sources contain glyphs for a character used in a string, the character in question will be replaced with a box displaying its hexadecimal code.
var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf"); GetNode("Label").AddThemeFontOverride("font", f); GetNode("Label").AddThemeFontSizeOverride("font_size", 64);
- FontFile.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FontFile.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FontFile.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- FontVariation
Provides OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing.
To use simulated bold font variant:
var fv = new FontVariation(); fv.SetBaseFont(ResourceLoader.Load<FontFile>("res://BarlowCondensed-Regular.ttf")); fv.SetVariationEmbolden(1.2); GetNode("Label").AddThemeFontOverride("font", fv); GetNode("Label").AddThemeFontSizeOverride("font_size", 64);
To set the coordinate of multiple variation axes:
var fv = FontVariation.new(); var ts = TextServerManager.get_primary_interface() fv.base_font = load("res://BarlowCondensed-Regular.ttf") fv.variation_opentype = { ts.name_to_tag("wght"): 900, ts.name_to_tag("custom_hght"): 900 }
- FontVariation.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- FontVariation.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- FontVariation.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GD
Godot's global functions.
- GDExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GDExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GDExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GDExtensionManager.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GDExtensionManager.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GDExtensionManager.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GDExtensionManagerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GDExtensionManagerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GDExtensionManagerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GDScript
A script implemented in the GDScript programming language, saved with the
.gd
extension. The script extends the functionality of all objects that instantiate it.Calling New(params Variant[]) creates a new instance of the script. SetScript(Variant) extends an existing object, if that object's class matches one of the script's base classes.
If you are looking for GDScript's built-in functions, see
@GDScript
instead.
- GDScript.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GDScript.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GDScript.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Generic6DofJoint3D
The Generic6DofJoint3D (6 Degrees Of Freedom) joint allows for implementing custom types of joints by locking the rotation and translation of certain axes.
The first 3 DOF represent the linear motion of the physics bodies and the last 3 DOF represent the angular motion of the physics bodies. Each axis can be either locked, or limited.
- Generic6DofJoint3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Generic6DofJoint3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Generic6DofJoint3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Geometry2D
Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 2D.
- Geometry2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Geometry2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Geometry2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Geometry2DInstance
Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 2D.
- Geometry2DInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Geometry2DInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Geometry2DInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Geometry3D
Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 3D.
- Geometry3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Geometry3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Geometry3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Geometry3DInstance
Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 3D.
- Geometry3DInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Geometry3DInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Geometry3DInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GeometryInstance3D
Base node for geometry-based visual instances. Shares some common functionality like visibility and custom materials.
- GeometryInstance3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GeometryInstance3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GeometryInstance3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GlobalClassAttribute
Exposes the target class as a global script class to Godot Engine.
- GltfAccessor.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfAccessor.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfAccessor.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfAnimation.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfAnimation.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfAnimation.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfBufferView.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfBufferView.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfBufferView.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfCamera
Represents a camera as defined by the base GLTF spec.
- GltfCamera.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfCamera.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfCamera.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfDocument
GLTFDocument supports reading data from a glTF file, buffer, or Godot scene. This data can then be written to the filesystem, buffer, or used to create a Godot scene.
All of the data in a GLTF scene is stored in the GltfState class. GLTFDocument processes state objects, but does not contain any scene data itself. GLTFDocument has member variables to store export configuration settings such as the image format, but is otherwise stateless. Multiple scenes can be processed with the same settings using the same GLTFDocument object and different GltfState objects.
GLTFDocument can be extended with arbitrary functionality by extending the GltfDocumentExtension class and registering it with GLTFDocument via RegisterGltfDocumentExtension(GltfDocumentExtension, bool). This allows for custom data to be imported and exported.
- GltfDocument.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfDocument.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfDocument.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfDocumentExtension
Extends the functionality of the GltfDocument class by allowing you to run arbitrary code at various stages of GLTF import or export.
To use, make a new class extending GLTFDocumentExtension, override any methods you need, make an instance of your class, and register it using RegisterGltfDocumentExtension(GltfDocumentExtension, bool).
Note: Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the
set_additional_data
andget_additional_data
methods in GltfState or GltfNode.
- GltfDocumentExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfDocumentExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfDocumentExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfDocumentExtensionConvertImporterMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfDocumentExtensionConvertImporterMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfDocumentExtensionConvertImporterMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfLight
Represents a light as defined by the
KHR_lights_punctual
GLTF extension.
- GltfLight.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfLight.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfLight.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfNode
Represents a GLTF node. GLTF nodes may have names, transforms, children (other GLTF nodes), and more specialized properties (represented by their own classes).
GLTF nodes generally exist inside of GltfState which represents all data of a GLTF file. Most of GLTFNode's properties are indices of other data in the GLTF file. You can extend a GLTF node with additional properties by using GetAdditionalData(StringName) and SetAdditionalData(StringName, Variant).
- GltfNode.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfNode.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfNode.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfPhysicsBody
Represents a physics body as defined by the
OMI_physics_body
GLTF extension. This class is an intermediary between the GLTF data and Godot's nodes, and it's abstracted in a way that allows adding support for different GLTF physics extensions in the future.
- GltfPhysicsBody.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfPhysicsBody.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfPhysicsBody.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfPhysicsShape
Represents a physics shape as defined by the
OMI_collider
GLTF extension. This class is an intermediary between the GLTF data and Godot's nodes, and it's abstracted in a way that allows adding support for different GLTF physics extensions in the future.
- GltfPhysicsShape.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfPhysicsShape.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfPhysicsShape.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfSkeleton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfSkeleton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfSkeleton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfSkin.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfSkin.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfSkin.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfSpecGloss
KHR_materials_pbrSpecularGlossiness is an archived GLTF extension. This means that it is deprecated and not recommended for new files. However, it is still supported for loading old files.
- GltfSpecGloss.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfSpecGloss.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfSpecGloss.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfState
Contains all nodes and resources of a GLTF file. This is used by GltfDocument as data storage, which allows GltfDocument and all GltfDocumentExtension classes to remain stateless.
GLTFState can be populated by GltfDocument reading a file or by converting a Godot scene. Then the data can either be used to create a Godot scene or save to a GLTF file. The code that converts to/from a Godot scene can be intercepted at arbitrary points by GltfDocumentExtension classes. This allows for custom data to be stored in the GLTF file or for custom data to be converted to/from Godot nodes.
- GltfState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GltfTextureSampler
Represents a texture sampler as defined by the base GLTF spec. Texture samplers in GLTF specify how to sample data from the texture's base image, when rendering the texture on an object.
- GltfTextureSampler.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GltfTextureSampler.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GltfTextureSampler.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GodotClassNameAttribute
Attribute that specifies the engine class name when it's not the same as the generated C# class name. This allows introspection code to find the name associated with the class. If the attribute is not present, the C# class name can be used instead.
- GodotObject
An advanced Variant type. All classes in the engine inherit from Object. Each class may define new properties, methods or signals, which are available to all inheriting classes. For example, a Sprite2D instance is able to call AddChild(Node, bool, InternalMode) because it inherits from Node.
You can create new instances, using
Object.new()
in GDScript, ornew GodotObject
in C#.To delete an Object instance, call Free(). This is necessary for most classes inheriting Object, because they do not manage memory on their own, and will otherwise cause memory leaks when no longer in use. There are a few classes that perform memory management. For example, RefCounted (and by extension Resource) deletes itself when no longer referenced, and Node deletes its children when freed.
Objects can have a Script attached to them. Once the Script is instantiated, it effectively acts as an extension to the base class, allowing it to define and inherit new properties, methods and signals.
Inside a Script, _GetPropertyList() may be overridden to customize properties in several ways. This allows them to be available to the editor, display as lists of options, sub-divide into groups, save on disk, etc. Scripting languages offer easier ways to customize properties, such as with the [annotation @GDScript.@export] annotation.
Godot is very dynamic. An object's script, and therefore its properties, methods and signals, can be changed at run-time. Because of this, there can be occasions where, for example, a property required by a method may not exist. To prevent run-time errors, see methods such as Set(StringName, Variant), Get(StringName), Call(StringName, params Variant[]), HasMethod(StringName), HasSignal(StringName), etc. Note that these methods are much slower than direct references.
In GDScript, you can also check if a given property, method, or signal name exists in an object with the
in
operator:var node = Node.new() print("name" in node) # Prints true print("get_parent" in node) # Prints true print("tree_entered" in node) # Prints true print("unknown" in node) # Prints false
Notifications are int constants commonly sent and received by objects. For example, on every rendered frame, the SceneTree notifies nodes inside the tree with a NotificationProcess. The nodes receive it and may call _Process(double) to update. To make use of notifications, see Notification(int, bool) and _Notification(int).
Lastly, every object can also contain metadata (data about data). SetMeta(StringName, Variant) can be useful to store information that the object itself does not depend on. To keep your code clean, making excessive use of metadata is discouraged.
Note: Unlike references to a RefCounted, references to an object stored in a variable can become invalid without being set to
null
. To check if an object has been deleted, do not compare it againstnull
. Instead, use@GlobalScope.is_instance_valid
. It's also recommended to inherit from RefCounted for classes storing data instead of GodotObject.Note: The
script
is not exposed like most properties. To set or get an object's Script in code, use SetScript(Variant) and GetScript(), respectively.
- GodotObject.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GodotObject.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GodotObject.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GodotSharp
This class is a bridge between Godot and the Mono runtime. It exposes several low-level operations and is only available in Mono-enabled Godot builds.
See also CSharpScript.
- GodotSharp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GodotSharp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GodotSharp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GodotSharpInstance
This class is a bridge between Godot and the Mono runtime. It exposes several low-level operations and is only available in Mono-enabled Godot builds.
See also CSharpScript.
- GodotSharpInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GodotSharpInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GodotSharpInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GodotTaskScheduler
GodotTaskScheduler contains a linked list of tasks to perform as a queue. Methods within the class are used to control the queue and perform the contained tasks.
- GodotThread
A unit of execution in a process. Can run methods on GodotObjects simultaneously. The use of synchronization via Mutex or Semaphore is advised if working with shared objects.
Warning:
To ensure proper cleanup without crashes or deadlocks, when a GodotThread's reference count reaches zero and it is therefore destroyed, the following conditions must be met:
- It must not have any Mutex objects locked.
- It must not be waiting on any Semaphore objects.
- WaitToFinish() should have been called on it.
- GodotThread.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GodotThread.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GodotThread.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticles2D
2D particle node used to create a variety of particle systems and effects. GpuParticles2D features an emitter that generates some number of particles at a given rate.
Use the ProcessMaterial property to add a ParticleProcessMaterial to configure particle appearance and behavior. Alternatively, you can add a ShaderMaterial which will be applied to all particles.
2D particles can optionally collide with LightOccluder2D, but they don't collide with PhysicsBody2D nodes.
- GpuParticles2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticles2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticles2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticles3D
3D particle node used to create a variety of particle systems and effects. GpuParticles3D features an emitter that generates some number of particles at a given rate.
Use ProcessMaterial to add a ParticleProcessMaterial to configure particle appearance and behavior. Alternatively, you can add a ShaderMaterial which will be applied to all particles.
- GpuParticles3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticles3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticles3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesAttractor3D
Particle attractors can be used to attract particles towards the attractor's origin, or to push them away from the attractor's origin.
Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported.
Attractors can be temporarily disabled by hiding them, or by setting their Strength to
0.0
.Note: Particle attractors only affect GpuParticles3D, not CpuParticles3D.
- GpuParticlesAttractor3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesAttractor3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesAttractor3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesAttractorBox3D
A box-shaped attractor that influences particles from GpuParticles3D nodes. Can be used to attract particles towards its origin, or to push them away from its origin.
Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported.
Note: Particle attractors only affect GpuParticles3D, not CpuParticles3D.
- GpuParticlesAttractorBox3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesAttractorBox3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesAttractorBox3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesAttractorSphere3D
A spheroid-shaped attractor that influences particles from GpuParticles3D nodes. Can be used to attract particles towards its origin, or to push them away from its origin.
Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported.
Note: Particle attractors only affect GpuParticles3D, not CpuParticles3D.
- GpuParticlesAttractorSphere3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesAttractorSphere3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesAttractorSphere3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesAttractorVectorField3D
A box-shaped attractor with varying directions and strengths defined in it that influences particles from GpuParticles3D nodes.
Unlike GpuParticlesAttractorBox3D, GpuParticlesAttractorVectorField3D uses a Texture to affect attraction strength within the box. This can be used to create complex attraction scenarios where particles travel in different directions depending on their location. This can be useful for weather effects such as sandstorms.
Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported.
Note: Particle attractors only affect GpuParticles3D, not CpuParticles3D.
- GpuParticlesAttractorVectorField3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesAttractorVectorField3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesAttractorVectorField3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesCollision3D
Particle collision shapes can be used to make particles stop or bounce against them.
Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported.
Particle collision shapes can be temporarily disabled by hiding them.
Note: CollisionMode must be Rigid or HideOnContact on the GpuParticles3D's process material for collision to work.
Note: Particle collision only affects GpuParticles3D, not CpuParticles3D.
Note: Particles pushed by a collider that is being moved will not be interpolated, which can result in visible stuttering. This can be alleviated by setting FixedFps to
0
or a value that matches or exceeds the target framerate.
- GpuParticlesCollision3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesCollision3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesCollision3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesCollisionBox3D
A box-shaped 3D particle collision shape affecting GpuParticles3D nodes.
Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported.
Note: CollisionMode must be Rigid or HideOnContact on the GpuParticles3D's process material for collision to work.
Note: Particle collision only affects GpuParticles3D, not CpuParticles3D.
- GpuParticlesCollisionBox3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesCollisionBox3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesCollisionBox3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesCollisionHeightField3D
A real-time heightmap-shaped 3D particle collision shape affecting GpuParticles3D nodes.
Heightmap shapes allow for efficiently representing collisions for convex and concave objects with a single "floor" (such as terrain). This is less flexible than GpuParticlesCollisionSdf3D, but it doesn't require a baking step.
GpuParticlesCollisionHeightField3D can also be regenerated in real-time when it is moved, when the camera moves, or even continuously. This makes GpuParticlesCollisionHeightField3D a good choice for weather effects such as rain and snow and games with highly dynamic geometry. However, this class is limited since heightmaps cannot represent overhangs (e.g. indoors or caves).
Note: CollisionMode must be
true
on the GpuParticles3D's process material for collision to work.Note: Particle collision only affects GpuParticles3D, not CpuParticles3D.
- GpuParticlesCollisionHeightField3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesCollisionHeightField3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesCollisionHeightField3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesCollisionSdf3D
A baked signed distance field 3D particle collision shape affecting GpuParticles3D nodes.
Signed distance fields (SDF) allow for efficiently representing approximate collision shapes for convex and concave objects of any shape. This is more flexible than GpuParticlesCollisionHeightField3D, but it requires a baking step.
Baking: The signed distance field texture can be baked by selecting the GpuParticlesCollisionSdf3D node in the editor, then clicking Bake SDF at the top of the 3D viewport. Any visibleMeshInstance3Ds within the Size will be taken into account for baking, regardless of their GIMode.
Note: Baking a GpuParticlesCollisionSdf3D's Texture is only possible within the editor, as there is no bake method exposed for use in exported projects. However, it's still possible to load pre-baked Texture3Ds into its Texture property in an exported project.
Note: CollisionMode must be Rigid or HideOnContact on the GpuParticles3D's process material for collision to work.
Note: Particle collision only affects GpuParticles3D, not CpuParticles3D.
- GpuParticlesCollisionSdf3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesCollisionSdf3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesCollisionSdf3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GpuParticlesCollisionSphere3D
A sphere-shaped 3D particle collision shape affecting GpuParticles3D nodes.
Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported.
Note: CollisionMode must be Rigid or HideOnContact on the GpuParticles3D's process material for collision to work.
Note: Particle collision only affects GpuParticles3D, not CpuParticles3D.
- GpuParticlesCollisionSphere3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GpuParticlesCollisionSphere3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GpuParticlesCollisionSphere3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Gradient
This resource describes a color transition by defining a set of colored points and how to interpolate between them.
See also Curve which supports more complex easing methods, but does not support colors.
- Gradient.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Gradient.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Gradient.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GradientTexture1D
A 1D texture that obtains colors from a Gradient to fill the texture data. The texture is filled by sampling the gradient for each pixel. Therefore, the texture does not necessarily represent an exact copy of the gradient, as it may miss some colors if there are not enough pixels. See also GradientTexture2D, CurveTexture and CurveXyzTexture.
- GradientTexture1D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GradientTexture1D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GradientTexture1D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GradientTexture2D
A 2D texture that obtains colors from a Gradient to fill the texture data. This texture is able to transform a color transition into different patterns such as a linear or a radial gradient. The gradient is sampled individually for each pixel so it does not necessarily represent an exact copy of the gradient(see Width and Height). See also GradientTexture1D, CurveTexture and CurveXyzTexture.
- GradientTexture2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GradientTexture2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GradientTexture2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GraphEdit
GraphEdit provides tools for creation, manipulation, and display of various graphs. Its main purpose in the engine is to power the visual programming systems, such as visual shaders, but it is also available for use in user projects.
GraphEdit by itself is only an empty container, representing an infinite grid where GraphNodes can be placed. Each GraphNode represents a node in the graph, a single unit of data in the connected scheme. GraphEdit, in turn, helps to control various interactions with nodes and between nodes. When the user attempts to connect, disconnect, or delete a GraphNode, a signal is emitted in the GraphEdit, but no action is taken by default. It is the responsibility of the programmer utilizing this control to implement the necessary logic to determine how each request should be handled.
Performance: It is greatly advised to enable low-processor usage mode (see LowProcessorUsageMode) when using GraphEdits.
- GraphEdit.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GraphEdit.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GraphEdit.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GraphElement
GraphElement allows to create custom elements for a GraphEdit graph. By default such elements can be selected, resized, and repositioned, but they cannot be connected. For a graph element that allows for connections see GraphNode.
- GraphElement.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GraphElement.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GraphElement.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GraphNode
GraphNode allows to create nodes for a GraphEdit graph with customizable content based on its child controls. GraphNode is derived from Container and it is responsible for placing its children on screen. This works similar to VBoxContainer. Children, in turn, provide GraphNode with so-called slots, each of which can have a connection port on either side.
Each GraphNode slot is defined by its index and can provide the node with up to two ports: one on the left, and one on the right. By convention the left port is also referred to as the input port and the right port is referred to as the output port. Each port can be enabled and configured individually, using different type and color. The type is an arbitrary value that you can define using your own considerations. The parent GraphEdit will receive this information on each connect and disconnect request.
Slots can be configured in the Inspector dock once you add at least one child Control. The properties are grouped by each slot's index in the "Slot" section.
Note: While GraphNode is set up using slots and slot indices, connections are made between the ports which are enabled. Because of that GraphEdit uses the port's index and not the slot's index. You can use GetInputPortSlot(int) and GetOutputPortSlot(int) to get the slot index from the port index.
- GraphNode.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GraphNode.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GraphNode.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GridContainer
GridContainer arranges its child controls in a grid layout. The number of columns is specified by the Columns property, whereas the number of rows depends on how many are needed for the child controls. The number of rows and columns is preserved for every size of the container.
Note: GridContainer only works with child nodes inheriting from Control. It won't rearrange child nodes inheriting from Node2D.
- GridContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GridContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GridContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GridMap
GridMap lets you place meshes on a grid interactively. It works both from the editor and from scripts, which can help you create in-game level editors.
GridMaps use a MeshLibrary which contains a list of tiles. Each tile is a mesh with materials plus optional collision and navigation shapes.
A GridMap contains a collection of cells. Each grid cell refers to a tile in the MeshLibrary. All cells in the map have the same dimensions.
Internally, a GridMap is split into a sparse collection of octants for efficient rendering and physics processing. Every octant has the same dimensions and can contain several cells.
Note: GridMap doesn't extend VisualInstance3D and therefore can't be hidden or cull masked based on Layers. If you make a light not affect the first layer, the whole GridMap won't be lit by the light in question.
- GridMap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GridMap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GridMap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- GrooveJoint2D
A physics joint that restricts the movement of two 2D physics bodies to a fixed axis. For example, a StaticBody2D representing a piston base can be attached to a RigidBody2D representing the piston head, moving up and down.
- GrooveJoint2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- GrooveJoint2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- GrooveJoint2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HBoxContainer
A variant of BoxContainer that can only arrange its child controls horizontally. Child controls are rearranged automatically when their minimum size changes.
- HBoxContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HBoxContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HBoxContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HFlowContainer
A variant of FlowContainer that can only arrange its child controls horizontally, wrapping them around at the borders. This is similar to how text in a book wraps around when no more words can fit on a line.
- HFlowContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HFlowContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HFlowContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HScrollBar
A horizontal scrollbar, typically used to navigate through content that extends beyond the visible width of a control. It is a Range-based control and goes from left (min) to right (max).
- HScrollBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HScrollBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HScrollBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HSeparator
A horizontal separator used for separating other controls that are arranged vertically. HSeparator is purely visual and normally drawn as a StyleBoxLine.
- HSeparator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HSeparator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HSeparator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HSlider
A horizontal slider, used to adjust a value by moving a grabber along a horizontal axis. It is a Range-based control and goes from left (min) to right (max).
- HSlider.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HSlider.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HSlider.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HSplitContainer
A container that accepts only two child controls, then arranges them horizontally and creates a divisor between them. The divisor can be dragged around to change the size relation between the child controls.
- HSplitContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HSplitContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HSplitContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HashingContext
The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. Useful for computing hashes of big files (so you don't have to load them all in memory), network streams, and data streams in general (so you don't have to hold buffers).
The HashingContext.HashType enum shows the supported hashing algorithms.
public const int ChunkSize = 1024;
public void HashFile(string path) { // Check that file exists. if (!FileAccess.FileExists(path)) { return; } // Start a SHA-256 context. var ctx = new HashingContext(); ctx.Start(HashingContext.HashType.Sha256); // Open the file to hash. using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read); // Update the context after reading each chunk. while (!file.EofReached()) { ctx.Update(file.GetBuffer(ChunkSize)); } // Get the computed hash. byte[] res = ctx.Finish(); // Print the result as hex string and array. GD.PrintT(res.HexEncode(), (Variant)res); }
- HashingContext.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HashingContext.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HashingContext.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HeightMapShape3D
A 3D heightmap shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. This is useful for terrain, but it is limited as overhangs (such as caves) cannot be stored. Holes in a HeightMapShape3D are created by assigning very low values to points in the desired area.
Performance: HeightMapShape3D is faster to check collisions against than ConcavePolygonShape3D, but it is significantly slower than primitive shapes like BoxShape3D.
- HeightMapShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HeightMapShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HeightMapShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HingeJoint3D
A physics joint that restricts the rotation of a 3D physics body around an axis relative to another physics body. For example, Body A can be a StaticBody3D representing a door hinge that a RigidBody3D rotates around.
- HingeJoint3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HingeJoint3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HingeJoint3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HmacContext
The HMACContext class is useful for advanced HMAC use cases, such as streaming the message as it supports creating the message over time rather than providing it all at once.
using Godot; using System.Diagnostics;
public partial class MyNode : Node { private HmacContext _ctx = new HmacContext();
public override void _Ready() { byte[] key = "supersecret".ToUtf8Buffer(); Error err = _ctx.Start(HashingContext.HashType.Sha256, key); Debug.Assert(err == Error.Ok); byte[] msg1 = "this is ".ToUtf8Buffer(); byte[] msg2 = "super duper secret".ToUtf8Buffer(); err = _ctx.Update(msg1); Debug.Assert(err == Error.Ok); err = _ctx.Update(msg2); Debug.Assert(err == Error.Ok); byte[] hmac = _ctx.Finish(); GD.Print(hmac.HexEncode()); }
}
- HmacContext.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HmacContext.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HmacContext.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HttpClient
Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases.
See the HttpRequest node for a higher-level alternative.
Note: This client only needs to connect to a host once (see ConnectToHost(string, int, TlsOptions)) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See Request(Method, string, string[], string) for a full example and to get started.
A HttpClient should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports Transport Layer Security (TLS), including server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side.
For more information on HTTP, see MDN's documentation on HTTP (or read RFC 2616 to get it straight from the source).
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead.
Note: When performing HTTP requests from a project exported to Web, keep in mind the remote server may not allow requests from foreign origins due to CORS. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the
Access-Control-Allow-Origin: *
HTTP header.Note: TLS support is currently limited to TLS 1.0, TLS 1.1, and TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an error.
Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period.
- HttpClient.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HttpClient.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HttpClient.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- HttpRequest
A node with the ability to send HTTP requests. Uses HttpClient internally.
Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP.
Warning: See the notes and warnings on HttpClient for limitations, especially regarding TLS security.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.Example of contacting a REST API and printing one of its returned fields:
public override void _Ready() { // Create an HTTP request node and connect its completion signal. var httpRequest = new HttpRequest(); AddChild(httpRequest); httpRequest.RequestCompleted += HttpRequestCompleted;
// Perform a GET request. The URL below returns JSON as of writing. Error error = httpRequest.Request("https://httpbin.org/get"); if (error != Error.Ok) { GD.PushError("An error occurred in the HTTP request."); } // Perform a POST request. The URL below returns JSON as of writing. // Note: Don't make simultaneous requests using a single HTTPRequest node. // The snippet below is provided for reference only. string body = new Json().Stringify(new Godot.Collections.Dictionary { { "name", "Godette" } }); error = httpRequest.Request("https://httpbin.org/post", null, HttpClient.Method.Post, body); if (error != Error.Ok) { GD.PushError("An error occurred in the HTTP request."); }
}
// Called when the HTTP request is completed. private void HttpRequestCompleted(long result, long responseCode, string[] headers, byte[] body) { var json = new Json(); json.Parse(body.GetStringFromUtf8()); var response = json.GetData().AsGodotDictionary();
// Will print the user agent string used by the HTTPRequest node (as recognized by httpbin.org). GD.Print((response["headers"].AsGodotDictionary())["User-Agent"]);
}
Example of loading and displaying an image using HTTPRequest:
public override void _Ready() { // Create an HTTP request node and connect its completion signal. var httpRequest = new HttpRequest(); AddChild(httpRequest); httpRequest.RequestCompleted += HttpRequestCompleted;
// Perform the HTTP request. The URL below returns a PNG image as of writing. Error error = httpRequest.Request("https://via.placeholder.com/512"); if (error != Error.Ok) { GD.PushError("An error occurred in the HTTP request."); }
}
// Called when the HTTP request is completed. private void HttpRequestCompleted(long result, long responseCode, string[] headers, byte[] body) { if (result != (long)HttpRequest.Result.Success) { GD.PushError("Image couldn't be downloaded. Try a different image."); } var image = new Image(); Error error = image.LoadPngFromBuffer(body); if (error != Error.Ok) { GD.PushError("Couldn't load the image."); }
var texture = ImageTexture.CreateFromImage(image); // Display the image in a TextureRect node. var textureRect = new TextureRect(); AddChild(textureRect); textureRect.Texture = texture;
}
Gzipped response bodies: HTTPRequest will automatically handle decompression of response bodies. A
Accept-Encoding
header will be automatically added to each of your requests, unless one is already specified. Any response with aContent-Encoding: gzip
header will automatically be decompressed and delivered to you as uncompressed bytes.
- HttpRequest.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- HttpRequest.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- HttpRequest.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- IP
IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see StreamPeerTcp and TcpServer). IP provides DNS hostname resolution support, both blocking and threaded.
- IP.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- IP.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- IP.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- IPInstance
IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see StreamPeerTcp and TcpServer). IP provides DNS hostname resolution support, both blocking and threaded.
- IPInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- IPInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- IPInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- IconAttribute
Specifies a custom icon for representing this class in the Godot Editor.
- Image
Native image datatype. Contains image data which can be converted to an ImageTexture and provides commonly used image processing methods. The maximum width and height for an Image are MaxWidth and MaxHeight.
An Image cannot be assigned to a texture property of an object directly (such as Texture), and has to be converted manually to an ImageTexture first.
Note: The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.
- Image.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Image.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Image.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImageFormatLoader
The engine supports multiple image formats out of the box (PNG, SVG, JPEG, WebP to name a few), but you can choose to implement support for additional image formats by extending ImageFormatLoaderExtension.
- ImageFormatLoader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImageFormatLoader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImageFormatLoader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImageFormatLoaderExtension
The engine supports multiple image formats out of the box (PNG, SVG, JPEG, WebP to name a few), but you can choose to implement support for additional image formats by extending this class.
Be sure to respect the documented return types and values. You should create an instance of it, and call AddFormatLoader() to register that loader during the initialization phase.
- ImageFormatLoaderExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImageFormatLoaderExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImageFormatLoaderExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImageTexture
A Texture2D based on an Image. For an image to be displayed, an ImageTexture has to be created from it using the CreateFromImage(Image) method:
var image = Image.load_from_file("res://icon.svg") var texture = ImageTexture.create_from_image(image) $Sprite2D.texture = texture
This way, textures can be created at run-time by loading images both from within the editor and externally.
Warning: Prefer to load imported textures with
@GDScript.load
over loading them from within the filesystem dynamically with Load(string), as it may not work in exported projects:var texture = load("res://icon.svg") $Sprite2D.texture = texture
This is because images have to be imported as a CompressedTexture2D first to be loaded with
@GDScript.load
. If you'd still like to load an image file just like any other Resource, import it as an Image resource instead, and then load it normally using the@GDScript.load
method.Note: The image can be retrieved from an imported texture using the GetImage() method, which returns a copy of the image:
var texture = load("res://icon.svg") var image: Image = texture.get_image()
An ImageTexture is not meant to be operated from within the editor interface directly, and is mostly useful for rendering images on screen dynamically via code. If you need to generate images procedurally from within the editor, consider saving and importing images as custom texture resources implementing a new
EditorImportPlugin
.Note: The maximum texture size is 16384×16384 pixels due to graphics hardware limitations.
- ImageTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImageTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImageTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImageTexture3D
ImageTexture3D is a 3-dimensional ImageTexture that has a width, height, and depth. See also ImageTextureLayered.
3D textures are typically used to store density maps for FogMaterial, color correction LUTs for Environment, vector fields for GpuParticlesAttractorVectorField3D and collision maps for GpuParticlesCollisionSdf3D. 3D textures can also be used in custom shaders.
- ImageTexture3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImageTexture3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImageTexture3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImageTextureLayered
Base class for Texture2DArray, Cubemap and CubemapArray. Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also Texture3D.
- ImageTextureLayered.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImageTextureLayered.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImageTextureLayered.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImmediateMesh
A mesh type optimized for creating geometry manually, similar to OpenGL 1.x immediate mode.
Here's a sample on how to generate a triangular face:
var mesh = new ImmediateMesh(); mesh.SurfaceBegin(Mesh.PrimitiveType.Triangles); mesh.SurfaceAddVertex(Vector3.Left); mesh.SurfaceAddVertex(Vector3.Forward); mesh.SurfaceAddVertex(Vector3.Zero); mesh.SurfaceEnd();
Note: Generating complex geometries with ImmediateMesh is highly inefficient. Instead, it is designed to generate simple geometry that changes often.
- ImmediateMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImmediateMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImmediateMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImporterMesh
ImporterMesh is a type of Resource analogous to ArrayMesh. It contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials.
Unlike its runtime counterpart, ImporterMesh contains mesh data before various import steps, such as lod and shadow mesh generation, have taken place. Modify surface data by calling Clear(), followed by AddSurface(PrimitiveType, Array, Array<Array>, Dictionary, Material, string, ulong) for each surface.
- ImporterMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImporterMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImporterMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ImporterMeshInstance3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ImporterMeshInstance3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ImporterMeshInstance3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Input
The Input singleton handles key presses, mouse buttons and movement, gamepads, and input actions. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the InputMap class.
Note: Input's methods reflect the global input state and are not affected by AcceptEvent() or SetInputAsHandled(), as those methods only deal with the way input is propagated in the SceneTree.
- Input.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Input.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Input.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEvent
Abstract base class of all types of input events. See _Input(InputEvent).
- InputEvent.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEvent.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEvent.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventAction
Contains a generic action which can be targeted from several types of inputs. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the InputMap class.
Note: Unlike the other InputEvent subclasses which map to unique physical events, this virtual one is not emitted by the engine. This class is useful to emit actions manually with ParseInputEvent(InputEvent), which are then received in _Input(InputEvent). To check if a physical event matches an action from the Input Map, use IsAction(StringName, bool) and IsActionPressed(StringName, bool, bool).
- InputEventAction.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventAction.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventAction.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventFromWindow
InputEventFromWindow represents events specifically received by windows. This includes mouse events, keyboard events in focused windows or touch screen actions.
- InputEventFromWindow.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventFromWindow.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventFromWindow.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventGesture
InputEventGestures are sent when a user performs a supported gesture on a touch screen. Gestures can't be emulated using mouse, because they typically require multi-touch.
- InputEventGesture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventGesture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventGesture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventJoypadButton
Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see InputEventJoypadMotion.
- InputEventJoypadButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventJoypadButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventJoypadButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventJoypadMotion
Stores information about joystick motions. One InputEventJoypadMotion represents one axis at a time. For gamepad buttons, see InputEventJoypadButton.
- InputEventJoypadMotion.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventJoypadMotion.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventJoypadMotion.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventKey
An input event for keys on a keyboard. Supports key presses, key releases and Echo events. It can also be received in _UnhandledKeyInput(InputEvent).
Note: Events received from the keyboard usually have all properties set. Event mappings should have only one of the Keycode, PhysicalKeycode or Unicode set.
When events are compared, properties are checked in the following priority - Keycode, PhysicalKeycode and Unicode. Events with the first matching value will be considered equal.
- InputEventKey.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventKey.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventKey.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventMagnifyGesture
Stores the factor of a magnifying touch gesture. This is usually performed when the user pinches the touch screen and used for zooming in/out.
Note: On Android, this requires the
ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures
project setting to be enabled.
- InputEventMagnifyGesture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventMagnifyGesture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventMagnifyGesture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventMidi
InputEventMIDI stores information about messages from MIDI (Musical Instrument Digital Interface) devices. These may include musical keyboards, synthesizers, and drum machines.
MIDI messages can be received over a 5-pin MIDI connector or over USB. If your device supports both be sure to check the settings in the device to see which output it is using.
By default, Godot does not detect MIDI devices. You need to call OpenMidiInputs(), first. You can check which devices are detected with GetConnectedMidiInputs(), and close the connection with CloseMidiInputs().
public override void _Ready() { OS.OpenMidiInputs(); GD.Print(OS.GetConnectedMidiInputs()); }
public override void _Input(InputEvent inputEvent) { if (inputEvent is InputEventMidi midiEvent) { PrintMIDIInfo(midiEvent); } }
private void PrintMIDIInfo(InputEventMidi midiEvent) { GD.Print(midiEvent); GD.Print($"Channel {midiEvent.Channel}"); GD.Print($"Message {midiEvent.Message}"); GD.Print($"Pitch {midiEvent.Pitch}"); GD.Print($"Velocity {midiEvent.Velocity}"); GD.Print($"Instrument {midiEvent.Instrument}"); GD.Print($"Pressure {midiEvent.Pressure}"); GD.Print($"Controller number: {midiEvent.ControllerNumber}"); GD.Print($"Controller value: {midiEvent.ControllerValue}"); }
Note: Godot does not support MIDI output, so there is no way to emit MIDI messages from Godot. Only MIDI input is supported.
- InputEventMidi.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventMidi.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventMidi.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventMouse
Stores general information about mouse events.
- InputEventMouse.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventMouse.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventMouse.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventMouseButton
Stores information about mouse click events. See _Input(InputEvent).
- InputEventMouseButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventMouseButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventMouseButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventMouseMotion
Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See _Input(InputEvent).
Note: By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set UseAccumulatedInput to
false
to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing Bresenham's line algorithm as well to avoid visible gaps in lines if the user is moving the mouse quickly.
- InputEventMouseMotion.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventMouseMotion.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventMouseMotion.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventPanGesture
Stores information about pan gestures. A pan gesture is performed when the user swipes the touch screen with two fingers. It's typically used for panning/scrolling.
Note: On Android, this requires the
ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures
project setting to be enabled.
- InputEventPanGesture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventPanGesture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventPanGesture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventScreenDrag
Stores information about screen drag events. See _Input(InputEvent).
- InputEventScreenDrag.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventScreenDrag.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventScreenDrag.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventScreenTouch
Stores information about multi-touch press/release input events. Supports touch press, touch release and Index for multi-touch count and order.
- InputEventScreenTouch.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventScreenTouch.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventScreenTouch.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventShortcut
InputEventShortcut is a special event that can be received in _UnhandledKeyInput(InputEvent). It is typically sent by the editor's Command Palette to trigger actions, but can also be sent manually using PushInput(InputEvent, bool).
- InputEventShortcut.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventShortcut.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventShortcut.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputEventWithModifiers
Stores information about mouse, keyboard, and touch gesture input events. This includes information about which modifier keys are pressed, such as Shift or Alt. See _Input(InputEvent).
- InputEventWithModifiers.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputEventWithModifiers.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputEventWithModifiers.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputInstance
The Input singleton handles key presses, mouse buttons and movement, gamepads, and input actions. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the InputMap class.
Note: Input's methods reflect the global input state and are not affected by AcceptEvent() or SetInputAsHandled(), as those methods only deal with the way input is propagated in the SceneTree.
- InputInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputMap
Manages all InputEventAction which can be created/modified from the project settings menu Project > Project Settings > Input Map or in code with AddAction(StringName, float) and ActionAddEvent(StringName, InputEvent). See _Input(InputEvent).
- InputMap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputMap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputMap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InputMapInstance
Manages all InputEventAction which can be created/modified from the project settings menu Project > Project Settings > Input Map or in code with AddAction(StringName, float) and ActionAddEvent(StringName, InputEvent). See _Input(InputEvent).
- InputMapInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InputMapInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InputMapInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- InstancePlaceholder
Turning on the option Load As Placeholder for an instantiated scene in the editor causes it to be replaced by an InstancePlaceholder when running the game, this will not replace the node in the editor. This makes it possible to delay actually loading the scene until calling CreateInstance(bool, PackedScene). This is useful to avoid loading large scenes all at once by loading parts of it selectively.
The InstancePlaceholder does not have a transform. This causes any child nodes to be positioned relatively to the Viewport from point (0,0), rather than their parent as displayed in the editor. Replacing the placeholder with a scene with a transform will transform children relatively to their parent again.
- InstancePlaceholder.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- InstancePlaceholder.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- InstancePlaceholder.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- IntervalTweener
IntervalTweener is used to make delays in a tweening sequence. See TweenInterval(double) for more usage information.
Note: TweenInterval(double) is the only correct way to create IntervalTweener. Any IntervalTweener created manually will not function correctly.
- IntervalTweener.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- IntervalTweener.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- IntervalTweener.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ItemList
This control provides a vertical list of selectable items that may be in a single or in multiple columns, with each item having options for text and an icon. Tooltips are supported and may be different for every item in the list.
Selectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be "activated" by double-clicking them or by pressing Enter.
Item text only supports single-line strings. Newline characters (e.g.
\n
) in the string won't produce a newline. Text wrapping is enabled in Top mode, but the column's width is adjusted to fully fit its content by default. You need to set FixedColumnWidth greater than zero to wrap the text.All
set_*
methods allow negative item indices, i.e.-1
to access the last item,-2
to select the second-to-last item, and so on.Incremental search: Like PopupMenu and Tree, ItemList supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing
ProjectSettings.gui/timers/incremental_search_max_interval_msec
.
- ItemList.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ItemList.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ItemList.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JavaClass.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JavaClass.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JavaClass.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JavaClassWrapper.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JavaClassWrapper.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JavaClassWrapper.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JavaClassWrapperInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JavaClassWrapperInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JavaClassWrapperInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JavaScriptBridge
The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs.
Note: This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See Compiling for the Web in the documentation for more information.
- JavaScriptBridge.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JavaScriptBridge.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JavaScriptBridge.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JavaScriptBridgeInstance
The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs.
Note: This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See Compiling for the Web in the documentation for more information.
- JavaScriptBridgeInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JavaScriptBridgeInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JavaScriptBridgeInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JavaScriptObject
JavaScriptObject is used to interact with JavaScript objects retrieved or created via GetInterface(string), CreateObject(string, params Variant[]), or CreateCallback(Callable).
Example:
extends Node
var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # This reference must be kept var console = JavaScriptBridge.get_interface("console")
func _init(): var buf = JavaScriptBridge.create_object("ArrayBuffer", 10) # new ArrayBuffer(10) print(buf) # prints [JavaScriptObject:OBJECT_ID] var uint8arr = JavaScriptBridge.create_object("Uint8Array", buf) # new Uint8Array(buf) uint8arr[1] = 255 prints(uint8arr[1], uint8arr.byteLength) # prints 255 10 console.log(uint8arr) # prints in browser console "Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, 0 ]"
# Equivalent of JavaScriptBridge: Array.from(uint8arr).forEach(myCallback) JavaScriptBridge.get_interface("Array").from(uint8arr).forEach(_my_js_callback)
func myCallback(args): # Will be called with the parameters passed to the "forEach" callback # [0, 0, [JavaScriptObject:1173]] # [255, 1, [JavaScriptObject:1173]] # ... # [0, 9, [JavaScriptObject:1180]] print(args)
Note: Only available in the Web platform.
- JavaScriptObject.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JavaScriptObject.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JavaScriptObject.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JniSingleton
The JNISingleton is implemented only in the Android export. It's used to call methods and connect signals from an Android plugin written in Java or Kotlin. Methods and signals can be called and connected to the JNISingleton as if it is a Node. See Java Native Interface - Wikipedia for more information.
- JniSingleton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JniSingleton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JniSingleton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Joint2D
Abstract base class for all joints in 2D physics. 2D joints bind together two physics bodies and apply a constraint.
- Joint2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Joint2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Joint2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Joint3D
Abstract base class for all joints in 3D physics. 3D joints bind together two physics bodies and apply a constraint.
- Joint3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Joint3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Joint3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Json
The Json enables all data types to be converted to and from a JSON string. This useful for serializing data to save to a file or send over the network.
Stringify(Variant, string, bool, bool) is used to convert any data type into a JSON string.
Parse(string, bool) is used to convert any existing JSON data into a Variant that can be used within Godot. If successfully parsed, use Data to retrieve the Variant, and use
typeof
to check if the Variant's type is what you expect. JSON Objects are converted into a Dictionary, but JSON data can be used to store Arrays, numbers, strings and even just a boolean.Example
var data_to_send = ["a", "b", "c"] var json_string = JSON.stringify(data_to_send) # Save data # ... # Retrieve data var json = JSON.new() var error = json.parse(json_string) if error == OK: var data_received = json.data if typeof(data_received) == TYPE_ARRAY: print(data_received) # Prints array else: print("Unexpected data") else: print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line())
Alternatively, you can parse string using the static ParseString(string) method, but it doesn't allow to handle errors.
var data = JSON.parse_string(json_string) # Returns null if parsing failed.
Note: Both parse methods do not fully comply with the JSON specification:
- Trailing commas in arrays or objects are ignored, instead of causing a parser error.
- New line and tab characters are accepted in string literals, and are treated like their corresponding escape sequences
\n
and\t
.- Numbers are parsed using
String.to_float
which is generally more lax than the JSON specification.- Certain errors, such as invalid Unicode sequences, do not cause a parser error. Instead, the string is cleansed and an error is logged to the console.
- Json.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Json.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Json.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- JsonRpc
JSON-RPC is a standard which wraps a method call in a Json object. The object has a particular structure and identifies which method is called, the parameters to that function, and carries an ID to keep track of responses. This class implements that standard on top of Dictionary; you will have to convert between a Dictionary and Json with other functions.
- JsonRpc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- JsonRpc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- JsonRpc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- KinematicCollision2D
Holds collision data from the movement of a PhysicsBody2D, usually from MoveAndCollide(Vector2, bool, float, bool). When a PhysicsBody2D is moved, it stops if it detects a collision with another body. If a collision is detected, a KinematicCollision2D object is returned.
The collision data includes the colliding object, the remaining motion, and the collision position. This data can be used to determine a custom response to the collision.
- KinematicCollision2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- KinematicCollision2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- KinematicCollision2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- KinematicCollision3D
Holds collision data from the movement of a PhysicsBody3D, usually from MoveAndCollide(Vector3, bool, float, bool, int). When a PhysicsBody3D is moved, it stops if it detects a collision with another body. If a collision is detected, a KinematicCollision3D object is returned.
The collision data includes the colliding object, the remaining motion, and the collision position. This data can be used to determine a custom response to the collision.
- KinematicCollision3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- KinematicCollision3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- KinematicCollision3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Label
A control for displaying plain text. It gives you control over the horizontal and vertical alignment and can wrap the text inside the node's bounding rectangle. It doesn't support bold, italics, or other rich text formatting. For that, use RichTextLabel instead.
- Label.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Label.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Label.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Label3D
A node for displaying plain text in 3D space. By adjusting various properties of this node, you can configure things such as the text's appearance and whether it always faces the camera.
- Label3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Label3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Label3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LabelSettings
LabelSettings is a resource that provides common settings to customize the text in a Label. It will take priority over the properties defined in Theme. The resource can be shared between multiple labels and changed on the fly, so it's convenient and flexible way to setup text style.
- LabelSettings.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LabelSettings.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LabelSettings.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Light2D
Casts light in a 2D environment. A light is defined as a color, an energy value, a mode (see constants), and various other parameters (range and shadows-related).
- Light2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Light2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Light2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Light3D
Light3D is the abstract base class for light nodes. As it can't be instantiated, it shouldn't be used directly. Other types of light nodes inherit from it. Light3D contains the common variables and parameters used for lighting.
- Light3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Light3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Light3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LightOccluder2D
Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must be provided with an OccluderPolygon2D in order for the shadow to be computed.
- LightOccluder2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LightOccluder2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LightOccluder2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LightmapGI
The LightmapGI node is used to compute and store baked lightmaps. Lightmaps are used to provide high-quality indirect lighting with very little light leaking. LightmapGI can also provide rough reflections using spherical harmonics if Directional is enabled. Dynamic objects can receive indirect lighting thanks to light probes, which can be automatically placed by setting GenerateProbesSubdiv to a value other than Disabled. Additional lightmap probes can also be added by creating LightmapProbe nodes. The downside is that lightmaps are fully static and cannot be baked in an exported project. Baking a LightmapGI node is also slower compared to VoxelGI.
Procedural generation: Lightmap baking functionality is only available in the editor. This means LightmapGI is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use VoxelGI or SDFGI instead (see SdfgiEnabled).
Performance: LightmapGI provides the best possible run-time performance for global illumination. It is suitable for low-end hardware including integrated graphics and mobile devices.
Note: Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again.
Note: Lightmap baking on CsgShape3Ds and PrimitiveMeshes is not supported, as these cannot store UV2 data required for baking.
Note: If no custom lightmappers are installed, LightmapGI can only be baked when using the Vulkan backend (Forward+ or Mobile), not OpenGL. Additionally, LightmapGI rendering is not currently supported when using the OpenGL backend (Compatibility).
- LightmapGI.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LightmapGI.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LightmapGI.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LightmapGIData
LightmapGIData contains baked lightmap and dynamic object probe data for LightmapGI. It is replaced every time lightmaps are baked in LightmapGI.
- LightmapGIData.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LightmapGIData.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LightmapGIData.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LightmapProbe
LightmapProbe represents the position of a single manually placed probe for dynamic object lighting with LightmapGI.
Typically, LightmapGI probes are placed automatically by setting GenerateProbesSubdiv to a value other than Disabled. By creating LightmapProbe nodes before baking lightmaps, you can add more probes in specific areas for greater detail, or disable automatic generation and rely only on manually placed probes instead.
- LightmapProbe.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LightmapProbe.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LightmapProbe.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Lightmapper
This class should be extended by custom lightmapper classes. Lightmappers can then be used with LightmapGI to provide fast baked global illumination in 3D.
Godot contains a built-in GPU-based lightmapper LightmapperRD that uses compute shaders, but custom lightmappers can be implemented by C++ modules.
- Lightmapper.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Lightmapper.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Lightmapper.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LightmapperRD
LightmapperRD ("RD" stands for RenderingDevice) is the built-in GPU-based lightmapper for use with LightmapGI. On most dedicated GPUs, it can bake lightmaps much faster than most CPU-based lightmappers. LightmapperRD uses compute shaders to bake lightmaps, so it does not require CUDA or OpenCL libraries to be installed to be usable.
Note: Only usable when using the Vulkan backend (Forward+ or Mobile), not OpenGL.
- LightmapperRD.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LightmapperRD.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LightmapperRD.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Line2D
This node draws a 2D polyline, i.e. a shape consisting of several points connected by segments. Line2D is not a mathematical polyline, i.e. the segments are not infinitely thin. It is intended for rendering and it can be colored and optionally textured.
Warning: Certain configurations may be impossible to draw nicely, such as very sharp angles. In these situations, the node uses fallback drawing logic to look decent.
Note: Line2D is drawn using a 2D mesh.
- Line2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Line2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Line2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LineEdit
LineEdit provides an input field for editing a single line of text. It features many built-in shortcuts that are always available (Ctrl here maps to Cmd on macOS):
- Ctrl + C: Copy
- Ctrl + X: Cut
- Ctrl + V or Ctrl + Y: Paste/"yank"
- Ctrl + Z: Undo
- Ctrl + ~: Swap input direction.
- Ctrl + Shift + Z: Redo
- Ctrl + U: Delete text from the caret position to the beginning of the line
- Ctrl + K: Delete text from the caret position to the end of the line
- Ctrl + A: Select all text
- Up Arrow/Down Arrow: Move the caret to the beginning/end of the line
On macOS, some extra keyboard shortcuts are available:
- Cmd + F: Same as Right Arrow, move the caret one character right
- Cmd + B: Same as Left Arrow, move the caret one character left
- Cmd + P: Same as Up Arrow, move the caret to the previous line
- Cmd + N: Same as Down Arrow, move the caret to the next line
- Cmd + D: Same as Delete, delete the character on the right side of caret
- Cmd + H: Same as Backspace, delete the character on the left side of the caret
- Cmd + A: Same as Home, move the caret to the beginning of the line
- Cmd + E: Same as End, move the caret to the end of the line
- Cmd + Left Arrow: Same as Home, move the caret to the beginning of the line
- Cmd + Right Arrow: Same as End, move the caret to the end of the line
- LineEdit.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LineEdit.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LineEdit.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- LinkButton
A button that represents a link. This type of button is primarily used for interactions that cause a context change (like linking to a web page).
See also BaseButton which contains common properties and methods associated with this node.
- LinkButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- LinkButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- LinkButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MainLoop
MainLoop is the abstract base class for a Godot project's game loop. It is inherited by SceneTree, which is the default game loop implementation used in Godot projects, though it is also possible to write and use one's own MainLoop subclass instead of the scene tree.
Upon the application start, a MainLoop implementation must be provided to the OS; otherwise, the application will exit. This happens automatically (and a SceneTree is created) unless a MainLoopScript is provided from the command line (with e.g.
godot -s my_loop.gd
) or the "Main Loop Type" project setting is overwritten.Here is an example script implementing a simple MainLoop:
using Godot;
[GlobalClass] public partial class CustomMainLoop : MainLoop { private double _timeElapsed = 0;
public override void _Initialize() { GD.Print("Initialized:"); GD.Print($" Starting Time: {_timeElapsed}"); } public override bool _Process(double delta) { _timeElapsed += delta; // Return true to end the main loop. return Input.GetMouseButtonMask() != 0 || Input.IsKeyPressed(Key.Escape); } private void _Finalize() { GD.Print("Finalized:"); GD.Print($" End Time: {_timeElapsed}"); }
}
- MainLoop.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MainLoop.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MainLoop.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MarginContainer
MarginContainer adds an adjustable margin on each side of its child controls. The margins are added around all children, not around each individual one. To control the MarginContainer's margins, use the
margin_*
theme properties listed below.Note: The margin sizes are theme overrides, not normal properties. This is an example of how to change them in code:
// This code sample assumes the current script is extending MarginContainer. int marginValue = 100; AddThemeConstantOverride("margin_top", marginValue); AddThemeConstantOverride("margin_left", marginValue); AddThemeConstantOverride("margin_bottom", marginValue); AddThemeConstantOverride("margin_right", marginValue);
- MarginContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MarginContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MarginContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Marker2D
Generic 2D position hint for editing. It's just like a plain Node2D, but it displays as a cross in the 2D editor at all times. You can set the cross' visual size by using the gizmo in the 2D editor while the node is selected.
- Marker2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Marker2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Marker2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Marker3D
Generic 3D position hint for editing. It's just like a plain Node3D, but it displays as a cross in the 3D editor at all times.
- Marker3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Marker3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Marker3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Marshalls
Provides data transformation and encoding utility functions.
- Marshalls.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Marshalls.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Marshalls.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MarshallsInstance
Provides data transformation and encoding utility functions.
- MarshallsInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MarshallsInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MarshallsInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Material
Material is a base resource used for coloring and shading geometry. All materials inherit from it and almost all VisualInstance3D derived nodes carry a Material. A few flags and parameters are shared between all material types and are configured here.
Importantly, you can inherit from Material to create your own custom material type in script or in GDExtension.
- Material.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Material.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Material.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Mathf
Provides constants and static methods for common mathematical functions.
- MenuBar
A horizontal menu bar that creates a MenuButton for each PopupMenu child. New items are created by adding PopupMenus to this node.
- MenuBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MenuBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MenuBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MenuButton
A button that brings up a PopupMenu when clicked. To create new items inside this PopupMenu, use
get_popup().add_item("My Item Name")
. You can also create them directly from Godot editor's inspector.See also BaseButton which contains common properties and methods associated with this node.
- MenuButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MenuButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MenuButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Mesh
Mesh is a type of Resource that contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials.
- Mesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Mesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Mesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MeshConvexDecompositionSettings
Parameters to be used with a Mesh convex decomposition operation.
- MeshConvexDecompositionSettings.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MeshConvexDecompositionSettings.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MeshConvexDecompositionSettings.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MeshDataTool
MeshDataTool provides access to individual vertices in a Mesh. It allows users to read and edit vertex data of meshes. It also creates an array of faces and edges.
To use MeshDataTool, load a mesh with CreateFromSurface(ArrayMesh, int). When you are finished editing the data commit the data to a mesh with CommitToSurface(ArrayMesh, ulong).
Below is an example of how MeshDataTool may be used.
var mesh = new ArrayMesh(); mesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, new BoxMesh().GetMeshArrays()); var mdt = new MeshDataTool(); mdt.CreateFromSurface(mesh, 0); for (var i = 0; i < mdt.GetVertexCount(); i++) { Vector3 vertex = mdt.GetVertex(i); // In this example we extend the mesh by one unit, which results in separated faces as it is flat shaded. vertex += mdt.GetVertexNormal(i); // Save your change. mdt.SetVertex(i, vertex); } mesh.ClearSurfaces(); mdt.CommitToSurface(mesh); var mi = new MeshInstance(); mi.Mesh = mesh; AddChild(mi);
See also ArrayMesh, ImmediateMesh and SurfaceTool for procedural geometry generation.
Note: Godot uses clockwise winding order for front faces of triangle primitive modes.
- MeshDataTool.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MeshDataTool.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MeshDataTool.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MeshInstance2D
Node used for displaying a Mesh in 2D. A MeshInstance2D can be automatically created from an existing Sprite2D via a tool in the editor toolbar. Select the Sprite2D node, then choose Sprite2D > Convert to MeshInstance2D at the top of the 2D editor viewport.
- MeshInstance2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MeshInstance2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MeshInstance2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MeshInstance3D
MeshInstance3D 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 render 3D geometry and can be used to instance a single Mesh in many places. This allows reusing geometry, which can save on resources. When a Mesh has to be instantiated more than thousands of times at close proximity, consider using a MultiMesh in a MultiMeshInstance3D instead.
- MeshInstance3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MeshInstance3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MeshInstance3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MeshLibrary
A library of meshes. Contains a list of Mesh resources, each with a name and ID. Each item can also include collision and navigation shapes. This resource is used in GridMap.
- MeshLibrary.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MeshLibrary.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MeshLibrary.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MeshTexture
Simple texture that uses a mesh to draw itself. It's limited because flags can't be changed and region drawing is not supported.
- MeshTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MeshTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MeshTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MethodTweener
MethodTweener is similar to a combination of CallbackTweener and PropertyTweener. It calls a method providing an interpolated value as a parameter. See TweenMethod(Callable, Variant, Variant, double) for more usage information.
The tweener will finish automatically if the callback's target object is freed.
Note: TweenMethod(Callable, Variant, Variant, double) is the only correct way to create MethodTweener. Any MethodTweener created manually will not function correctly.
- MethodTweener.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MethodTweener.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MethodTweener.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MissingNode
This is an internal editor class intended for keeping data of nodes of unknown type (most likely this type was supplied by an extension that is no longer loaded). It can't be manually instantiated or placed in the scene. Ignore it if you don't know what it is.
- MissingNode.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MissingNode.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MissingNode.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MissingResource
This is an internal editor class intended for keeping data of resources of unknown type (most likely this type was supplied by an extension that is no longer loaded). It can't be manually instantiated or placed in the scene. Ignore it if you don't know what it is.
- MissingResource.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MissingResource.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MissingResource.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MobileVRInterface
This is a generic mobile VR implementation where you need to provide details about the phone and HMD used. It does not rely on any existing framework. This is the most basic interface we have. For the best effect, you need a mobile phone with a gyroscope and accelerometer.
Note that even though there is no positional tracking, the camera will assume the headset is at a height of 1.85 meters. You can change this by setting EyeHeight.
You can initialize this interface as follows:
var interface = XRServer.find_interface("Native mobile") if interface and interface.initialize(): get_viewport().xr = true
- MobileVRInterface.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MobileVRInterface.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MobileVRInterface.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MovieWriter
Godot can record videos with non-real-time simulation. Like the
--fixed-fps
command line argument, this forces the reporteddelta
in _Process(double) functions to be identical across frames, regardless of how long it actually took to render the frame. This can be used to record high-quality videos with perfect frame pacing regardless of your hardware's capabilities.Godot has 2 built-in MovieWriters:
- AVI container with MJPEG for video and uncompressed audio (
.avi
file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changingProjectSettings.editor/movie_writer/mjpeg_quality
. The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with VideoStreamPlayer. MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most.- PNG image sequence for video and WAV for audio (
.png
file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as FFmpeg after recording. Transparency is currently not supported, even if the root viewport is set to be transparent.If you need to encode to a different format or pipe a stream through third-party software, you can extend the MovieWriter class to create your own movie writers. This should typically be done using GDExtension for performance reasons.
Editor usage: A default movie file path can be specified in
ProjectSettings.editor/movie_writer/movie_file
. Alternatively, for running single scenes, amovie_file
metadata can be added to the root node, specifying the path to a movie file that will be used when recording that scene. Once a path is set, click the video reel icon in the top-right corner of the editor to enable Movie Maker mode, then run any scene as usual. The engine will start recording as soon as the splash screen is finished, and it will only stop recording when the engine quits. Click the video reel icon again to disable Movie Maker mode. Note that toggling Movie Maker mode does not affect project instances that are already running.Note: MovieWriter is available for use in both the editor and exported projects, but it is not designed for use by end users to record videos while playing. Players wishing to record gameplay videos should install tools such as OBS Studio or SimpleScreenRecorder instead.
- MovieWriter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MovieWriter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MovieWriter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiMesh
MultiMesh provides low-level mesh instancing. Drawing thousands of MeshInstance3D nodes can be slow, since each object is submitted to the GPU then drawn individually.
MultiMesh is much faster as it can draw thousands of instances with a single draw call, resulting in less API overhead.
As a drawback, if the instances are too far away from each other, performance may be reduced as every single instance will always render (they are spatially indexed as one, for the whole object).
Since instances may have any behavior, the AABB used for visibility must be provided by the user.
Note: A MultiMesh is a single object, therefore the same maximum lights per object restriction applies. This means, that once the maximum lights are consumed by one or more instances, the rest of the MultiMesh instances will not receive any lighting.
Note: Blend Shapes will be ignored if used in a MultiMesh.
- MultiMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiMeshInstance2D
MultiMeshInstance2D is a specialized node to instance a MultiMesh resource in 2D.
Usage is the same as MultiMeshInstance3D.
- MultiMeshInstance2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiMeshInstance2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiMeshInstance2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiMeshInstance3D
MultiMeshInstance3D is a specialized node to instance GeometryInstance3Ds based on a MultiMesh resource.
This is useful to optimize the rendering of a high number of instances of a given mesh (for example trees in a forest or grass strands).
- MultiMeshInstance3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiMeshInstance3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiMeshInstance3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiplayerApi
Base class for high-level multiplayer API implementations. See also MultiplayerPeer.
By default, SceneTree has a reference to an implementation of this class and uses it to provide multiplayer capabilities (i.e. RPCs) across the whole scene.
It is possible to override the MultiplayerAPI instance used by specific tree branches by calling the SetMultiplayer(MultiplayerApi, NodePath) method, effectively allowing to run both client and server in the same scene.
It is also possible to extend or replace the default implementation via scripting or native extensions. See MultiplayerApiExtension for details about extensions, SceneMultiplayer for the details about the default implementation.
- MultiplayerApi.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiplayerApi.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiplayerApi.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiplayerApiExtension
This class can be used to augment or replace the default MultiplayerApi implementation via script or extensions.
The following example augment the default implementation (SceneMultiplayer) by logging every RPC being made, and every object being configured for replication.
Then in your main scene or in an autoload call SetMultiplayer(MultiplayerApi, NodePath) to start using your custom MultiplayerApi:
Native extensions can alternatively use the SetDefaultInterface(StringName) method during initialization to configure themselves as the default implementation.
- MultiplayerApiExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiplayerApiExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiplayerApiExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiplayerPeer
Manages the connection with one or more remote peers acting as server or client and assigning unique IDs to each of them. See also MultiplayerApi.
Note: The MultiplayerApi protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- MultiplayerPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiplayerPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiplayerPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiplayerPeerExtension
This class is designed to be inherited from a GDExtension plugin to implement custom networking layers for the multiplayer API (such as WebRTC). All the methods below must be implemented to have a working custom multiplayer implementation. See also MultiplayerApi.
- MultiplayerPeerExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiplayerPeerExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiplayerPeerExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiplayerSpawner
Spawnable scenes can be configured in the editor or through code (see AddSpawnableScene(string)).
Also supports custom node spawns through Spawn(Variant), calling SpawnFunction on all peers.
Internally, MultiplayerSpawner uses ObjectConfigurationAdd(GodotObject, Variant) to notify spawns passing the spawned node as the
object
and itself as theconfiguration
, and ObjectConfigurationRemove(GodotObject, Variant) to notify despawns in a similar way.
- MultiplayerSpawner.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiplayerSpawner.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiplayerSpawner.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MultiplayerSynchronizer
By default, MultiplayerSynchronizer synchronizes configured properties to all peers.
Visibility can be handled directly with SetVisibilityFor(int, bool) or as-needed with AddVisibilityFilter(Callable) and UpdateVisibility(int).
MultiplayerSpawners will handle nodes according to visibility of synchronizers as long as the node at RootPath was spawned by one.
Internally, MultiplayerSynchronizer uses ObjectConfigurationAdd(GodotObject, Variant) to notify synchronization start passing the Node at RootPath as the
object
and itself as theconfiguration
, and uses ObjectConfigurationRemove(GodotObject, Variant) to notify synchronization end in a similar way.Note: Synchronization is not supported for GodotObject type properties, like Resource. Properties that are unique to each peer, like the instance IDs of GodotObjects (see GetInstanceId()) or Rids, will also not work in synchronization.
- MultiplayerSynchronizer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- MultiplayerSynchronizer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- MultiplayerSynchronizer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- MustBeVariantAttribute
Attribute that restricts generic type parameters to be only types that can be marshaled from/to a Variant.
- Mutex
A synchronization mutex (mutual exclusion). This is used to synchronize multiple GodotThreads, and is equivalent to a binary Semaphore. It guarantees that only one thread can access a critical section at a time.
This is a reentrant mutex, meaning that it can be locked multiple times by one thread, provided it also unlocks it as many times.
Warning: Mutexes must be used carefully to avoid deadlocks.
Warning: To ensure proper cleanup without crashes or deadlocks, the following conditions must be met:
- When a Mutex's reference count reaches zero and it is therefore destroyed, no threads (including the one on which the destruction will happen) must have it locked.
- When a GodotThread's reference count reaches zero and it is therefore destroyed, it must not have any mutex locked.
- Mutex.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Mutex.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Mutex.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationAgent2D
A 2D agent used to pathfind to a position while avoiding static and dynamic obstacles. The calculation can be used by the parent node to dynamically move it along the path. Requires navigation data to work correctly.
Dynamic obstacles are avoided using RVO collision avoidance. Avoidance is computed before physics, so the pathfinding information can be used safely in the physics step.
Note: After setting the TargetPosition property, the GetNextPathPosition() method must be used once every physics frame to update the internal path logic of the navigation agent. The vector position it returns should be used as the next movement position for the agent's parent node.
- NavigationAgent2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationAgent2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationAgent2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationAgent3D
A 3D agent used to pathfind to a position while avoiding static and dynamic obstacles. The calculation can be used by the parent node to dynamically move it along the path. Requires navigation data to work correctly.
Dynamic obstacles are avoided using RVO collision avoidance. Avoidance is computed before physics, so the pathfinding information can be used safely in the physics step.
Note: After setting the TargetPosition property, the GetNextPathPosition() method must be used once every physics frame to update the internal path logic of the navigation agent. The vector position it returns should be used as the next movement position for the agent's parent node.
- NavigationAgent3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationAgent3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationAgent3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationLink2D
A link between two positions on NavigationRegion2Ds that agents can be routed through. These positions can be on the same NavigationRegion2D or on two different ones. Links are useful to express navigation methods other than traveling along the surface of the navigation polygon, such as ziplines, teleporters, or gaps that can be jumped across.
- NavigationLink2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationLink2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationLink2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationLink3D
A link between two positions on NavigationRegion3Ds that agents can be routed through. These positions can be on the same NavigationRegion3D or on two different ones. Links are useful to express navigation methods other than traveling along the surface of the navigation mesh, such as ziplines, teleporters, or gaps that can be jumped across.
- NavigationLink3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationLink3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationLink3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationMesh
A navigation mesh is a collection of polygons that define which areas of an environment are traversable to aid agents in pathfinding through complicated spaces.
- NavigationMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationMeshGenerator
This class is responsible for creating and clearing 3D navigation meshes used as NavigationMesh resources inside NavigationRegion3D. The NavigationMeshGenerator has very limited to no use for 2D as the navigation mesh baking process expects 3D node types and 3D source geometry to parse.
The entire navigation mesh baking is best done in a separate thread as the voxelization, collision tests and mesh optimization steps involved are very performance and time hungry operations.
Navigation mesh baking happens in multiple steps and the result depends on 3D source geometry and properties of the NavigationMesh resource. In the first step, starting from a root node and depending on NavigationMesh properties all valid 3D source geometry nodes are collected from the SceneTree. Second, all collected nodes are parsed for their relevant 3D geometry data and a combined 3D mesh is build. Due to the many different types of parsable objects, from normal MeshInstance3Ds to CsgShape3Ds or various CollisionObject3Ds, some operations to collect geometry data can trigger RenderingServer and PhysicsServer3D synchronizations. Server synchronization can have a negative effect on baking time or framerate as it often involves Mutex locking for thread security. Many parsable objects and the continuous synchronization with other threaded Servers can increase the baking time significantly. On the other hand only a few but very large and complex objects will take some time to prepare for the Servers which can noticeably stall the next frame render. As a general rule the total number of parsable objects and their individual size and complexity should be balanced to avoid framerate issues or very long baking times. The combined mesh is then passed to the Recast Navigation Object to test the source geometry for walkable terrain suitable to NavigationMesh agent properties by creating a voxel world around the meshes bounding area.
The finalized navigation mesh is then returned and stored inside the NavigationMesh for use as a resource inside NavigationRegion3D nodes.
Note: Using meshes to not only define walkable surfaces but also obstruct navigation baking does not always work. The navigation baking has no concept of what is a geometry "inside" when dealing with mesh source geometry and this is intentional. Depending on current baking parameters, as soon as the obstructing mesh is large enough to fit a navigation mesh area inside, the baking will generate navigation mesh areas that are inside the obstructing source geometry mesh.
- NavigationMeshGenerator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationMeshGenerator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationMeshGenerator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationMeshGeneratorInstance
This class is responsible for creating and clearing 3D navigation meshes used as NavigationMesh resources inside NavigationRegion3D. The NavigationMeshGenerator has very limited to no use for 2D as the navigation mesh baking process expects 3D node types and 3D source geometry to parse.
The entire navigation mesh baking is best done in a separate thread as the voxelization, collision tests and mesh optimization steps involved are very performance and time hungry operations.
Navigation mesh baking happens in multiple steps and the result depends on 3D source geometry and properties of the NavigationMesh resource. In the first step, starting from a root node and depending on NavigationMesh properties all valid 3D source geometry nodes are collected from the SceneTree. Second, all collected nodes are parsed for their relevant 3D geometry data and a combined 3D mesh is build. Due to the many different types of parsable objects, from normal MeshInstance3Ds to CsgShape3Ds or various CollisionObject3Ds, some operations to collect geometry data can trigger RenderingServer and PhysicsServer3D synchronizations. Server synchronization can have a negative effect on baking time or framerate as it often involves Mutex locking for thread security. Many parsable objects and the continuous synchronization with other threaded Servers can increase the baking time significantly. On the other hand only a few but very large and complex objects will take some time to prepare for the Servers which can noticeably stall the next frame render. As a general rule the total number of parsable objects and their individual size and complexity should be balanced to avoid framerate issues or very long baking times. The combined mesh is then passed to the Recast Navigation Object to test the source geometry for walkable terrain suitable to NavigationMesh agent properties by creating a voxel world around the meshes bounding area.
The finalized navigation mesh is then returned and stored inside the NavigationMesh for use as a resource inside NavigationRegion3D nodes.
Note: Using meshes to not only define walkable surfaces but also obstruct navigation baking does not always work. The navigation baking has no concept of what is a geometry "inside" when dealing with mesh source geometry and this is intentional. Depending on current baking parameters, as soon as the obstructing mesh is large enough to fit a navigation mesh area inside, the baking will generate navigation mesh areas that are inside the obstructing source geometry mesh.
- NavigationMeshGeneratorInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationMeshGeneratorInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationMeshGeneratorInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationMeshSourceGeometryData2D
Container for parsed source geometry data used in navigation mesh baking.
- NavigationMeshSourceGeometryData2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationMeshSourceGeometryData2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationMeshSourceGeometryData2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationMeshSourceGeometryData3D
Container for parsed source geometry data used in navigation mesh baking.
- NavigationMeshSourceGeometryData3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationMeshSourceGeometryData3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationMeshSourceGeometryData3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationObstacle2D
2D Obstacle used in navigation to constrain avoidance controlled agents outside or inside an area. The obstacle needs a navigation map and outline vertices defined to work correctly.
If the obstacle's vertices are winded in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Outlines must not cross or overlap.
Obstacles are not a replacement for a (re)baked navigation mesh. Obstacles don't change the resulting path from the pathfinding, obstacles only affect the navigation avoidance agent movement by altering the suggested velocity of the avoidance agent.
Obstacles using vertices can warp to a new position but should not moved every frame as each move requires a rebuild of the avoidance map.
- NavigationObstacle2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationObstacle2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationObstacle2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationObstacle3D
3D Obstacle used in navigation to constrain avoidance controlled agents outside or inside an area. The obstacle needs a navigation map and outline vertices defined to work correctly.
If the obstacle's vertices are winded in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Outlines must not cross or overlap.
Obstacles are not a replacement for a (re)baked navigation mesh. Obstacles don't change the resulting path from the pathfinding, obstacles only affect the navigation avoidance agent movement by altering the suggested velocity of the avoidance agent.
Obstacles using vertices can warp to a new position but should not moved every frame as each move requires a rebuild of the avoidance map.
- NavigationObstacle3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationObstacle3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationObstacle3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationPathQueryParameters2D
By changing various properties of this object, such as the start and target position, you can configure path queries to the NavigationServer2D.
- NavigationPathQueryParameters2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationPathQueryParameters2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationPathQueryParameters2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationPathQueryParameters3D
By changing various properties of this object, such as the start and target position, you can configure path queries to the NavigationServer3D.
- NavigationPathQueryParameters3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationPathQueryParameters3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationPathQueryParameters3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationPathQueryResult2D
This class stores the result of a 2D navigation path query from the NavigationServer2D.
- NavigationPathQueryResult2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationPathQueryResult2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationPathQueryResult2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationPathQueryResult3D
This class stores the result of a 3D navigation path query from the NavigationServer3D.
- NavigationPathQueryResult3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationPathQueryResult3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationPathQueryResult3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationPolygon
A navigation mesh can be created either by baking it with the help of the NavigationServer2D, or by adding vertices and convex polygon indices arrays manually.
To bake a navigation mesh at least one outline needs to be added that defines the outer bounds of the baked area.
var newNavigationMesh = new NavigationPolygon(); var boundingOutline = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; newNavigationMesh.AddOutline(boundingOutline); NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new NavigationMeshSourceGeometryData2D()); GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh;
Adding vertices and polygon indices manually.
var newNavigationMesh = new NavigationPolygon(); var newVertices = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; newNavigationMesh.Vertices = newVertices; var newPolygonIndices = new int[] { 0, 1, 2, 3 }; newNavigationMesh.AddPolygon(newPolygonIndices); GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh;
- NavigationPolygon.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationPolygon.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationPolygon.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationRegion2D
A traversable 2D region based on a NavigationPolygon that NavigationAgent2Ds can use for pathfinding.
Two regions can be connected to each other if they share a similar edge. You can set the minimum distance between two vertices required to connect two edges by using MapSetEdgeConnectionMargin(Rid, float).
Note: Overlapping two regions' navigation polygons is not enough for connecting two regions. They must share a similar edge.
The pathfinding cost of entering a region from another region can be controlled with the EnterCost value.
Note: This value is not added to the path cost when the start position is already inside this region.
The pathfinding cost of traveling distances inside this region can be controlled with the TravelCost multiplier.
Note: This node caches changes to its properties, so if you make changes to the underlying region Rid in NavigationServer2D, they will not be reflected in this node's properties.
- NavigationRegion2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationRegion2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationRegion2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationRegion3D
A traversable 3D region based on a NavigationMesh that NavigationAgent3Ds can use for pathfinding.
Two regions can be connected to each other if they share a similar edge. You can set the minimum distance between two vertices required to connect two edges by using MapSetEdgeConnectionMargin(Rid, float).
Note: Overlapping two regions' navigation meshes is not enough for connecting two regions. They must share a similar edge.
The cost of entering this region from another region can be controlled with the EnterCost value.
Note: This value is not added to the path cost when the start position is already inside this region.
The cost of traveling distances inside this region can be controlled with the TravelCost multiplier.
Note: This node caches changes to its properties, so if you make changes to the underlying region Rid in NavigationServer3D, they will not be reflected in this node's properties.
- NavigationRegion3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationRegion3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationRegion3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationServer2D
NavigationServer2D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from AStar2D or AStarGrid2D.
Maps are made up of regions, which are made of navigation polygons. Together, they define the traversable areas in the 2D world.
Note: Most NavigationServer2D changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts.
For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than
edge_connection_margin
to the respective other edge's vertex.You may assign navigation layers to regions with RegionSetNavigationLayers(Rid, uint), which then can be checked upon when requesting a path with MapGetPath(Rid, Vector2, Vector2, bool, uint). This can be used to allow or deny certain areas for some objects.
To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity.
Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine.
This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying.
- NavigationServer2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationServer2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationServer2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationServer2DInstance
NavigationServer2D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from AStar2D or AStarGrid2D.
Maps are made up of regions, which are made of navigation polygons. Together, they define the traversable areas in the 2D world.
Note: Most NavigationServer2D changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts.
For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than
edge_connection_margin
to the respective other edge's vertex.You may assign navigation layers to regions with RegionSetNavigationLayers(Rid, uint), which then can be checked upon when requesting a path with MapGetPath(Rid, Vector2, Vector2, bool, uint). This can be used to allow or deny certain areas for some objects.
To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity.
Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine.
This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying.
- NavigationServer2DInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationServer2DInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationServer2DInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationServer3D
NavigationServer3D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from AStar3D.
Maps are made up of regions, which are made of navigation meshes. Together, they define the navigable areas in the 3D world.
Note: Most NavigationServer3D changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts.
For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than
edge_connection_margin
to the respective other edge's vertex.You may assign navigation layers to regions with RegionSetNavigationLayers(Rid, uint), which then can be checked upon when requesting a path with MapGetPath(Rid, Vector3, Vector3, bool, uint). This can be used to allow or deny certain areas for some objects.
To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity.
Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine.
This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying.
- NavigationServer3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationServer3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationServer3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NavigationServer3DInstance
NavigationServer3D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from AStar3D.
Maps are made up of regions, which are made of navigation meshes. Together, they define the navigable areas in the 3D world.
Note: Most NavigationServer3D changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts.
For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than
edge_connection_margin
to the respective other edge's vertex.You may assign navigation layers to regions with RegionSetNavigationLayers(Rid, uint), which then can be checked upon when requesting a path with MapGetPath(Rid, Vector3, Vector3, bool, uint). This can be used to allow or deny certain areas for some objects.
To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity.
Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine.
This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying.
- NavigationServer3DInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NavigationServer3DInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NavigationServer3DInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NinePatchRect
Also known as 9-slice panels, NinePatchRect produces clean panels of any size based on a small texture. To do so, it splits the texture in a 3×3 grid. When you scale the node, it tiles the texture's edges horizontally or vertically, tiles the center on both axes, and leaves the corners unchanged.
- NinePatchRect.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NinePatchRect.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NinePatchRect.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Node
Nodes are Godot's building blocks. They can be assigned as the child of another node, resulting in a tree arrangement. A given node can contain any number of nodes as children with the requirement that all siblings (direct children of a node) should have unique names.
A tree of nodes is called a scene. Scenes can be saved to the disk and then instantiated into other scenes. This allows for very high flexibility in the architecture and data model of Godot projects.
Scene tree: The SceneTree contains the active tree of nodes. When a node is added to the scene tree, it receives the NotificationEnterTree notification and its _EnterTree() callback is triggered. Child nodes are always added after their parent node, i.e. the _EnterTree() callback of a parent node will be triggered before its child's.
Once all nodes have been added in the scene tree, they receive the NotificationReady notification and their respective _Ready() callbacks are triggered. For groups of nodes, the _Ready() callback is called in reverse order, starting with the children and moving up to the parent nodes.
This means that when adding a node to the scene tree, the following order will be used for the callbacks: _EnterTree() of the parent, _EnterTree() of the children, _Ready() of the children and finally _Ready() of the parent (recursively for the entire scene tree).
Processing: Nodes can override the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback _Process(double), toggled with SetProcess(bool)) happens as fast as possible and is dependent on the frame rate, so the processing time delta (in seconds) is passed as an argument. Physics processing (callback _PhysicsProcess(double), toggled with SetPhysicsProcess(bool)) happens a fixed number of times per second (60 by default) and is useful for code related to the physics engine.
Nodes can also process input events. When present, the _Input(InputEvent) function will be called for each input that the program receives. In many cases, this can be overkill (unless used for simple projects), and the _UnhandledInput(InputEvent) function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI Control nodes), ensuring that the node only receives the events that were meant for it.
To keep track of the scene hierarchy (especially when instantiating scenes into other scenes), an "owner" can be set for the node with the Owner property. This keeps track of who instantiated what. This is mostly useful when writing editors and tools, though.
Finally, when a node is freed with Free() or QueueFree(), it will also free all its children.
Groups: Nodes can be added to as many groups as you want to be easy to manage, you could create groups like "enemies" or "collectables" for example, depending on your game. See AddToGroup(StringName, bool), IsInGroup(StringName) and RemoveFromGroup(StringName). You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on SceneTree.
Networking with nodes: After connecting to a server (or making one, see ENetMultiplayerPeer), it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling Rpc(StringName, params Variant[]) with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections). To identify which node receives the RPC call, Godot will use its NodePath (make sure node names are the same on all peers). Also, take a look at the high-level networking tutorial and corresponding demos.
Note: The
script
property is part of the GodotObject class, not Node. It isn't exposed like most properties but does have a setter and getter (see SetScript(Variant) and GetScript()).
- Node.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Node.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Node.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Node2D
A 2D game object, with a transform (position, rotation, and scale). All 2D nodes, including physics objects and sprites, inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control of the node's render order.
- Node2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Node2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Node2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Node3D
Most basic 3D game object, with a Transform3D and visibility settings. All other 3D game objects inherit from Node3D. Use Node3D as a parent node to move, scale, rotate and show/hide children in a 3D project.
Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the Node3D object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the Node3D's transform. The word local below refers to this coordinate system. The coordinate system that is attached to the Node3D object itself is referred to as object-local coordinate system.
Note: Unless otherwise specified, all methods that have angle parameters must have angles specified as radians. To convert degrees to radians, use
@GlobalScope.deg_to_rad
.Note: Be aware that "Spatial" nodes are now called "Node3D" starting with Godot 4. Any Godot 3.x references to "Spatial" nodes refer to "Node3D" in Godot 4.
- Node3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Node3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Node3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Node3DGizmo
This abstract class helps connect the Node3D scene with the editor-specific
EditorNode3DGizmo
class.Node3DGizmo by itself has no exposed API, refer to AddGizmo(Node3DGizmo) and pass it an
EditorNode3DGizmo
instance.
- Node3DGizmo.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Node3DGizmo.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Node3DGizmo.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NodePath
A pre-parsed relative or absolute path in a scene tree, for use with GetNode(NodePath) and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For instance,
"Path2D/PathFollow2D/Sprite2D:texture:size"
would refer to thesize
property of thetexture
resource on the node named"Sprite2D"
which is a child of the other named nodes in the path. You will usually just pass a string to GetNode(NodePath) and it will be automatically converted, but you may occasionally want to parse a path ahead of time with NodePath. Exporting a NodePath variable will give you a node selection widget in the properties panel of the editor, which can often be useful. A NodePath is composed of a list of slash-separated node names (like a filesystem path) and an optional colon-separated list of "subnames" which can be resources or properties.Note: In the editor, NodePath properties are automatically updated when moving, renaming or deleting a node in the scene tree, but they are never updated at runtime.
- Noise
This class defines the interface for noise generation libraries to inherit from.
A default GetSeamlessImage(int, int, bool, bool, float, bool) implementation is provided for libraries that do not provide seamless noise. This function requests a larger image from the GetImage(int, int, bool, bool, bool) method, reverses the quadrants of the image, then uses the strips of extra width to blend over the seams.
Inheriting noise classes can optionally override this function to provide a more optimal algorithm.
- Noise.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Noise.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Noise.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NoiseTexture2D
Uses the FastNoiseLite library or other noise generators to fill the texture data of your desired size. NoiseTexture2D can also generate normal map textures.
The class uses GodotThreads to generate the texture data internally, so GetImage() may return
null
if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the image and the generated byte data:var texture = NoiseTexture2D.new() texture.noise = FastNoiseLite.new() await texture.changed var image = texture.get_image() var data = image.get_data()
- NoiseTexture2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NoiseTexture2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NoiseTexture2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- NoiseTexture3D
Uses the FastNoiseLite library or other noise generators to fill the texture data of your desired size.
The class uses GodotThreads to generate the texture data internally, so GetData() may return
null
if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the image:var texture = NoiseTexture3D.new() texture.noise = FastNoiseLite.new() await texture.changed var data = texture.get_data()
- NoiseTexture3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- NoiseTexture3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- NoiseTexture3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OS
This class wraps the most common functionalities for communicating with the host operating system, such as the video driver, delays, environment variables, execution of binaries, command line, etc.
Note: In Godot 4, OS functions related to window management were moved to the DisplayServer singleton.
- OS.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OS.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OS.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OSInstance
This class wraps the most common functionalities for communicating with the host operating system, such as the video driver, delays, environment variables, execution of binaries, command line, etc.
Note: In Godot 4, OS functions related to window management were moved to the DisplayServer singleton.
- OSInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OSInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OSInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Occluder3D
Occluder3D stores an occluder shape that can be used by the engine's occlusion culling system.
See OccluderInstance3D's documentation for instructions on setting up occlusion culling.
- Occluder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Occluder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Occluder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OccluderInstance3D
Occlusion culling can improve rendering performance in closed/semi-open areas by hiding geometry that is occluded by other objects.
The occlusion culling system is mostly static. OccluderInstance3Ds can be moved or hidden at run-time, but doing so will trigger a background recomputation that can take several frames. It is recommended to only move OccluderInstance3Ds sporadically (e.g. for procedural generation purposes), rather than doing so every frame.
The occlusion culling system works by rendering the occluders on the CPU in parallel using Embree, drawing the result to a low-resolution buffer then using this to cull 3D nodes individually. In the 3D editor, you can preview the occlusion culling buffer by choosing Perspective > Debug Advanced... > Occlusion Culling Buffer in the top-left corner of the 3D viewport. The occlusion culling buffer quality can be adjusted in the Project Settings.
Baking: Select an OccluderInstance3D node, then use the Bake Occluders button at the top of the 3D editor. Only opaque materials will be taken into account; transparent materials (alpha-blended or alpha-tested) will be ignored by the occluder generation.
Note: Occlusion culling is only effective if
ProjectSettings.rendering/occlusion_culling/use_occlusion_culling
istrue
. Enabling occlusion culling has a cost on the CPU. Only enable occlusion culling if you actually plan to use it. Large open scenes with few or no objects blocking the view will generally not benefit much from occlusion culling. Large open scenes generally benefit more from mesh LOD and visibility ranges (VisibilityRangeBegin and VisibilityRangeEnd) compared to occlusion culling.Note: Due to memory constraints, occlusion culling is not supported by default in Web export templates. It can be enabled by compiling custom Web export templates with
module_raycast_enabled=yes
.
- OccluderInstance3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OccluderInstance3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OccluderInstance3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OccluderPolygon2D
Editor facility that helps you draw a 2D polygon used as resource for LightOccluder2D.
- OccluderPolygon2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OccluderPolygon2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OccluderPolygon2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OfflineMultiplayerPeer
This is the default MultiplayerPeer for the Multiplayer. It mimics the behavior of a server with no peers connected.
This means that the SceneTree will act as the multiplayer authority by default. Calls to IsServer() will return
true
, and calls to GetUniqueId() will return TargetPeerServer.
- OfflineMultiplayerPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OfflineMultiplayerPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OfflineMultiplayerPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OggPacketSequence
A sequence of Ogg packets.
- OggPacketSequence.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OggPacketSequence.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OggPacketSequence.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OggPacketSequencePlayback.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OggPacketSequencePlayback.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OggPacketSequencePlayback.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OmniLight3D
An Omnidirectional light is a type of Light3D that emits light in all directions. The light is attenuated by distance and this attenuation can be configured by changing its energy, radius, and attenuation parameters.
Note: When using the Mobile rendering method, only 8 omni lights can be displayed on each mesh resource. Attempting to display more than 8 omni lights on a single mesh resource will result in omni lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 omni lights can be displayed on each mesh resource by default, but this can be increased by adjusting
ProjectSettings.rendering/limits/opengl/max_lights_per_object
.Note: When using the Mobile or Compatibility rendering methods, omni lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, ExtraCullMargin must be increased on the mesh. Otherwise, the light may not be visible on the mesh.
- OmniLight3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OmniLight3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OmniLight3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRAction
This resource defines an OpenXR action. Actions can be used both for inputs (buttons/joystick/trigger/etc) and outputs (haptics).
OpenXR performs automatic conversion between action type and input type whenever possible. An analog trigger bound to a boolean action will thus return
false
if the trigger is depressed andtrue
if pressed fully.Actions are not directly bound to specific devices, instead OpenXR recognizes a limited number of top level paths that identify devices by usage. We can restrict which devices an action can be bound to by these top level paths. For instance an action that should only be used for hand held controllers can have the top level paths "/user/hand/left" and "/user/hand/right" associated with them. See the reserved path section in the OpenXR specification for more info on the top level paths.
Note that the name of the resource is used to register the action with.
- OpenXRAction.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRAction.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRAction.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRActionMap
OpenXR uses an action system similar to Godots Input map system to bind inputs and outputs on various types of XR controllers to named actions. OpenXR specifies more detail on these inputs and outputs than Godot supports.
Another important distinction is that OpenXR offers no control over these bindings. The bindings we register are suggestions, it is up to the XR runtime to offer users the ability to change these bindings. This allows the XR runtime to fill in the gaps if new hardware becomes available.
The action map therefore needs to be loaded at startup and can't be changed afterwards. This resource is a container for the entire action map.
- OpenXRActionMap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRActionMap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRActionMap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRActionSet
Action sets in OpenXR define a collection of actions that can be activated in unison. This allows games to easily change between different states that require different inputs or need to reinterpret inputs. For instance we could have an action set that is active when a menu is open, an action set that is active when the player is freely walking around and an action set that is active when the player is controlling a vehicle.
Action sets can contain the same action with the same name, if such action sets are active at the same time the action set with the highest priority defines which binding is active.
- OpenXRActionSet.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRActionSet.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRActionSet.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRApiExtension
OpenXRApiExtension makes OpenXR available for GDExtension. It provides the OpenXR API to GDExtension through the GetInstanceProcAddr(string) method, and the OpenXR instance through GetInstance().
It also provides methods for querying the status of OpenXR initialization, and helper methods for ease of use of the API with GDExtension.
- OpenXRApiExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRApiExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRApiExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRExtensionWrapperExtension
OpenXRExtensionWrapperExtension allows clients to implement OpenXR extensions with GDExtension. The extension should be registered with RegisterExtensionWrapper().
- OpenXRExtensionWrapperExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRExtensionWrapperExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRExtensionWrapperExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRHand
This node enables OpenXR's hand tracking functionality. The node should be a child node of an XROrigin3D node, tracking will update its position to where the player's actual hand is positioned. This node also updates the skeleton of a properly skinned hand model. The hand mesh should be a child node of this node.
- OpenXRHand.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRHand.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRHand.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRIPBinding
This binding resource binds an OpenXRAction to inputs or outputs. As most controllers have left hand and right versions that are handled by the same interaction profile we can specify multiple bindings. For instance an action "Fire" could be bound to both "/user/hand/left/input/trigger" and "/user/hand/right/input/trigger".
- OpenXRIPBinding.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRIPBinding.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRIPBinding.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRInteractionProfile
This object stores suggested bindings for an interaction profile. Interaction profiles define the metadata for a tracked XR device such as an XR controller.
For more information see the interaction profiles info in the OpenXR specification.
- OpenXRInteractionProfile.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRInteractionProfile.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRInteractionProfile.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRInteractionProfileMetadata
This class allows OpenXR core and extensions to register metadata relating to supported interaction devices such as controllers, trackers, haptic devices, etc. It is primarily used by the action map editor and to sanitize any action map by removing extension-dependent entries when applicable.
- OpenXRInteractionProfileMetadata.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRInteractionProfileMetadata.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRInteractionProfileMetadata.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OpenXRInterface
The OpenXR interface allows Godot to interact with OpenXR runtimes and make it possible to create XR experiences and games.
Due to the needs of OpenXR this interface works slightly different than other plugin based XR interfaces. It needs to be initialized when Godot starts. You need to enable OpenXR, settings for this can be found in your games project settings under the XR heading. You do need to mark a viewport for use with XR in order for Godot to know which render result should be output to the headset.
- OpenXRInterface.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OpenXRInterface.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OpenXRInterface.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OptimizedTranslation
An optimized translation, used by default for CSV Translations. Uses real-time compressed translations, which results in very small dictionaries.
- OptimizedTranslation.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OptimizedTranslation.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OptimizedTranslation.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OptionButton
OptionButton is a type of button that brings up a dropdown with selectable items when pressed. The item selected becomes the "current" item and is displayed as the button text.
See also BaseButton which contains common properties and methods associated with this node.
Note: The ID values used for items are limited to 32 bits, not full 64 bits of int. This has a range of
-2^32
to2^32 - 1
, i.e.-2147483648
to2147483647
.Note: The Text and Icon properties are set automatically based on the selected item. They shouldn't be changed manually.
- OptionButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OptionButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OptionButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- OrmMaterial3D
ORMMaterial3D's properties are inherited from BaseMaterial3D. Unlike StandardMaterial3D, ORMMaterial3D uses a single texture for ambient occlusion, roughness and metallic maps, known as an ORM texture.
- OrmMaterial3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- OrmMaterial3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- OrmMaterial3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PackedDataContainer
PackedDataContainer can be used to efficiently store data from untyped containers. The data is packed into raw bytes and can be saved to file. Only Array and Dictionary can be stored this way.
You can retrieve the data by iterating on the container, which will work as if iterating on the packed data itself. If the packed container is a Dictionary, the data can be retrieved by key names (string/StringName only).
var data = { "key": "value", "another_key": 123, "lock": Vector2() } var packed = PackedDataContainer.new() packed.pack(data) ResourceSaver.save(packed, "packed_data.res")
var container = load("packed_data.res") for key in container: prints(key, container[key])
Prints:
key value
lock (0, 0)
another_key 123
Nested containers will be packed recursively. While iterating, they will be returned as PackedDataContainerRef.
- PackedDataContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PackedDataContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PackedDataContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PackedDataContainerRef
When packing nested containers using PackedDataContainer, they are recursively packed into PackedDataContainerRef (only applies to Array and Dictionary). Their data can be retrieved the same way as from PackedDataContainer.
var packed = PackedDataContainer.new() packed.pack([1, 2, 3, ["abc", "def"], 4, 5, 6])
for element in packed: if element is PackedDataContainerRef: for subelement in element: print("::", subelement) else: print(element)
Prints:
1
2
3
::abc
::def
4
5
6
- PackedDataContainerRef.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PackedDataContainerRef.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PackedDataContainerRef.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PackedScene
A simplified interface to a scene file. Provides access to operations and checks that can be performed on the scene resource itself.
Can be used to save a node to a file. When saving, the node as well as all the nodes it owns get saved (see Owner property).
Note: The node doesn't need to own itself.
Example of loading a saved scene:
// C# has no preload, so you have to always use ResourceLoader.Load<PackedScene>(). var scene = ResourceLoader.Load<PackedScene>("res://scene.tscn").Instantiate(); // Add the node as a child of the node the script is attached to. AddChild(scene);
Example of saving a node with different owners: The following example creates 3 objects: Node2D (
node
), RigidBody2D (body
) and CollisionObject2D (collision
).collision
is a child ofbody
which is a child ofnode
. Onlybody
is owned bynode
and Pack(Node) will therefore only save those two nodes, but notcollision
.// Create the objects. var node = new Node2D(); var body = new RigidBody2D(); var collision = new CollisionShape2D();
// Create the object hierarchy. body.AddChild(collision); node.AddChild(body);
// Change owner of
body
, but not ofcollision
. body.Owner = node; var scene = new PackedScene();// Only
node
andbody
are now packed. Error result = scene.Pack(node); if (result == Error.Ok) { Error error = ResourceSaver.Save(scene, "res://path/name.tscn"); // Or "user://..." if (error != Error.Ok) { GD.PushError("An error occurred while saving the scene to disk."); } }
- PackedScene.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PackedScene.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PackedScene.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PacketPeer
PacketPeer is an abstraction 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.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- PacketPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PacketPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PacketPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PacketPeerDtls
This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by TakeConnection(PacketPeerUdp).
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period.
- PacketPeerDtls.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PacketPeerDtls.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PacketPeerDtls.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PacketPeerExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PacketPeerExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PacketPeerExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PacketPeerStream
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.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- PacketPeerStream.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PacketPeerStream.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PacketPeerStream.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PacketPeerUdp
UDP packet peer. Can be used to send raw UDP packets as well as Variants.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- PacketPeerUdp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PacketPeerUdp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PacketPeerUdp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Panel
Panel is a GUI control that displays a StyleBox. See also PanelContainer.
- Panel.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Panel.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Panel.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PanelContainer
A container that keeps its child controls within the area of a StyleBox. Useful for giving controls an outline.
- PanelContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PanelContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PanelContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PanoramaSkyMaterial
A resource referenced in a Sky that is used to draw a background. PanoramaSkyMaterial functions similar to skyboxes in other engines, except it uses an equirectangular sky map instead of a Cubemap.
Using an HDR panorama is strongly recommended for accurate, high-quality reflections. Godot supports the Radiance HDR (
.hdr
) and OpenEXR (.exr
) image formats for this purpose.You can use this tool to convert a cubemap to an equirectangular sky map.
- PanoramaSkyMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PanoramaSkyMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PanoramaSkyMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ParallaxBackground
A ParallaxBackground uses one or more ParallaxLayer child nodes to create a parallax effect. Each ParallaxLayer can move at a different speed using MotionOffset. This creates an illusion of depth in a 2D game. If not used with a Camera2D, you must manually calculate the ScrollOffset.
Note: Each ParallaxBackground is drawn on one specific Viewport and cannot be shared between multiple Viewports, see CustomViewport. When using multiple Viewports, for example in a split-screen game, you need create an individual ParallaxBackground for each Viewport you want it to be drawn on.
- ParallaxBackground.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ParallaxBackground.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ParallaxBackground.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ParallaxLayer
A ParallaxLayer must be the child of a ParallaxBackground node. Each ParallaxLayer can be set to move at different speeds relative to the camera movement or the ScrollOffset value.
This node's children will be affected by its scroll offset.
Note: Any changes to this node's position and scale made after it enters the scene will be ignored.
- ParallaxLayer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ParallaxLayer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ParallaxLayer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ParticleProcessMaterial
ParticleProcessMaterial defines particle properties and behavior. It is used in the
process_material
of the GpuParticles2D and GpuParticles3D nodes. Some of this material's properties are applied to each particle when emitted, while others can have a CurveTexture or a GradientTexture1D applied to vary numerical or color values over the lifetime of the particle.
- ParticleProcessMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ParticleProcessMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ParticleProcessMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Path2D
Can have PathFollow2D child nodes moving along the Curve2D. See PathFollow2D for more information on usage.
Note: The path is considered as relative to the moved nodes (children of PathFollow2D). As such, the curve should usually start with a zero vector (
(0, 0)
).
- Path2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Path2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Path2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Path3D
Can have PathFollow3D child nodes moving along the Curve3D. See PathFollow3D for more information on the usage.
Note that the path is considered as relative to the moved nodes (children of PathFollow3D). As such, the curve should usually start with a zero vector
(0, 0, 0)
.
- Path3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Path3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Path3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PathFollow2D
This node takes its parent Path2D, and returns the coordinates of a point within it, given a distance from the first vertex.
It is useful for making other nodes follow a path, without coding the movement pattern. For that, the nodes must be children of this node. The descendant nodes will then move accordingly when setting the Progress in this node.
- PathFollow2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PathFollow2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PathFollow2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PathFollow3D
This node takes its parent Path3D, and returns the coordinates of a point within it, given a distance from the first vertex.
It is useful for making other nodes follow a path, without coding the movement pattern. For that, the nodes must be children of this node. The descendant nodes will then move accordingly when setting the Progress in this node.
- PathFollow3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PathFollow3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PathFollow3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PckPacker
The PckPacker is used to create packages that can be loaded into a running project using LoadResourcePack(string, bool, int).
var packer = new PckPacker(); packer.PckStart("test.pck"); packer.AddFile("res://text.txt", "text.txt"); packer.Flush();
The above PckPacker creates package
test.pck
, then adds a file namedtext.txt
at the root of the package.
- PckPacker.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PckPacker.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PckPacker.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Performance
This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the Monitor tab in the editor's Debugger panel. By using the GetMonitor(Monitor) method of this class, you can access this data from your code.
You can add custom monitors using the AddCustomMonitor(StringName, Callable, Array) method. Custom monitors are available in Monitor tab in the editor's Debugger panel together with built-in monitors.
Note: Some of the built-in monitors are only available in debug mode and will always return
0
when used in a project exported in release mode.Note: Some of the built-in monitors are not updated in real-time for performance reasons, so there may be a delay of up to 1 second between changes.
Note: Custom monitors do not support negative values. Negative values are clamped to 0.
- Performance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Performance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Performance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PerformanceInstance
This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the Monitor tab in the editor's Debugger panel. By using the GetMonitor(Monitor) method of this class, you can access this data from your code.
You can add custom monitors using the AddCustomMonitor(StringName, Callable, Array) method. Custom monitors are available in Monitor tab in the editor's Debugger panel together with built-in monitors.
Note: Some of the built-in monitors are only available in debug mode and will always return
0
when used in a project exported in release mode.Note: Some of the built-in monitors are not updated in real-time for performance reasons, so there may be a delay of up to 1 second between changes.
Note: Custom monitors do not support negative values. Negative values are clamped to 0.
- PerformanceInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PerformanceInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PerformanceInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicalBone2D
The PhysicalBone2D node is a RigidBody2D-based node that can be used to make Bone2Ds in a Skeleton2D react to physics.
Note: To make the Bone2Ds visually follow the PhysicalBone2D node, use a SkeletonModification2DPhysicalBones modification on the Skeleton2D parent.
Note: The PhysicalBone2D node does not automatically create a Joint2D node to keep PhysicalBone2D nodes together. They must be created manually. For most cases, you want to use a PinJoint2D node. The PhysicalBone2D node will automatically configure the Joint2D node once it's been added as a child node.
- PhysicalBone2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicalBone2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicalBone2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicalBone3D
The PhysicalBone3D node is a physics body that can be used to make bones in a Skeleton3D react to physics.
- PhysicalBone3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicalBone3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicalBone3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicalSkyMaterial
The PhysicalSkyMaterial uses the Preetham analytic daylight model to draw a sky based on physical properties. This results in a substantially more realistic sky than the ProceduralSkyMaterial, but it is slightly slower and less flexible.
The PhysicalSkyMaterial only supports one sun. The color, energy, and direction of the sun are taken from the first DirectionalLight3D in the scene tree.
As it is based on a daylight model, the sky fades to black as the sunset ends. If you want a full day/night cycle, you will have to add a night sky by converting this to a ShaderMaterial and adding a night sky directly into the resulting shader.
- PhysicalSkyMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicalSkyMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicalSkyMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsBody2D
PhysicsBody2D is an abstract base class for 2D game objects affected by physics. All 2D physics bodies inherit from it.
- PhysicsBody2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsBody2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsBody2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsBody3D
PhysicsBody3D is an abstract base class for 3D game objects affected by physics. All 3D physics bodies inherit from it.
Warning: With a non-uniform scale, this node will likely not behave as expected. It is advised to keep its scale the same on all axes and adjust its collision shape(s) instead.
- PhysicsBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectBodyState2D
Provides direct access to a physics body in the PhysicsServer2D, allowing safe changes to physics properties. This object is passed via the direct state callback of RigidBody2D, and is intended for changing the direct state of that body. See _IntegrateForces(PhysicsDirectBodyState2D).
- PhysicsDirectBodyState2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectBodyState2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectBodyState2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectBodyState2DExtension
This class extends PhysicsDirectBodyState2D by providing additional virtual methods that can be overridden. When these methods are overridden, they will be called instead of the internal methods of the physics server.
Intended for use with GDExtension to create custom implementations of PhysicsDirectBodyState2D.
- PhysicsDirectBodyState2DExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectBodyState2DExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectBodyState2DExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectBodyState3D
Provides direct access to a physics body in the PhysicsServer3D, allowing safe changes to physics properties. This object is passed via the direct state callback of RigidBody3D, and is intended for changing the direct state of that body. See _IntegrateForces(PhysicsDirectBodyState3D).
- PhysicsDirectBodyState3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectBodyState3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectBodyState3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectBodyState3DExtension
This class extends PhysicsDirectBodyState3D by providing additional virtual methods that can be overridden. When these methods are overridden, they will be called instead of the internal methods of the physics server.
Intended for use with GDExtension to create custom implementations of PhysicsDirectBodyState3D.
- PhysicsDirectBodyState3DExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectBodyState3DExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectBodyState3DExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectSpaceState2D
Provides direct access to a physics space in the PhysicsServer2D. It's used mainly to do queries against objects and areas residing in a given space.
- PhysicsDirectSpaceState2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectSpaceState2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectSpaceState2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectSpaceState2DExtension
This class extends PhysicsDirectSpaceState2D by providing additional virtual methods that can be overridden. When these methods are overridden, they will be called instead of the internal methods of the physics server.
Intended for use with GDExtension to create custom implementations of PhysicsDirectSpaceState2D.
- PhysicsDirectSpaceState2DExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectSpaceState2DExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectSpaceState2DExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectSpaceState3D
Provides direct access to a physics space in the PhysicsServer3D. It's used mainly to do queries against objects and areas residing in a given space.
- PhysicsDirectSpaceState3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectSpaceState3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectSpaceState3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsDirectSpaceState3DExtension
This class extends PhysicsDirectSpaceState3D by providing additional virtual methods that can be overridden. When these methods are overridden, they will be called instead of the internal methods of the physics server.
Intended for use with GDExtension to create custom implementations of PhysicsDirectSpaceState3D.
- PhysicsDirectSpaceState3DExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsDirectSpaceState3DExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsDirectSpaceState3DExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsMaterial
Holds physics-related properties of a surface, namely its roughness and bounciness. This class is used to apply these properties to a physics body.
- PhysicsMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsPointQueryParameters2D
By changing various properties of this object, such as the point position, you can configure the parameters for IntersectPoint(PhysicsPointQueryParameters2D, int).
- PhysicsPointQueryParameters2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsPointQueryParameters2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsPointQueryParameters2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsPointQueryParameters3D
By changing various properties of this object, such as the point position, you can configure the parameters for IntersectPoint(PhysicsPointQueryParameters3D, int).
- PhysicsPointQueryParameters3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsPointQueryParameters3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsPointQueryParameters3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsRayQueryParameters2D
By changing various properties of this object, such as the ray position, you can configure the parameters for IntersectRay(PhysicsRayQueryParameters2D).
- PhysicsRayQueryParameters2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsRayQueryParameters2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsRayQueryParameters2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsRayQueryParameters3D
By changing various properties of this object, such as the ray position, you can configure the parameters for IntersectRay(PhysicsRayQueryParameters3D).
- PhysicsRayQueryParameters3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsRayQueryParameters3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsRayQueryParameters3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer2D
PhysicsServer2D is the server responsible for all 2D physics. It can directly create and manipulate all physics objects:
- A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified.
- A shape is a geometric shape such as a circle, a rectangle, a capsule, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations.
- A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics.
- An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters.
- A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted.
Physics objects in PhysicsServer2D may be created and manipulated independently; they do not have to be tied to nodes in the scene tree.
Note: All the 2D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server.
- PhysicsServer2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer2DExtension
This class extends PhysicsServer2D by providing additional virtual methods that can be overridden. When these methods are overridden, they will be called instead of the internal methods of the physics server.
Intended for use with GDExtension to create custom implementations of PhysicsServer2D.
- PhysicsServer2DExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer2DExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer2DExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer2DInstance
PhysicsServer2D is the server responsible for all 2D physics. It can directly create and manipulate all physics objects:
- A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified.
- A shape is a geometric shape such as a circle, a rectangle, a capsule, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations.
- A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics.
- An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters.
- A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted.
Physics objects in PhysicsServer2D may be created and manipulated independently; they do not have to be tied to nodes in the scene tree.
Note: All the 2D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server.
- PhysicsServer2DInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer2DInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer2DInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer2DManager
PhysicsServer2DManager is the API for registering PhysicsServer2D implementations and for setting the default implementation.
Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions.
- PhysicsServer2DManager.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer2DManager.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer2DManager.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer2DManagerInstance
PhysicsServer2DManager is the API for registering PhysicsServer2D implementations and for setting the default implementation.
Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions.
- PhysicsServer2DManagerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer2DManagerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer2DManagerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer3D
PhysicsServer3D is the server responsible for all 3D physics. It can directly create and manipulate all physics objects:
- A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified.
- A shape is a geometric shape such as a sphere, a box, a cylinder, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations.
- A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics.
- An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters.
- A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted.
Physics objects in PhysicsServer3D may be created and manipulated independently; they do not have to be tied to nodes in the scene tree.
Note: All the 3D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server.
- PhysicsServer3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer3DExtension
This class extends PhysicsServer3D by providing additional virtual methods that can be overridden. When these methods are overridden, they will be called instead of the internal methods of the physics server.
Intended for use with GDExtension to create custom implementations of PhysicsServer3D.
- PhysicsServer3DExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer3DExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer3DExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer3DInstance
PhysicsServer3D is the server responsible for all 3D physics. It can directly create and manipulate all physics objects:
- A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified.
- A shape is a geometric shape such as a sphere, a box, a cylinder, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations.
- A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics.
- An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters.
- A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted.
Physics objects in PhysicsServer3D may be created and manipulated independently; they do not have to be tied to nodes in the scene tree.
Note: All the 3D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server.
- PhysicsServer3DInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer3DInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer3DInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer3DManager
PhysicsServer3DManager is the API for registering PhysicsServer3D implementations and for setting the default implementation.
Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions.
- PhysicsServer3DManager.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer3DManager.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer3DManager.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer3DManagerInstance
PhysicsServer3DManager is the API for registering PhysicsServer3D implementations and for setting the default implementation.
Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions.
- PhysicsServer3DManagerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer3DManagerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer3DManagerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsServer3DRenderingServerHandler.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsServer3DRenderingServerHandler.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsServer3DRenderingServerHandler.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsShapeQueryParameters2D
By changing various properties of this object, such as the shape, you can configure the parameters for IntersectShape(PhysicsShapeQueryParameters2D, int).
- PhysicsShapeQueryParameters2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsShapeQueryParameters2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsShapeQueryParameters2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsShapeQueryParameters3D
By changing various properties of this object, such as the shape, you can configure the parameters for IntersectShape(PhysicsShapeQueryParameters3D, int).
- PhysicsShapeQueryParameters3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsShapeQueryParameters3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsShapeQueryParameters3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsTestMotionParameters2D
By changing various properties of this object, such as the motion, you can configure the parameters for BodyTestMotion(Rid, PhysicsTestMotionParameters2D, PhysicsTestMotionResult2D).
- PhysicsTestMotionParameters2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsTestMotionParameters2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsTestMotionParameters2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsTestMotionParameters3D
By changing various properties of this object, such as the motion, you can configure the parameters for BodyTestMotion(Rid, PhysicsTestMotionParameters3D, PhysicsTestMotionResult3D).
- PhysicsTestMotionParameters3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsTestMotionParameters3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsTestMotionParameters3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsTestMotionResult2D
Describes the motion and collision result from BodyTestMotion(Rid, PhysicsTestMotionParameters2D, PhysicsTestMotionResult2D).
- PhysicsTestMotionResult2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsTestMotionResult2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsTestMotionResult2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PhysicsTestMotionResult3D
Describes the motion and collision result from BodyTestMotion(Rid, PhysicsTestMotionParameters3D, PhysicsTestMotionResult3D).
- PhysicsTestMotionResult3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PhysicsTestMotionResult3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PhysicsTestMotionResult3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PinJoint2D
A physics joint that attaches two 2D physics bodies at a single point, allowing them to freely rotate. For example, a RigidBody2D can be attached to a StaticBody2D to create a pendulum or a seesaw.
- PinJoint2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PinJoint2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PinJoint2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PinJoint3D
A physics joint that attaches two 3D physics bodies at a single point, allowing them to freely rotate. For example, a RigidBody3D can be attached to a StaticBody3D to create a pendulum or a seesaw.
- PinJoint3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PinJoint3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PinJoint3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderCubemap
This class replaces a Cubemap or a Cubemap-derived class in 2 conditions:
- In dedicated server mode, where the image data shouldn't affect game logic. This allows reducing the exported PCK's size significantly.
- When the Cubemap-derived class is missing, for example when using a different engine version.
Note: This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work.
- PlaceholderCubemap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderCubemap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderCubemap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderCubemapArray
This class replaces a CubemapArray or a CubemapArray-derived class in 2 conditions:
- In dedicated server mode, where the image data shouldn't affect game logic. This allows reducing the exported PCK's size significantly.
- When the CubemapArray-derived class is missing, for example when using a different engine version.
Note: This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work.
- PlaceholderCubemapArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderCubemapArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderCubemapArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderMaterial
This class is used when loading a project that uses a Material subclass in 2 conditions:
- When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly.
- When this subclass is missing due to using a different engine version or build (e.g. modules disabled).
- PlaceholderMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderMesh
This class is used when loading a project that uses a Mesh subclass in 2 conditions:
- When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly.
- When this subclass is missing due to using a different engine version or build (e.g. modules disabled).
- PlaceholderMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderTexture2D
This class is used when loading a project that uses a Texture2D subclass in 2 conditions:
- When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly.
- When this subclass is missing due to using a different engine version or build (e.g. modules disabled).
Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV).
- PlaceholderTexture2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderTexture2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderTexture2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderTexture2DArray
This class is used when loading a project that uses a Texture2D subclass in 2 conditions:
- When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly.
- When this subclass is missing due to using a different engine version or build (e.g. modules disabled).
Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV).
- PlaceholderTexture2DArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderTexture2DArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderTexture2DArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderTexture3D
This class is used when loading a project that uses a Texture3D subclass in 2 conditions:
- When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly.
- When this subclass is missing due to using a different engine version or build (e.g. modules disabled).
Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV).
- PlaceholderTexture3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderTexture3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderTexture3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaceholderTextureLayered
This class is used when loading a project that uses a TextureLayered subclass in 2 conditions:
- When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly.
- When this subclass is missing due to using a different engine version or build (e.g. modules disabled).
Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV).
- PlaceholderTextureLayered.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaceholderTextureLayered.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaceholderTextureLayered.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PlaneMesh
Class representing a planar PrimitiveMesh. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Z axes; this default rotation isn't suited for use with billboarded materials. For billboarded materials, change Orientation to Z.
Note: When using a large textured PlaneMesh (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase SubdivideDepth and SubdivideWidth until you no longer notice UV jittering.
- PlaneMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PlaneMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PlaneMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PointLight2D
Casts light in a 2D environment. This light's shape is defined by a (usually grayscale) texture.
- PointLight2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PointLight2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PointLight2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PointMesh
The PointMesh is made from a single point. Instead of relying on triangles, points are rendered as a single rectangle on the screen with a constant size. They are intended to be used with Particle systems, but can be used as a cheap way to render constant size billboarded sprites (for example in a point cloud).
PointMeshes, must be used with a material that has a point size. Point size can be accessed in a shader with
POINT_SIZE
, or in a BaseMaterial3D by setting UsePointSize and the variable PointSize.When using PointMeshes, properties that normally alter vertices will be ignored, including billboard mode, grow, and cull face.
- PointMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PointMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PointMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Polygon2D
A Polygon2D is defined by a set of points. Each point is connected to the next, with the final point being connected to the first, resulting in a closed polygon. Polygon2Ds can be filled with color (solid or gradient) or filled with a given texture.
- Polygon2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Polygon2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Polygon2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PolygonOccluder3D
PolygonOccluder3D stores a polygon shape that can be used by the engine's occlusion culling system. When an OccluderInstance3D with a PolygonOccluder3D is selected in the editor, an editor will appear at the top of the 3D viewport so you can add/remove points. All points must be placed on the same 2D plane, which means it is not possible to create arbitrary 3D shapes with a single PolygonOccluder3D. To use arbitrary 3D shapes as occluders, use ArrayOccluder3D or OccluderInstance3D's baking feature instead.
See OccluderInstance3D's documentation for instructions on setting up occlusion culling.
- PolygonOccluder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PolygonOccluder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PolygonOccluder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PolygonPathFinder.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PolygonPathFinder.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PolygonPathFinder.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Popup
Popup is a base class for contextual windows and panels with fixed position. It's a modal by default (see PopupWindow) and provides methods for implementing custom popup behavior.
- Popup.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Popup.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Popup.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PopupMenu
PopupMenu is a modal window used to display a list of options. Useful for toolbars and context menus.
The size of a PopupMenu can be limited by using MaxSize. If the height of the list of items is larger than the maximum height of the PopupMenu, a ScrollContainer within the popup will allow the user to scroll the contents. If no maximum size is set, or if it is set to
0
, the PopupMenu height will be limited by its parent rect.All
set_*
methods allow negative item indices, i.e.-1
to access the last item,-2
to select the second-to-last item, and so on.Incremental search: Like ItemList and Tree, PopupMenu supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing
ProjectSettings.gui/timers/incremental_search_max_interval_msec
.Note: The ID values used for items are limited to 32 bits, not full 64 bits of int. This has a range of
-2^32
to2^32 - 1
, i.e.-2147483648
to2147483647
.
- PopupMenu.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PopupMenu.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PopupMenu.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PopupPanel
A popup with a configurable panel background. Any child controls added to this node will be stretched to fit the panel's size (similar to how PanelContainer works). If you are making windows, see Window.
- PopupPanel.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PopupPanel.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PopupPanel.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PortableCompressedTexture2D
This class allows storing compressed textures as self contained (not imported) resources.
For 2D usage (compressed on disk, uncompressed on VRAM), the lossy and lossless modes are recommended. For 3D usage (compressed on VRAM) it depends on the target platform.
If you intend to only use desktop, S3TC or BPTC are recommended. For only mobile, ETC2 is recommended.
For portable, self contained 3D textures that work on both desktop and mobile, Basis Universal is recommended (although it has a small quality cost and longer compression time as a tradeoff).
This resource is intended to be created from code.
- PortableCompressedTexture2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PortableCompressedTexture2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PortableCompressedTexture2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PrimitiveMesh
Base class for all primitive meshes. Handles applying a Material to a primitive mesh. Examples include BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PrismMesh, and SphereMesh.
- PrimitiveMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PrimitiveMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PrimitiveMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PrismMesh
Class representing a prism-shaped PrimitiveMesh.
- PrismMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PrismMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PrismMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ProceduralSkyMaterial
ProceduralSkyMaterial provides a way to create an effective background quickly by defining procedural parameters for the sun, the sky and the ground. The sky and ground are defined by a main color, a color at the horizon, and an easing curve to interpolate between them. Suns are described by a position in the sky, a color, and a max angle from the sun at which the easing curve ends. The max angle therefore defines the size of the sun in the sky.
ProceduralSkyMaterial supports up to 4 suns, using the color, and energy, direction, and angular distance of the first four DirectionalLight3D nodes in the scene. This means that the suns are defined individually by the properties of their corresponding DirectionalLight3Ds and globally by SunAngleMax and SunCurve.
ProceduralSkyMaterial uses a lightweight shader to draw the sky and is therefore suited for real-time updates. This makes it a great option for a sky that is simple and computationally cheap, but unrealistic. If you need a more realistic procedural option, use PhysicalSkyMaterial.
- ProceduralSkyMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ProceduralSkyMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ProceduralSkyMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ProgressBar
A control used for visual representation of a percentage. Shows fill percentage from right to left.
- ProgressBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ProgressBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ProgressBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ProjectSettings
Stores variables that can be accessed from everywhere. Use GetSetting(string, Variant), SetSetting(string, Variant) or HasSetting(string) to access them. Variables stored in
project.godot
are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.When naming a Project Settings property, use the full path to the setting including the category. For example,
"application/config/name"
for the project name. Category and property names can be viewed in the Project Settings dialog.Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags.
Overriding: Any project setting can be overridden by creating a file named
override.cfg
in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations.
- ProjectSettings.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ProjectSettings.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ProjectSettings.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ProjectSettingsInstance
Stores variables that can be accessed from everywhere. Use GetSetting(string, Variant), SetSetting(string, Variant) or HasSetting(string) to access them. Variables stored in
project.godot
are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.When naming a Project Settings property, use the full path to the setting including the category. For example,
"application/config/name"
for the project name. Category and property names can be viewed in the Project Settings dialog.Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags.
Overriding: Any project setting can be overridden by creating a file named
override.cfg
in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations.
- ProjectSettingsInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ProjectSettingsInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ProjectSettingsInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- PropertyTweener
PropertyTweener is used to interpolate a property in an object. See TweenProperty(GodotObject, NodePath, Variant, double) for more usage information.
Note: TweenProperty(GodotObject, NodePath, Variant, double) is the only correct way to create PropertyTweener. Any PropertyTweener created manually will not function correctly.
- PropertyTweener.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- PropertyTweener.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- PropertyTweener.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- QuadMesh
Class representing a square PrimitiveMesh. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Y axes; this rotation is more suited for use with billboarded materials. A QuadMesh is equivalent to a PlaneMesh except its default Orientation is Z.
- QuadMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- QuadMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- QuadMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- QuadOccluder3D
QuadOccluder3D stores a flat plane shape that can be used by the engine's occlusion culling system. See also PolygonOccluder3D if you need to customize the quad's shape.
See OccluderInstance3D's documentation for instructions on setting up occlusion culling.
- QuadOccluder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- QuadOccluder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- QuadOccluder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDAttachmentFormat
This object is used by RenderingDevice.
- RDAttachmentFormat.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDAttachmentFormat.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDAttachmentFormat.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDFramebufferPass
This class contains the list of attachment descriptions for a framebuffer pass. Each points with an index to a previously supplied list of texture attachments.
Multipass framebuffers can optimize some configurations in mobile. On desktop, they provide little to no advantage.
This object is used by RenderingDevice.
- RDFramebufferPass.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDFramebufferPass.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDFramebufferPass.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDPipelineColorBlendState
This object is used by RenderingDevice.
- RDPipelineColorBlendState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDPipelineColorBlendState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDPipelineColorBlendState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDPipelineColorBlendStateAttachment
Controls how blending between source and destination fragments is performed when using RenderingDevice.
For reference, this is how common user-facing blend modes are implemented in Godot's 2D renderer:
Mix:
var attachment = RDPipelineColorBlendStateAttachment.new() attachment.enable_blend = true attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
Add:
var attachment = RDPipelineColorBlendStateAttachment.new() attachment.enable_blend = true attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
Subtract:
var attachment = RDPipelineColorBlendStateAttachment.new() attachment.enable_blend = true attachment.alpha_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT attachment.color_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
Multiply:
var attachment = RDPipelineColorBlendStateAttachment.new() attachment.enable_blend = true attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_DST_COLOR attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_DST_ALPHA attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO
Pre-multiplied alpha:
var attachment = RDPipelineColorBlendStateAttachment.new() attachment.enable_blend = true attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
- RDPipelineColorBlendStateAttachment.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDPipelineColorBlendStateAttachment.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDPipelineColorBlendStateAttachment.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDPipelineDepthStencilState
RDPipelineDepthStencilState controls the way depth and stencil comparisons are performed when sampling those values using RenderingDevice.
- RDPipelineDepthStencilState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDPipelineDepthStencilState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDPipelineDepthStencilState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDPipelineMultisampleState
RDPipelineMultisampleState is used to control how multisample or supersample antialiasing is being performed when rendering using RenderingDevice.
- RDPipelineMultisampleState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDPipelineMultisampleState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDPipelineMultisampleState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDPipelineRasterizationState
This object is used by RenderingDevice.
- RDPipelineRasterizationState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDPipelineRasterizationState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDPipelineRasterizationState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDPipelineSpecializationConstant
A specialization constant is a way to create additional variants of shaders without actually increasing the number of shader versions that are compiled. This allows improving performance by reducing the number of shader versions and reducing
if
branching, while still allowing shaders to be flexible for different use cases.This object is used by RenderingDevice.
- RDPipelineSpecializationConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDPipelineSpecializationConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDPipelineSpecializationConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDSamplerState
This object is used by RenderingDevice.
- RDSamplerState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDSamplerState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDSamplerState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDShaderFile
Compiled shader file in SPIR-V form.
See also RDShaderSource. RDShaderFile is only meant to be used with the RenderingDevice API. It should not be confused with Godot's own Shader resource, which is what Godot's various nodes use for high-level shader programming.
- RDShaderFile.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDShaderFile.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDShaderFile.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDShaderSource
Shader source code in text form.
See also RDShaderFile. RDShaderSource is only meant to be used with the RenderingDevice API. It should not be confused with Godot's own Shader resource, which is what Godot's various nodes use for high-level shader programming.
- RDShaderSource.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDShaderSource.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDShaderSource.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDShaderSpirV
RDShaderSpirV represents a RDShaderFile's SPIR-V code for various shader stages, as well as possible compilation error messages. SPIR-V is a low-level intermediate shader representation. This intermediate representation is not used directly by GPUs for rendering, but it can be compiled into binary shaders that GPUs can understand. Unlike compiled shaders, SPIR-V is portable across GPU models and driver versions.
This object is used by RenderingDevice.
- RDShaderSpirV.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDShaderSpirV.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDShaderSpirV.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDTextureFormat
This object is used by RenderingDevice.
- RDTextureFormat.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDTextureFormat.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDTextureFormat.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDTextureView
This object is used by RenderingDevice.
- RDTextureView.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDTextureView.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDTextureView.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDUniform
This object is used by RenderingDevice.
- RDUniform.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDUniform.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDUniform.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RDVertexAttribute
This object is used by RenderingDevice.
- RDVertexAttribute.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RDVertexAttribute.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RDVertexAttribute.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RandomNumberGenerator
RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32.
Note: The underlying algorithm is an implementation detail and should not be depended upon.
To generate a random float number (within a given range) based on a time-dependent seed:
var rng = RandomNumberGenerator.new() func _ready(): var my_random_number = rng.randf_range(-10.0, 10.0)
- RandomNumberGenerator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RandomNumberGenerator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RandomNumberGenerator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Range
Range is an abstract base class for controls that represent a number within a range, using a configured Step and Page size. See e.g. ScrollBar and Slider for examples of higher-level nodes using Range.
- Range.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Range.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Range.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RayCast2D
A raycast represents a ray from its origin to its TargetPosition that finds the closest CollisionObject2D along its path, if it intersects any. This is useful for a lot of things, such as
RayCast2D can ignore some objects by adding them to an exception list, by making its detection reporting ignore Area2Ds (CollideWithAreas) or PhysicsBody2Ds (CollideWithBodies), or by configuring physics layers.
RayCast2D calculates intersection every physics frame, and it holds the result until the next physics frame. For an immediate raycast, or if you want to configure a RayCast2D multiple times within the same physics frame, use ForceRaycastUpdate().
To sweep over a region of 2D space, you can approximate the region with multiple RayCast2Ds or use ShapeCast2D.
- RayCast2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RayCast2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RayCast2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RayCast3D
A raycast represents a ray from its origin to its TargetPosition that finds the closest CollisionObject3D along its path, if it intersects any. This is useful for a lot of things, such as
RayCast3D can ignore some objects by adding them to an exception list, by making its detection reporting ignore Area3Ds (CollideWithAreas) or PhysicsBody3Ds (CollideWithBodies), or by configuring physics layers.
RayCast3D calculates intersection every physics frame, and it holds the result until the next physics frame. For an immediate raycast, or if you want to configure a RayCast3D multiple times within the same physics frame, use ForceRaycastUpdate().
To sweep over a region of 3D space, you can approximate the region with multiple RayCast3Ds or use ShapeCast3D.
- RayCast3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RayCast3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RayCast3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RectangleShape2D
A 2D rectangle shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D.
Performance: RectangleShape2D is fast to check collisions against. It is faster than CapsuleShape2D, but slower than CircleShape2D.
- RectangleShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RectangleShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RectangleShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RefCounted
Base class for any object that keeps a reference count. Resource and many other helper objects inherit this class.
Unlike other GodotObject types, RefCounteds keep an internal reference counter so that they are automatically released when no longer in use, and only then. RefCounteds therefore do not need to be freed manually with Free().
RefCounted instances caught in a cyclic reference will not be freed automatically. For example, if a node holds a reference to instance
A
, which directly or indirectly holds a reference back toA
,A
's reference count will be 2. Destruction of the node will leaveA
dangling with a reference count of 1, and there will be a memory leak. To prevent this, one of the references in the cycle can be made weak with@GlobalScope.weakref
.In the vast majority of use cases, instantiating and using RefCounted-derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused.
Note: In C#, reference-counted objects will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free reference-counted objects that are no longer in use. This means that unused ones will linger on for a while before being removed.
- RefCounted.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RefCounted.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RefCounted.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ReferenceRect
A rectangle box that displays only a colored border around its rectangle. It is used to visualize the extents of a Control.
- ReferenceRect.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ReferenceRect.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ReferenceRect.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ReflectionProbe
Captures its surroundings as a cubemap, and stores versions of it with increasing levels of blur to simulate different material roughnesses.
The ReflectionProbe is used to create high-quality reflections at a low performance cost (when UpdateMode is Once). ReflectionProbes can be blended together and with the rest of the scene smoothly. ReflectionProbes can also be combined with VoxelGI, SDFGI (SdfgiEnabled) and screen-space reflections (SsrEnabled) to get more accurate reflections in specific areas. ReflectionProbes render all objects within their CullMask, so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them as-is.
Note: Unlike VoxelGI and SDFGI, ReflectionProbes only source their environment from a WorldEnvironment node. If you specify an Environment resource within a Camera3D node, it will be ignored by the ReflectionProbe. This can lead to incorrect lighting within the ReflectionProbe.
Note: Reflection probes are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 reflection probes can be displayed on each mesh resource. Attempting to display more than 8 reflection probes on a single mesh resource will result in reflection probes flickering in and out as the camera moves.
Note: When using the Mobile rendering method, reflection probes will only correctly affect meshes whose visibility AABB intersects with the reflection probe's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, ExtraCullMargin must be increased on the mesh. Otherwise, the reflection probe may not be visible on the mesh.
- ReflectionProbe.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ReflectionProbe.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ReflectionProbe.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RegEx
A regular expression (or regex) is a compact language that can be used to recognize strings that follow a specific pattern, such as URLs, email addresses, complete sentences, etc. For example, a regex of
ab[0-9]
would find any string that isab
followed by any number from0
to9
. For a more in-depth look, you can easily find various tutorials and detailed explanations on the Internet.To begin, the RegEx object needs to be compiled with the search pattern using Compile(string) before it can be used.
var regex = RegEx.new() regex.compile("\\w-(\\d+)")
The search pattern must be escaped first for GDScript before it is escaped for the expression. For example,
compile("\\d+")
would be read by RegEx as\d+
. Similarly,compile("\"(?:\\\\.|[^\"])*\"")
would be read as"(?:\\.|[^"])*"
. In GDScript, you can also use raw string literals (r-strings). For example,compile(r'"(?:\\.|[^"])*"')
would be read the same.Using Search(string, int, int), you can find the pattern within the given text. If a pattern is found, RegExMatch is returned and you can retrieve details of the results using methods such as GetString(Variant?) and GetStart(Variant?).
var regex = RegEx.new() regex.compile("\\w-(\\d+)") var result = regex.search("abc n-0123") if result: print(result.get_string()) # Would print n-0123
The results of capturing groups
()
can be retrieved by passing the group number to the various methods in RegExMatch. Group 0 is the default and will always refer to the entire pattern. In the above example, callingresult.get_string(1)
would give you0123
.This version of RegEx also supports named capturing groups, and the names can be used to retrieve the results. If two or more groups have the same name, the name would only refer to the first one with a match.
var regex = RegEx.new() regex.compile("d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)") var result = regex.search("the number is x2f") if result: print(result.get_string("digit")) # Would print 2f
If you need to process multiple results, SearchAll(string, int, int) generates a list of all non-overlapping results. This can be combined with a
for
loop for convenience.for result in regex.search_all("d01, d03, d0c, x3f and x42"): print(result.get_string("digit")) # Would print 01 03 0 3f 42
Example of splitting a string using a RegEx:
var regex = RegEx.new() regex.compile("\\S+") # Negated whitespace character class. var results = [] for result in regex.search_all("One Two \n\tThree"): results.push_back(result.get_string()) # The `results` array now contains "One", "Two", "Three".
Note: Godot's regex implementation is based on the PCRE2 library. You can view the full pattern reference here.
Tip: You can use Regexr to test regular expressions online.
- RegEx.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RegEx.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RegEx.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RegExMatch
Contains the results of a single RegEx match returned by Search(string, int, int) and SearchAll(string, int, int). It can be used to find the position and range of the match and its capturing groups, and it can extract its substring for you.
- RegExMatch.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RegExMatch.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RegExMatch.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RemoteTransform2D
RemoteTransform2D pushes its own Transform2D to another Node2D derived node (called the remote node) in the scene.
It can be set to update another node's position, rotation and/or scale. It can use either global or local coordinates.
- RemoteTransform2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RemoteTransform2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RemoteTransform2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RemoteTransform3D
RemoteTransform3D pushes its own Transform3D to another Node3D derived Node (called the remote node) in the scene.
It can be set to update another Node's position, rotation and/or scale. It can use either global or local coordinates.
- RemoteTransform3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RemoteTransform3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RemoteTransform3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderSceneBuffers
Abstract scene buffers object, created for each viewport for which 3D rendering is done. It manages any additional buffers used during rendering and will discard buffers when the viewport is resized.
Note: this is an internal rendering server object only exposed for GDExtension plugins.
- RenderSceneBuffers.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderSceneBuffers.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderSceneBuffers.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderSceneBuffersConfiguration
This configuration object is created and populated by the render engine on a viewport change and used to (re)configure a RenderSceneBuffers object.
- RenderSceneBuffersConfiguration.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderSceneBuffersConfiguration.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderSceneBuffersConfiguration.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderSceneBuffersExtension
This class allows for a RenderSceneBuffer implementation to be made in GDExtension.
- RenderSceneBuffersExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderSceneBuffersExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderSceneBuffersExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderSceneBuffersRD
This object manages all 3D rendering buffers for the rendering device based renderers. An instance of this object is created for every viewport that has 3D rendering enabled.
All buffers are organized in contexts. The default context is called render_buffers and can contain amongst others the color buffer, depth buffer, velocity buffers, VRS density map and MSAA variants of these buffers.
Buffers are only guaranteed to exist during rendering of the viewport.
Note: this is an internal rendering server object only exposed for GDExtension plugins.
- RenderSceneBuffersRD.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderSceneBuffersRD.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderSceneBuffersRD.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderingDevice
RenderingDevice is an abstraction for working with modern low-level graphics APIs such as Vulkan. Compared to RenderingServer (which works with Godot's own rendering subsystems), RenderingDevice is much lower-level and allows working more directly with the underlying graphics APIs. RenderingDevice is used in Godot to provide support for several modern low-level graphics APIs while reducing the amount of code duplication required. RenderingDevice can also be used in your own projects to perform things that are not exposed by RenderingServer or high-level nodes, such as using compute shaders.
On startup, Godot creates a global RenderingDevice which can be retrieved using GetRenderingDevice(). This global RenderingDevice performs drawing to the screen.
Local RenderingDevices: Using CreateLocalRenderingDevice(), you can create "secondary" rendering devices to perform drawing and GPU compute operations on separate threads.
Note: RenderingDevice assumes intermediate knowledge of modern graphics APIs such as Vulkan, Direct3D 12, Metal or WebGPU. These graphics APIs are lower-level than OpenGL or Direct3D 11, requiring you to perform what was previously done by the graphics driver itself. If you have difficulty understanding the concepts used in this class, follow the Vulkan Tutorial or Vulkan Guide. It's recommended to have existing modern OpenGL or Direct3D 11 knowledge before attempting to learn a low-level graphics API.
Note: RenderingDevice is not available when running in headless mode or when using the Compatibility rendering method.
- RenderingDevice.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderingDevice.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderingDevice.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderingServer
The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed.
The rendering server can be used to bypass the scene/Node system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized).
Resources are created using the
*_create
functions. These functions return Rids which are not references to the objects themselves, but opaque pointers towards these objects.All objects are drawn to a viewport. You can use the Viewport attached to the SceneTree or you can create one yourself with ViewportCreate(). When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using ViewportSetScenario(Rid, Rid) or ViewportAttachCanvas(Rid, Rid).
Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any Node3D node with GetWorld3D(). Otherwise, a scenario can be created with ScenarioCreate().
Similarly, in 2D, a canvas is needed to draw all canvas items.
3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using InstanceSetBase(Rid, Rid). The instance must also be attached to the scenario using InstanceSetScenario(Rid, Rid) in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always).
2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with
canvas_*
.Headless mode: Starting the engine with the
--headless
command line argument disables all rendering and window management functions. Most functions from RenderingServer will return dummy values in this case.
- RenderingServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderingServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderingServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RenderingServerInstance
The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed.
The rendering server can be used to bypass the scene/Node system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized).
Resources are created using the
*_create
functions. These functions return Rids which are not references to the objects themselves, but opaque pointers towards these objects.All objects are drawn to a viewport. You can use the Viewport attached to the SceneTree or you can create one yourself with ViewportCreate(). When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using ViewportSetScenario(Rid, Rid) or ViewportAttachCanvas(Rid, Rid).
Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any Node3D node with GetWorld3D(). Otherwise, a scenario can be created with ScenarioCreate().
Similarly, in 2D, a canvas is needed to draw all canvas items.
3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using InstanceSetBase(Rid, Rid). The instance must also be attached to the scenario using InstanceSetScenario(Rid, Rid) in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always).
2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with
canvas_*
.Headless mode: Starting the engine with the
--headless
command line argument disables all rendering and window management functions. Most functions from RenderingServer will return dummy values in this case.
- RenderingServerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RenderingServerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RenderingServerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Resource
Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from RefCounted, resources are reference-counted and freed when no longer in use. They can also be nested within other resources, and saved on disk. Once loaded from disk, further attempts to load a resource by ResourcePath returns the same reference. PackedScene, one of the most common GodotObjects in a Godot project, is also a resource, uniquely capable of storing and instantiating the Nodes it contains as many times as desired.
In GDScript, resources can loaded from disk by their ResourcePath using
@GDScript.load
or@GDScript.preload
.Note: In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will linger on for a while before being removed.
- Resource.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Resource.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Resource.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceFormatLoader
Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the ResourceLoader singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine.
Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with
class_name
for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a ResourceFormatSaver.Note: You can also extend
EditorImportPlugin
if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends on if the format is suitable or not for the final exported game. For example, it's better to import.png
textures as.ctex
(CompressedTexture2D) first, so they can be loaded with better efficiency on the graphics card.
- ResourceFormatLoader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceFormatLoader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceFormatLoader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceFormatSaver
The engine can save resources when you do it from the editor, or when you use the ResourceSaver singleton. This is accomplished thanks to multiple ResourceFormatSavers, each handling its own format and called automatically by the engine.
By default, Godot saves resources as
.tres
(text-based),.res
(binary) or another built-in format, but you can choose to create your own format by extending this class. Be sure to respect the documented return types and values. You should give it a global class name withclass_name
for it to be registered. Like built-in ResourceFormatSavers, it will be called automatically when saving resources of its recognized type(s). You may also implement a ResourceFormatLoader.
- ResourceFormatSaver.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceFormatSaver.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceFormatSaver.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceImporter
This is the base class for Godot's resource importers. To implement your own resource importers using editor plugins, see
EditorImportPlugin
.
- ResourceImporter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceImporter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceImporter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceLoader
A singleton used to load resource files from the filesystem.
It uses the many ResourceFormatLoader classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.
Note: You have to import the files into the engine first to load them using Load(string, string, CacheMode). If you want to load Images at run-time, you may use Load(string). If you want to import audio files, you can use the snippet described in Data.
- ResourceLoader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceLoader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceLoader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceLoaderInstance
A singleton used to load resource files from the filesystem.
It uses the many ResourceFormatLoader classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.
Note: You have to import the files into the engine first to load them using Load(string, string, CacheMode). If you want to load Images at run-time, you may use Load(string). If you want to import audio files, you can use the snippet described in Data.
- ResourceLoaderInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceLoaderInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceLoaderInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourcePreloader
This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader. You can add the resources using the ResourcePreloader tab when the node is selected.
GDScript has a simplified
@GDScript.preload
built-in method which can be used in most situations, leaving the use of ResourcePreloader for more advanced scenarios.
- ResourcePreloader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourcePreloader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourcePreloader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceSaver
A singleton for saving resource types to the filesystem.
It uses the many ResourceFormatSaver classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g.
.tres
or.tscn
) or binary files (e.g..res
or.scn
).
- ResourceSaver.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceSaver.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceSaver.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceSaverInstance
A singleton for saving resource types to the filesystem.
It uses the many ResourceFormatSaver classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g.
.tres
or.tscn
) or binary files (e.g..res
or.scn
).
- ResourceSaverInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceSaverInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceSaverInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceUid
Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files can renamed or moved. They can be accessed with
uid://
.ResourceUid keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations.
- ResourceUid.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceUid.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceUid.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ResourceUidInstance
Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files can renamed or moved. They can be accessed with
uid://
.ResourceUid keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations.
- ResourceUidInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ResourceUidInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ResourceUidInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RibbonTrailMesh
RibbonTrailMesh represents a straight ribbon-shaped mesh with variable width. The ribbon is composed of a number of flat or cross-shaped sections, each with the same SectionLength and number of SectionSegments. A Curve is sampled along the total length of the ribbon, meaning that the curve determines the size of the ribbon along its length.
This primitive mesh is usually used for particle trails.
- RibbonTrailMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RibbonTrailMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RibbonTrailMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RichTextEffect
A custom effect for a RichTextLabel, which can be loaded in the RichTextLabel inspector or using InstallEffect(Variant).
Note: For a RichTextEffect to be usable, a BBCode tag must be defined as a member variable called
bbcode
in the script.// The RichTextEffect will be usable like this: `[example]Some text[/example]` string bbcode = "example";
Note: As soon as a RichTextLabel contains at least one RichTextEffect, it will continuously process the effect unless the project is paused. This may impact battery life negatively.
- RichTextEffect.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RichTextEffect.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RichTextEffect.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RichTextLabel
A control for displaying text that can contain custom fonts, images, and basic formatting. RichTextLabel manages these as an internal tag stack. It also adapts itself to given width/heights.
Note: Assignments to Text clear the tag stack and reconstruct it from the property's contents. Any edits made to Text will erase previous edits made from other manual sources such as AppendText(string) and the
push_*
/ Pop() methods.Note: RichTextLabel doesn't support entangled BBCode tags. For example, instead of using
[b]bold[i]bold italic[/b]italic[/i]
, use[b]bold[i]bold italic[/i][/b][i]italic[/i]
.Note:
push_*/pop_*
functions won't affect BBCode.Note: Unlike Label, RichTextLabel doesn't have a property to horizontally align text to the center. Instead, enable BbcodeEnabled and surround the text in a
[center]
tag as follows:[center]Example[/center]
. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the FitContent property.
- RichTextLabel.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RichTextLabel.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RichTextLabel.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RigidBody2D
RigidBody2D implements full 2D physics. It cannot be controlled directly, instead, you must apply forces to it (gravity, impulses, etc.), and the physics simulation will calculate the resulting movement, rotation, react to collisions, and affect other physics bodies in its path.
The body's behavior can be adjusted via LockRotation, Freeze, and FreezeMode. By changing various properties of the object, such as Mass, you can control how the physics simulation acts on it.
A rigid body will always maintain its shape and size, even when forces are applied to it. It is useful for objects that can be interacted with in an environment, such as a tree that can be knocked over or a stack of crates that can be pushed around.
If you need to override the default physics behavior, you can write a custom force integration function. See CustomIntegrator.
Note: Changing the 2D transform or LinearVelocity of a RigidBody2D very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer _IntegrateForces(PhysicsDirectBodyState2D) as it allows you to directly access the physics state.
- RigidBody2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RigidBody2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RigidBody2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RigidBody3D
RigidBody3D implements full 3D physics. It cannot be controlled directly, instead, you must apply forces to it (gravity, impulses, etc.), and the physics simulation will calculate the resulting movement, rotation, react to collisions, and affect other physics bodies in its path.
The body's behavior can be adjusted via LockRotation, Freeze, and FreezeMode. By changing various properties of the object, such as Mass, you can control how the physics simulation acts on it.
A rigid body will always maintain its shape and size, even when forces are applied to it. It is useful for objects that can be interacted with in an environment, such as a tree that can be knocked over or a stack of crates that can be pushed around.
If you need to override the default physics behavior, you can write a custom force integration function. See CustomIntegrator.
Note: Changing the 3D transform or LinearVelocity of a RigidBody3D very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer _IntegrateForces(PhysicsDirectBodyState3D) as it allows you to directly access the physics state.
- RigidBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RigidBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RigidBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RootMotionView
Root motion refers to an animation technique where a mesh's skeleton is used to give impulse to a character. When working with 3D animations, a popular technique is for animators to use the root skeleton bone to give motion to the rest of the skeleton. This allows animating characters in a way where steps actually match the floor below. It also allows precise interaction with objects during cinematics. See also AnimationMixer.
Note: RootMotionView is only visible in the editor. It will be hidden automatically in the running project.
- RootMotionView.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- RootMotionView.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- RootMotionView.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- RpcAttribute
Attribute that changes the RPC mode for the annotated
method
to the given Mode, optionally specifying the TransferMode and TransferChannel (on supported peers). See MultiplayerApi.RpcMode and MultiplayerPeer.TransferModeEnum. By default, methods are not exposed to networking (and RPCs).
- SceneMultiplayer
This class is the default implementation of MultiplayerApi, used to provide multiplayer functionalities in Godot Engine.
This implementation supports RPCs via Rpc(StringName, params Variant[]) and RpcId(long, StringName, params Variant[]) and requires Rpc(int, GodotObject, StringName, Array) to be passed a Node (it will fail for other object types).
This implementation additionally provide SceneTree replication via the MultiplayerSpawner and MultiplayerSynchronizer nodes, and the SceneReplicationConfig resource.
Note: The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- SceneMultiplayer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SceneMultiplayer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SceneMultiplayer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SceneReplicationConfig.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SceneReplicationConfig.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SceneReplicationConfig.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SceneState
Maintains a list of resources, nodes, exported and overridden properties, and built-in scripts associated with a scene. They cannot be modified from a SceneState, only accessed. Useful for peeking into what a PackedScene contains without instantiating it.
This class cannot be instantiated directly, it is retrieved for a given scene as the result of GetState().
- SceneState.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SceneState.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SceneState.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SceneTree
As one of the most important classes, the SceneTree manages the hierarchy of nodes in a scene as well as scenes themselves. Nodes can be added, retrieved and removed. The whole scene tree (and thus the current scene) can be paused. Scenes can be loaded, switched and reloaded.
You can also use the SceneTree to organize your nodes into groups: every node can be assigned as many groups as you want to create, e.g. an "enemy" group. You can then iterate these groups or even call methods and set properties on all the group's members at once.
SceneTree is the default MainLoop implementation used by scenes, and is thus in charge of the game loop.
- SceneTree.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SceneTree.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SceneTree.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SceneTreeTimer
A one-shot timer managed by the scene tree, which emits Timeout on completion. See also CreateTimer(double, bool, bool, bool).
As opposed to Timer, it does not require the instantiation of a node. Commonly used to create a one-shot delay timer as in the following example:
public async Task SomeFunction() { GD.Print("Timer started."); await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName.Timeout); GD.Print("Timer ended."); }
The timer will be dereferenced after its time elapses. To preserve the timer, you can keep a reference to it. See RefCounted.
Note: The timer is processed after all of the nodes in the current frame, i.e. node's _Process(double) method would be called before the timer (or _PhysicsProcess(double) if
process_in_physics
in CreateTimer(double, bool, bool, bool) has been set totrue
).
- SceneTreeTimer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SceneTreeTimer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SceneTreeTimer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Script
A class stored as a resource. A script extends the functionality of all objects that instantiate it.
This is the base class for all scripts and should not be used directly. Trying to create a new script with this class will result in an error.
The
new
method of a script subclass creates a new instance. SetScript(Variant) extends an existing object, if that object's class matches one of the script's base classes.
- Script.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Script.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Script.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ScriptExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ScriptExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ScriptExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ScriptLanguage.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ScriptLanguage.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ScriptLanguage.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ScriptLanguageExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ScriptLanguageExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ScriptLanguageExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ScriptPathAttribute
An attribute that contains the path to the object's script.
- ScrollBar
Abstract base class for scrollbars, typically used to navigate through content that extends beyond the visible area of a control. Scrollbars are Range-based controls.
- ScrollBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ScrollBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ScrollBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ScrollContainer
A container used to provide a child control with scrollbars when needed. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the CustomMinimumSize of the Control relative to the ScrollContainer.
- ScrollContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ScrollContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ScrollContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SegmentShape2D
A 2D line segment shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D.
- SegmentShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SegmentShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SegmentShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Semaphore
A synchronization semaphore that can be used to synchronize multiple GodotThreads. Initialized to zero on creation. For a binary version, see Mutex.
Warning: Semaphores must be used carefully to avoid deadlocks.
Warning: To guarantee that the operating system is able to perform proper cleanup (no crashes, no deadlocks), these conditions must be met:
- When a Semaphore's reference count reaches zero and it is therefore destroyed, no threads must be waiting on it.
- When a GodotThread's reference count reaches zero and it is therefore destroyed, it must not be waiting on any semaphore.
- Semaphore.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Semaphore.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Semaphore.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SeparationRayShape2D
A 2D ray shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D. When a SeparationRayShape2D collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a SeparationRayShape2D next to a character can allow it to instantly move up when touching stairs.
- SeparationRayShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SeparationRayShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SeparationRayShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SeparationRayShape3D
A 3D ray shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. When a SeparationRayShape3D collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a SeparationRayShape3D next to a character can allow it to instantly move up when touching stairs.
- SeparationRayShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SeparationRayShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SeparationRayShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Separator
Abstract base class for separators, used for separating other controls. Separators are purely visual and normally drawn as a StyleBoxLine.
- Separator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Separator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Separator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Shader
A custom shader program implemented in the Godot shading language, saved with the
.gdshader
extension.This class is used by a ShaderMaterial and allows you to write your own custom behavior for rendering visual items or updating particle information. For a detailed explanation and usage, please see the tutorials linked below.
- Shader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Shader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Shader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ShaderGlobalsOverride
Similar to how a WorldEnvironment node can be used to override the environment while a specific scene is loaded, ShaderGlobalsOverride can be used to override global shader parameters temporarily. Once the node is removed, the project-wide values for the global shader parameters are restored. See the RenderingServer
global_shader_parameter_*
methods for more information.Note: Only one ShaderGlobalsOverride can be used per scene. If there is more than one ShaderGlobalsOverride node in the scene tree, only the first node (in tree order) will be taken into account.
Note: All ShaderGlobalsOverride nodes are made part of a
"shader_overrides_group"
group when they are added to the scene tree. The currently active ShaderGlobalsOverride node also has a"shader_overrides_group_active"
group added to it. You can use this to check which ShaderGlobalsOverride node is currently active.
- ShaderGlobalsOverride.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ShaderGlobalsOverride.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ShaderGlobalsOverride.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ShaderInclude
A shader include file, saved with the
.gdshaderinc
extension. This class allows you to define a custom shader snippet that can be included in a Shader by using the preprocessor directive#include
, followed by the file path (e.g.#include "res://shader_lib.gdshaderinc"
). The snippet doesn't have to be a valid shader on its own.
- ShaderInclude.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ShaderInclude.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ShaderInclude.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ShaderMaterial
A material that uses a custom Shader program to render visual items (canvas items, meshes, skies, fog), or to process particles. Compared to other materials, ShaderMaterial gives deeper control over the generated shader code. For more information, see the shaders documentation index below.
Multiple ShaderMaterials can use the same shader and configure different values for the shader uniforms.
Note: For performance reasons, the Changed signal is only emitted when the ResourceName changes. Only in editor, it is also emitted for Shader changes.
- ShaderMaterial.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ShaderMaterial.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ShaderMaterial.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Shape2D
Abstract base class for all 2D shapes, intended for use in physics.
Performance: Primitive shapes, especially CircleShape2D, are fast to check collisions against. ConvexPolygonShape2D is slower, and ConcavePolygonShape2D is the slowest.
- Shape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Shape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Shape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Shape3D
Abstract base class for all 3D shapes, intended for use in physics.
Performance: Primitive shapes, especially SphereShape3D, are fast to check collisions against. ConvexPolygonShape3D and HeightMapShape3D are slower, and ConcavePolygonShape3D is the slowest.
- Shape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Shape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Shape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ShapeCast2D
Shape casting allows to detect collision objects by sweeping its Shape along the cast direction determined by TargetPosition. This is similar to RayCast2D, but it allows for sweeping a region of space, rather than just a straight line. ShapeCast2D can detect multiple collision objects. It is useful for things like wide laser beams or snapping a simple shape to a floor.
Immediate collision overlaps can be done with the TargetPosition set to
Vector2(0, 0)
and by calling ForceShapecastUpdate() within the same physics frame. This helps to overcome some limitations of Area2D when used as an instantaneous detection area, as collision information isn't immediately available to it.Note: Shape casting is more computationally expensive than ray casting.
- ShapeCast2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ShapeCast2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ShapeCast2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ShapeCast3D
Shape casting allows to detect collision objects by sweeping its Shape along the cast direction determined by TargetPosition. This is similar to RayCast3D, but it allows for sweeping a region of space, rather than just a straight line. ShapeCast3D can detect multiple collision objects. It is useful for things like wide laser beams or snapping a simple shape to a floor.
Immediate collision overlaps can be done with the TargetPosition set to
Vector3(0, 0, 0)
and by calling ForceShapecastUpdate() within the same physics frame. This helps to overcome some limitations of Area3D when used as an instantaneous detection area, as collision information isn't immediately available to it.Note: Shape casting is more computationally expensive than ray casting.
- ShapeCast3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ShapeCast3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ShapeCast3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Shortcut
Shortcuts are commonly used for interacting with a Control element from an InputEvent (also known as hotkeys).
One shortcut can contain multiple InputEvent's, allowing the possibility of triggering one action with multiple different inputs.
- Shortcut.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Shortcut.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Shortcut.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Skeleton2D
Skeleton2D parents a hierarchy of Bone2D nodes. It holds a reference to each Bone2D's rest pose and acts as a single point of access to its bones.
To set up different types of inverse kinematics for the given Skeleton2D, a SkeletonModificationStack2D should be created. The inverse kinematics be applied by increasing ModificationCount and creating the desired number of modifications.
- Skeleton2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Skeleton2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Skeleton2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Skeleton3D
Skeleton3D provides an interface for managing a hierarchy of bones, including pose, rest and animation (see Animation). It can also use ragdoll physics.
The overall transform of a bone with respect to the skeleton is determined by bone pose. Bone rest defines the initial transform of the bone pose.
Note that "global pose" below refers to the overall transform of the bone with respect to skeleton, so it is not the actual global/world transform of the bone.
- Skeleton3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Skeleton3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Skeleton3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonIK3D
SkeletonIK3D is used to rotate all bones of a Skeleton3D bone chain a way that places the end bone at a desired 3D position. A typical scenario for IK in games is to place a character's feet on the ground or a character's hands on a currently held object. SkeletonIK uses FabrikInverseKinematic internally to solve the bone chain and applies the results to the Skeleton3D
bones_global_pose_override
property for all affected bones in the chain. If fully applied, this overwrites any bone transform from Animations or bone custom poses set by users. The applied amount can be controlled with the Interpolation property.# Apply IK effect automatically on every new frame (not the current) skeleton_ik_node.start()
Apply IK effect only on the current frame
skeleton_ik_node.start(true)
Stop IK effect and reset bones_global_pose_override on Skeleton
skeleton_ik_node.stop()
Apply full IK effect
skeleton_ik_node.set_interpolation(1.0)
Apply half IK effect
skeleton_ik_node.set_interpolation(0.5)
Apply zero IK effect (a value at or below 0.01 also removes bones_global_pose_override on Skeleton)
skeleton_ik_node.set_interpolation(0.0)
Deprecated. This class is deprecated, and might be removed in a future release.
- SkeletonIK3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonIK3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonIK3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2D
This resource provides an interface that can be expanded so code that operates on Bone2D nodes in a Skeleton2D can be mixed and matched together to create complex interactions.
This is used to provide Godot with a flexible and powerful Inverse Kinematics solution that can be adapted for many different uses.
- SkeletonModification2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DCcdik
This SkeletonModification2D uses an algorithm called Cyclic Coordinate Descent Inverse Kinematics, or CCDIK, to manipulate a chain of bones in a Skeleton2D so it reaches a defined target.
CCDIK works by rotating a set of bones, typically called a "bone chain", on a single axis. Each bone is rotated to face the target from the tip (by default), which over a chain of bones allow it to rotate properly to reach the target. Because the bones only rotate on a single axis, CCDIK can look more robotic than other IK solvers.
Note: The CCDIK modifier has
ccdik_joints
, which are the data objects that hold the data for each joint in the CCDIK chain. This is different from a bone! CCDIK joints hold the data needed for each bone in the bone chain used by CCDIK.CCDIK also fully supports angle constraints, allowing for more control over how a solution is met.
- SkeletonModification2DCcdik.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DCcdik.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DCcdik.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DFabrik
This SkeletonModification2D uses an algorithm called Forward And Backward Reaching Inverse Kinematics, or FABRIK, to rotate a bone chain so that it reaches a target.
FABRIK works by knowing the positions and lengths of a series of bones, typically called a "bone chain". It first starts by running a forward pass, which places the final bone at the target's position. Then all other bones are moved towards the tip bone, so they stay at the defined bone length away. Then a backwards pass is performed, where the root/first bone in the FABRIK chain is placed back at the origin. Then all other bones are moved so they stay at the defined bone length away. This positions the bone chain so that it reaches the target when possible, but all of the bones stay the correct length away from each other.
Because of how FABRIK works, it often gives more natural results than those seen in SkeletonModification2DCcdik. FABRIK also supports angle constraints, which are fully taken into account when solving.
Note: The FABRIK modifier has
fabrik_joints
, which are the data objects that hold the data for each joint in the FABRIK chain. This is different from Bone2D nodes! FABRIK joints hold the data needed for each Bone2D in the bone chain used by FABRIK.To help control how the FABRIK joints move, a magnet vector can be passed, which can nudge the bones in a certain direction prior to solving, giving a level of control over the final result.
- SkeletonModification2DFabrik.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DFabrik.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DFabrik.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DJiggle
This modification moves a series of bones, typically called a bone chain, towards a target. What makes this modification special is that it calculates the velocity and acceleration for each bone in the bone chain, and runs a very light physics-like calculation using the inputted values. This allows the bones to overshoot the target and "jiggle" around. It can be configured to act more like a spring, or sway around like cloth might.
This modification is useful for adding additional motion to things like hair, the edges of clothing, and more. It has several settings to that allow control over how the joint moves when the target moves.
Note: The Jiggle modifier has
jiggle_joints
, which are the data objects that hold the data for each joint in the Jiggle chain. This is different from than Bone2D nodes! Jiggle joints hold the data needed for each Bone2D in the bone chain used by the Jiggle modification.
- SkeletonModification2DJiggle.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DJiggle.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DJiggle.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DLookAt
This SkeletonModification2D rotates a bone to look a target. This is extremely helpful for moving character's head to look at the player, rotating a turret to look at a target, or any other case where you want to make a bone rotate towards something quickly and easily.
- SkeletonModification2DLookAt.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DLookAt.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DLookAt.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DPhysicalBones
This modification takes the transforms of PhysicalBone2D nodes and applies them to Bone2D nodes. This allows the Bone2D nodes to react to physics thanks to the linked PhysicalBone2D nodes.
Experimental. Physical bones may be changed in the future to perform the position update of Bone2D on their own.
- SkeletonModification2DPhysicalBones.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DPhysicalBones.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DPhysicalBones.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DStackHolder
This SkeletonModification2D holds a reference to a SkeletonModificationStack2D, allowing you to use multiple modification stacks on a single Skeleton2D.
Note: The modifications in the held SkeletonModificationStack2D will only be executed if their execution mode matches the execution mode of the SkeletonModification2DStackHolder.
- SkeletonModification2DStackHolder.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DStackHolder.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DStackHolder.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModification2DTwoBoneIK
This SkeletonModification2D uses an algorithm typically called TwoBoneIK. This algorithm works by leveraging the law of cosines and the lengths of the bones to figure out what rotation the bones currently have, and what rotation they need to make a complete triangle, where the first bone, the second bone, and the target form the three vertices of the triangle. Because the algorithm works by making a triangle, it can only operate on two bones.
TwoBoneIK is great for arms, legs, and really any joints that can be represented by just two bones that bend to reach a target. This solver is more lightweight than SkeletonModification2DFabrik, but gives similar, natural looking results.
- SkeletonModification2DTwoBoneIK.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModification2DTwoBoneIK.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModification2DTwoBoneIK.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonModificationStack2D
This resource is used by the Skeleton and holds a stack of SkeletonModification2Ds.
This controls the order of the modifications and how they are applied. Modification order is especially important for full-body IK setups, as you need to execute the modifications in the correct order to get the desired results. For example, you want to execute a modification on the spine before the arms on a humanoid skeleton.
This resource also controls how strongly all of the modifications are applied to the Skeleton2D.
- SkeletonModificationStack2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonModificationStack2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonModificationStack2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonProfile
This resource is used in
EditorScenePostImport
. Some parameters are referring to bones in Skeleton3D, Skin, Animation, and some other nodes are rewritten based on the parameters of SkeletonProfile.Note: These parameters need to be set only when creating a custom profile. In SkeletonProfileHumanoid, they are defined internally as read-only values.
- SkeletonProfile.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonProfile.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonProfile.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkeletonProfileHumanoid
A SkeletonProfile as a preset that is optimized for the human form. This exists for standardization, so all parameters are read-only.
- SkeletonProfileHumanoid.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkeletonProfileHumanoid.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkeletonProfileHumanoid.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Skin.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Skin.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Skin.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SkinReference.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SkinReference.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SkinReference.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Sky
The Sky class uses a Material to render a 3D environment's background and the light it emits by updating the reflection/radiance cubemaps.
- Sky.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Sky.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Sky.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Slider
Abstract base class for sliders, used to adjust a value by moving a grabber along a horizontal or vertical axis. Sliders are Range-based controls.
- Slider.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Slider.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Slider.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SliderJoint3D
A physics joint that restricts the movement of a 3D physics body along an axis relative to another physics body. For example, Body A could be a StaticBody3D representing a piston base, while Body B could be a RigidBody3D representing the piston head, moving up and down.
- SliderJoint3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SliderJoint3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SliderJoint3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SoftBody3D
A deformable 3D physics mesh. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials.
Note: There are many known bugs in SoftBody3D. Therefore, it's not recommended to use them for things that can affect gameplay (such as trampolines).
- SoftBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SoftBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SoftBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SphereMesh
Class representing a spherical PrimitiveMesh.
- SphereMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SphereMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SphereMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SphereOccluder3D
SphereOccluder3D stores a sphere shape that can be used by the engine's occlusion culling system.
See OccluderInstance3D's documentation for instructions on setting up occlusion culling.
- SphereOccluder3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SphereOccluder3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SphereOccluder3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SphereShape3D
A 3D sphere shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D.
Performance: SphereShape3D is fast to check collisions against. It is faster than BoxShape3D, CapsuleShape3D, and CylinderShape3D.
- SphereShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SphereShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SphereShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SpinBox
SpinBox is a numerical input text field. It allows entering integers and floating point numbers.
Example:
var spinBox = new SpinBox(); AddChild(spinBox); var lineEdit = spinBox.GetLineEdit(); lineEdit.ContextMenuEnabled = false; spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;
The above code will create a SpinBox, disable context menu on it and set the text alignment to right.
See Range class for more options over the SpinBox.
Note: With the SpinBox's context menu disabled, you can right-click the bottom half of the spinbox to set the value to its minimum, while right-clicking the top half sets the value to its maximum.
Note: SpinBox relies on an underlying LineEdit node. To theme a SpinBox's background, add theme items for LineEdit and customize them.
Note: If you want to implement drag and drop for the underlying LineEdit, you can use SetDragForwarding(Callable, Callable, Callable) on the node returned by GetLineEdit().
- SpinBox.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SpinBox.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SpinBox.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SplitContainer
A container that accepts only two child controls, then arranges them horizontally or vertically and creates a divisor between them. The divisor can be dragged around to change the size relation between the child controls.
- SplitContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SplitContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SplitContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SpotLight3D
A Spotlight is a type of Light3D node that emits lights in a specific direction, in the shape of a cone. The light is attenuated through the distance. This attenuation can be configured by changing the energy, radius and attenuation parameters of Light3D.
Note: When using the Mobile rendering method, only 8 spot lights can be displayed on each mesh resource. Attempting to display more than 8 spot lights on a single mesh resource will result in spot lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 spot lights can be displayed on each mesh resource by default, but this can be increased by adjusting
ProjectSettings.rendering/limits/opengl/max_lights_per_object
.Note: When using the Mobile or Compatibility rendering methods, spot lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, ExtraCullMargin must be increased on the mesh. Otherwise, the light may not be visible on the mesh.
- SpotLight3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SpotLight3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SpotLight3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SpringArm3D
SpringArm3D casts a ray or a shape along its Z axis and moves all its direct children to the collision point, with an optional margin. This is useful for 3rd person cameras that move closer to the player when inside a tight space (you may need to exclude the player's collider from the SpringArm3D's collision check).
- SpringArm3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SpringArm3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SpringArm3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Sprite2D
A node that displays a 2D texture. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.
- Sprite2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Sprite2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Sprite2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Sprite3D
A node that displays a 2D texture in a 3D environment. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation. See also SpriteBase3D where properties such as the billboard mode are defined.
- Sprite3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Sprite3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Sprite3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SpriteBase3D
A node that displays 2D texture information in a 3D environment. See also Sprite3D where many other properties are defined.
- SpriteBase3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SpriteBase3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SpriteBase3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SpriteFrames
Sprite frame library for an AnimatedSprite2D or AnimatedSprite3D node. Contains frames and animation data for playback.
- SpriteFrames.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SpriteFrames.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SpriteFrames.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StandardMaterial3D
StandardMaterial3D's properties are inherited from BaseMaterial3D. StandardMaterial3D uses separate textures for ambient occlusion, roughness and metallic maps. To use a single ORM map for all 3 textures, use an OrmMaterial3D instead.
- StandardMaterial3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StandardMaterial3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StandardMaterial3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StaticBody2D
A static 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, AnimationMixers (with CallbackModeProcess set to Physics), and RemoteTransform2D.
When StaticBody2D is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use AnimatableBody2D instead.
StaticBody2D is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using ConstantLinearVelocity and ConstantAngularVelocity).
- StaticBody2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StaticBody2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StaticBody2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StaticBody3D
A static 3D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, AnimationMixers (with CallbackModeProcess set to Physics), and RemoteTransform3D.
When StaticBody3D is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use AnimatableBody3D instead.
StaticBody3D is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using ConstantLinearVelocity and ConstantAngularVelocity).
- StaticBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StaticBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StaticBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StreamPeer
StreamPeer is an abstract base class mostly used for stream-based protocols (such as TCP). It provides an API for sending and receiving data through streams as raw data or strings.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- StreamPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StreamPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StreamPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StreamPeerBuffer
A data buffer stream peer that uses a byte array as the stream. This object can be used to handle binary data from network sessions. To handle binary data stored in files, FileAccess can be used directly.
A StreamPeerBuffer object keeps an internal cursor which is the offset in bytes to the start of the buffer. Get and put operations are performed at the cursor position and will move the cursor accordingly.
- StreamPeerBuffer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StreamPeerBuffer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StreamPeerBuffer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StreamPeerExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StreamPeerExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StreamPeerExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StreamPeerGZip
This class allows to compress or decompress data using GZIP/deflate in a streaming fashion. This is particularly useful when compressing or decompressing files that have to be sent through the network without needing to allocate them all in memory.
After starting the stream via StartCompression(bool, int) (or StartDecompression(bool, int)), calling PutPartialData(byte[]) on this stream will compress (or decompress) the data, writing it to the internal buffer. Calling GetAvailableBytes() will return the pending bytes in the internal buffer, and GetPartialData(int) will retrieve the compressed (or decompressed) bytes from it. When the stream is over, you must call Finish() to ensure the internal buffer is properly flushed (make sure to call GetAvailableBytes() on last time to check if more data needs to be read after that).
- StreamPeerGZip.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StreamPeerGZip.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StreamPeerGZip.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StreamPeerTcp
A stream peer that handles TCP connections. This object can be used to connect to TCP servers, or also is returned by a TCP server.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- StreamPeerTcp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StreamPeerTcp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StreamPeerTcp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StreamPeerTls
A stream peer that handles TLS connections. This object can be used to connect to a TLS server or accept a single TLS client connection.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- StreamPeerTls.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StreamPeerTls.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StreamPeerTls.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StringExtensions
Extension methods to manipulate strings.
- StringName
StringNames are immutable strings designed for general-purpose representation of unique names. StringName ensures that only one instance of a given name exists (so two StringNames with the same value are the same object). Comparing them is much faster than with regular strings, because only the pointers are compared, not the whole strings.
- StyleBox
StyleBox is an abstract base class for drawing stylized boxes for UI elements. It is used for panels, buttons, LineEdit 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.
Note: For control nodes that have Theme Properties, the
focus
StyleBox is displayed over thenormal
,hover
orpressed
StyleBox. This makes thefocus
StyleBox more reusable across different nodes.
- StyleBox.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StyleBox.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StyleBox.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StyleBoxEmpty
An empty StyleBox that can be used to display nothing instead of the default style (e.g. it can "disable"
focus
styles).
- StyleBoxEmpty.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StyleBoxEmpty.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StyleBoxEmpty.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StyleBoxFlat
By configuring various properties of this style box, you can achieve many common looks without the need of a texture. This includes optionally rounded borders, antialiasing, shadows, and skew.
Setting corner radius to high values is allowed. As soon as corners overlap, the stylebox will switch to a relative system.
Example:
height = 30 corner_radius_top_left = 50 corner_radius_bottom_left = 100
The relative system now would take the 1:2 ratio of the two left corners to calculate the actual corner width. Both corners added will never be more than the height. Result:
corner_radius_top_left: 10 corner_radius_bottom_left: 20
- StyleBoxFlat.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StyleBoxFlat.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StyleBoxFlat.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StyleBoxLine
A StyleBox that displays a single line of a given color and thickness. The line can be either horizontal or vertical. Useful for separators.
- StyleBoxLine.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StyleBoxLine.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StyleBoxLine.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- StyleBoxTexture
A texture-based nine-patch StyleBox, in a way similar to NinePatchRect. This stylebox performs a 3×3 scaling of a texture, where only the center cell is fully stretched. This makes it possible to design bordered styles regardless of the stylebox's size.
- StyleBoxTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- StyleBoxTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- StyleBoxTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SubViewport
SubViewport Isolates a rectangular region of a scene to be displayed independently. This can be used, for example, to display UI in 3D space.
Note: SubViewport is a Viewport that isn't a Window, i.e. it doesn't draw anything by itself. To display anything, SubViewport must have a non-zero size and be either put inside a SubViewportContainer or assigned to a ViewportTexture.
- SubViewport.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SubViewport.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SubViewport.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SubViewportContainer
A container that displays the contents of underlying SubViewport child nodes. It uses the combined size of the SubViewports as minimum size, unless Stretch is enabled.
Note: Changing a SubViewportContainer's Scale will cause its contents to appear distorted. To change its visual size without causing distortion, adjust the node's margins instead (if it's not already in a container).
Note: The SubViewportContainer forwards mouse-enter and mouse-exit notifications to its sub-viewports.
- SubViewportContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SubViewportContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SubViewportContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SurfaceTool
The SurfaceTool is used to construct a Mesh by specifying vertex attributes individually. It can be used to construct a Mesh from a script. All properties except indices need to be added before calling AddVertex(Vector3). For example, to add vertex colors and UVs:
var st = new SurfaceTool(); st.Begin(Mesh.PrimitiveType.Triangles); st.SetColor(new Color(1, 0, 0)); st.SetUV(new Vector2(0, 0)); st.AddVertex(new Vector3(0, 0, 0));
The above SurfaceTool now contains one vertex of a triangle which has a UV coordinate and a specified Color. If another vertex were added without calling SetUV(Vector2) or SetColor(Color), then the last values would be used.
Vertex attributes must be passed before calling AddVertex(Vector3). Failure to do so will result in an error when committing the vertex information to a mesh.
Additionally, the attributes used before the first vertex is added determine the format of the mesh. For example, if you only add UVs to the first vertex, you cannot add color to any of the subsequent vertices.
See also ArrayMesh, ImmediateMesh and MeshDataTool for procedural geometry generation.
Note: Godot uses clockwise winding order for front faces of triangle primitive modes.
- SurfaceTool.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SurfaceTool.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SurfaceTool.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SyntaxHighlighter
Base class for syntax highlighters. Provides syntax highlighting data to a TextEdit. The associated TextEdit will call into the SyntaxHighlighter on an as-needed basis.
Note: A SyntaxHighlighter instance should not be used across multiple TextEdit nodes.
- SyntaxHighlighter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SyntaxHighlighter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SyntaxHighlighter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- SystemFont
SystemFont loads a font from a system font with the first matching name from FontNames.
It will attempt to match font style, but it's not guaranteed.
The returned font might be part of a font collection or be a variable font with OpenType "weight", "width" and/or "italic" features set.
You can create FontVariation of the system font for precise control over its features.
Note: This class is implemented on iOS, Linux, macOS and Windows, on other platforms it will fallback to default theme font.
- SystemFont.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- SystemFont.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- SystemFont.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TabBar
A control that provides a horizontal bar with tabs. Similar to TabContainer but is only in charge of drawing tabs, not interacting with children.
- TabBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TabBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TabBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TabContainer
Arranges child controls into a tabbed view, creating a tab for each one. The active tab's corresponding control is made visible, while all other child controls are hidden. Ignores non-control children.
Note: The drawing of the clickable tabs is handled by this node; TabBar is not needed.
- TabContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TabContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TabContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TcpServer
A TCP server. Listens to connections on a port and returns a StreamPeerTcp when it gets an incoming connection.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- TcpServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TcpServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TcpServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextEdit
A multiline text editor. It also has limited facilities for editing code, such as syntax highlighting support. For more advanced facilities for editing code, see CodeEdit.
Note: Most viewport, caret and edit methods contain a
caret_index
argument for CaretMultiple support. The argument should be one of the following:-1
for all carets,0
for the main caret, or greater than0
for secondary carets.Note: When holding down Alt, the vertical scroll wheel will scroll 5 times as fast as it would normally do. This also works in the Godot script editor.
- TextEdit.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextEdit.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextEdit.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextLine
Abstraction over TextServer for handling a single line of text.
- TextLine.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextLine.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextLine.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextMesh
Generate an PrimitiveMesh from the text.
TextMesh can be generated only when using dynamic fonts with vector glyph contours. Bitmap fonts (including bitmap data in the TrueType/OpenType containers, like color emoji fonts) are not supported.
The UV layout is arranged in 4 horizontal strips, top to bottom: 40% of the height for the front face, 40% for the back face, 10% for the outer edges and 10% for the inner edges.
- TextMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextParagraph
Abstraction over TextServer for handling a single paragraph of text.
- TextParagraph.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextParagraph.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextParagraph.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextServer
TextServer is the API backend for managing fonts and rendering text.
- TextServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextServerAdvanced
An implementation of TextServer that uses HarfBuzz, ICU and SIL Graphite to support BiDi, complex text layouts and contextual OpenType features. This is Godot's default primary TextServer interface.
- TextServerAdvanced.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextServerAdvanced.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextServerAdvanced.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextServerDummy
A dummy TextServer interface that doesn't do anything. Useful for freeing up memory when rendering text is not needed, as text servers are resource-intensive. It can also be used for performance comparisons in complex GUIs to check the impact of text rendering.
A dummy text server is always available at the start of a project. Here's how to access it:
var dummy_text_server = TextServerManager.find_interface("Dummy") if dummy_text_server != null: TextServerManager.set_primary_interface(dummy_text_server) # If the other text servers are unneeded, they can be removed: for i in TextServerManager.get_interface_count(): var text_server = TextServerManager.get_interface(i) if text_server != dummy_text_server: TextServerManager.remove_interface(text_server)
The command line argument
--text-driver Dummy
(case-sensitive) can be used to force the "Dummy" TextServer on any project.
- TextServerDummy.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextServerDummy.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextServerDummy.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextServerExtension
External TextServer implementations should inherit from this class.
- TextServerExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextServerExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextServerExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextServerManager
TextServerManager is the API backend for loading, enumerating, and switching TextServers.
Note: Switching text server at runtime is possible, but will invalidate all fonts and text buffers. Make sure to unload all controls, fonts, and themes before doing so.
- TextServerManager.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextServerManager.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextServerManager.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextServerManagerInstance
TextServerManager is the API backend for loading, enumerating, and switching TextServers.
Note: Switching text server at runtime is possible, but will invalidate all fonts and text buffers. Make sure to unload all controls, fonts, and themes before doing so.
- TextServerManagerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextServerManagerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextServerManagerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture
Texture is the base class for all texture types. Common texture types are Texture2D and ImageTexture. See also Image.
- Texture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture2D
A texture works by registering an image in the video hardware, which then can be used in 3D models or 2D Sprite2D or GUI Control.
Textures are often created by loading them from a file. See
@GDScript.load
.Texture2D is a base for other resources. It cannot be used directly.
Note: The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. Larger textures may fail to import.
- Texture2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture2DArray
A Texture2DArray is different from a Texture3D: The Texture2DArray does not support trilinear interpolation between the Images, i.e. no blending. See also Cubemap and CubemapArray, which are texture arrays with specialized cubemap functions.
A Texture2DArray is also different from an AtlasTexture: In a Texture2DArray, all images are treated separately. In an atlas, the regions (i.e. the single images) can be of different sizes. Furthermore, you usually need to add a padding around the regions, to prevent accidental UV mapping to more than one region. The same goes for mipmapping: Mipmap chains are handled separately for each layer. In an atlas, the slicing has to be done manually in the fragment shader.
To create such a texture file yourself, reimport your image files using the Godot Editor import presets.
- Texture2DArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture2DArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture2DArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture2DArrayRD
This texture array class allows you to use a 2D array texture created directly on the RenderingDevice as a texture for materials, meshes, etc.
- Texture2DArrayRD.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture2DArrayRD.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture2DArrayRD.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture2Drd
This texture class allows you to use a 2D texture created directly on the RenderingDevice as a texture for materials, meshes, etc.
- Texture2Drd.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture2Drd.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture2Drd.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture3D
Base class for ImageTexture3D and CompressedTexture3D. Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. Texture3D is the base class for all 3-dimensional texture types. See also TextureLayered.
All images need to have the same width, height and number of mipmap levels.
To create such a texture file yourself, reimport your image files using the Godot Editor import presets.
- Texture3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Texture3Drd
This texture class allows you to use a 3D texture created directly on the RenderingDevice as a texture for materials, meshes, etc.
- Texture3Drd.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Texture3Drd.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Texture3Drd.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureButton
TextureButton has the same functionality as Button, except it uses sprites instead of Godot's Theme resource. It is faster to create, but it doesn't support localization like more complex Controls.
The "normal" state must contain a texture (TextureNormal); other textures are optional.
See also BaseButton which contains common properties and methods associated with this node.
- TextureButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureCubemapArrayRD
This texture class allows you to use a cubemap array texture created directly on the RenderingDevice as a texture for materials, meshes, etc.
- TextureCubemapArrayRD.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureCubemapArrayRD.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureCubemapArrayRD.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureCubemapRD
This texture class allows you to use a cubemap texture created directly on the RenderingDevice as a texture for materials, meshes, etc.
- TextureCubemapRD.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureCubemapRD.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureCubemapRD.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureLayered
Base class for ImageTextureLayered and CompressedTextureLayered. Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also Texture3D.
Data is set on a per-layer basis. For Texture2DArrays, the layer specifies the array layer.
All images need to have the same width, height and number of mipmap levels.
A TextureLayered can be loaded with Load(string, string, CacheMode).
Internally, Godot maps these files to their respective counterparts in the target rendering driver (Vulkan, OpenGL3).
- TextureLayered.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureLayered.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureLayered.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureLayeredRD
Base class for Texture2DArrayRD, TextureCubemapRD and TextureCubemapArrayRD. Cannot be used directly, but contains all the functions necessary for accessing the derived resource types.
- TextureLayeredRD.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureLayeredRD.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureLayeredRD.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureProgressBar
TextureProgressBar works like ProgressBar, but uses up to 3 textures instead of Godot's Theme resource. It can be used to create horizontal, vertical and radial progress bars.
- TextureProgressBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureProgressBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureProgressBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TextureRect
A control that displays a texture, for example an icon inside a GUI. The texture's placement can be controlled with the StretchMode property. It can scale, tile, or stay centered inside its bounding rectangle.
- TextureRect.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TextureRect.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TextureRect.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Theme
A resource used for styling/skinning Control and Window nodes. While individual controls can be styled using their local theme overrides (see AddThemeColorOverride(StringName, Color)), theme resources allow you to store and apply the same settings across all controls sharing the same type (e.g. style all Buttons the same). One theme resource can be used for the entire project, but you can also set a separate theme resource to a branch of control nodes. A theme resource assigned to a control applies to the control itself, as well as all of its direct and indirect children (as long as a chain of controls is uninterrupted).
Use
ProjectSettings.gui/theme/custom
to set up a project-scope theme that will be available to every control in your project.Use Theme of any control node to set up a theme that will be available to that control and all of its direct and indirect children.
- Theme.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Theme.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Theme.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ThemeDB
This singleton provides access to static information about Theme resources used by the engine and by your projects. You can fetch the default engine theme, as well as your project configured theme.
ThemeDB also contains fallback values for theme properties.
- ThemeDB.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ThemeDB.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ThemeDB.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ThemeDBInstance
This singleton provides access to static information about Theme resources used by the engine and by your projects. You can fetch the default engine theme, as well as your project configured theme.
ThemeDB also contains fallback values for theme properties.
- ThemeDBInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ThemeDBInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ThemeDBInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileData
TileData object represents a single tile in a TileSet. It is usually edited using the tileset editor, but it can be modified at runtime using _TileDataRuntimeUpdate(int, Vector2I, TileData).
- TileData.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileData.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileData.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileMap
Node for 2D tile-based maps. Tilemaps use a TileSet which contain a list of tiles which are used to create grid-based maps. A TileMap may have several layers, layouting tiles on top of each other.
For performance reasons, all TileMap updates are batched at the end of a frame. Notably, this means that scene tiles from a TileSetScenesCollectionSource may be initialized after their parent. This is only queued when inside the scene tree.
To force an update earlier on, call UpdateInternals().
- TileMap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileMap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileMap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileMapPattern
This resource holds a set of cells to help bulk manipulations of TileMap.
A pattern always start at the
(0,0)
coordinates and cannot have cells with negative coordinates.
- TileMapPattern.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileMapPattern.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileMapPattern.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileSet
A TileSet is a library of tiles for a TileMap. A TileSet handles a list of TileSetSource, each of them storing a set of tiles.
Tiles can either be from a TileSetAtlasSource, which renders tiles out of a texture with support for physics, navigation, etc., or from a TileSetScenesCollectionSource, which exposes scene-based tiles.
Tiles are referenced by using three IDs: their source ID, their atlas coordinates ID, and their alternative tile ID.
A TileSet can be configured so that its tiles expose more or fewer properties. To do so, the TileSet resources use property layers, which you can add or remove depending on your needs.
For example, adding a physics layer allows giving collision shapes to your tiles. Each layer has dedicated properties (physics layer and mask), so you may add several TileSet physics layers for each type of collision you need.
See the functions to add new layers for more information.
- TileSet.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileSet.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileSet.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileSetAtlasSource
An atlas is a grid of tiles laid out on a texture. Each tile in the grid must be exposed using CreateTile(Vector2I, Vector2I?). Those tiles are then indexed using their coordinates in the grid.
Each tile can also have a size in the grid coordinates, making it more or less cells in the atlas.
Alternatives version of a tile can be created using CreateAlternativeTile(Vector2I, int), which are then indexed using an alternative ID. The main tile (the one in the grid), is accessed with an alternative ID equal to 0.
Each tile alternate has a set of properties that is defined by the source's TileSet layers. Those properties are stored in a TileData object that can be accessed and modified using GetTileData(Vector2I, int).
As TileData properties are stored directly in the TileSetAtlasSource resource, their properties might also be set using
TileSetAtlasSource.set("<coords_x>:<coords_y>/<alternative_id>/<tile_data_property>")
.
- TileSetAtlasSource.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileSetAtlasSource.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileSetAtlasSource.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileSetScenesCollectionSource
When placed on a TileMap, tiles from TileSetScenesCollectionSource will automatically instantiate an associated scene at the cell's position in the TileMap.
Scenes are instantiated as children of the TileMap when it enters the tree. If you add/remove a scene tile in the TileMap that is already inside the tree, the TileMap will automatically instantiate/free the scene accordingly.
- TileSetScenesCollectionSource.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileSetScenesCollectionSource.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileSetScenesCollectionSource.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TileSetSource
Exposes a set of tiles for a TileSet resource.
Tiles in a source are indexed with two IDs, coordinates ID (of type Vector2i) and an alternative ID (of type int), named according to their use in the TileSetAtlasSource class.
Depending on the TileSet source type, those IDs might have restrictions on their values, this is why the base TileSetSource class only exposes getters for them.
You can iterate over all tiles exposed by a TileSetSource by first iterating over coordinates IDs using GetTilesCount() and GetTileId(int), then over alternative IDs using GetAlternativeTilesCount(Vector2I) and GetAlternativeTileId(Vector2I, int).
Warning: TileSetSource can only be added to one TileSet at the same time. Calling AddSource(TileSetSource, int) on a second TileSet will remove the source from the first one.
- TileSetSource.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TileSetSource.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TileSetSource.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Time
The Time singleton allows converting time between various formats and also getting time information from the system.
This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before
1582-10-15
is1582-10-14
, not1582-10-04
. The year before 1 AD (aka 1 BC) is number0
, with the year before that (2 BC) being-1
, etc.Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually.
When getting time information from the system, the time can either be in the local timezone or UTC depending on the
utc
parameter. However, the GetUnixTimeFromSystem() method always uses UTC as it returns the seconds passed since the Unix epoch.Important: The
_from_system
methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always useGetTicksUsec() or GetTicksMsec() for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease).
- Time.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Time.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Time.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TimeInstance
The Time singleton allows converting time between various formats and also getting time information from the system.
This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before
1582-10-15
is1582-10-14
, not1582-10-04
. The year before 1 AD (aka 1 BC) is number0
, with the year before that (2 BC) being-1
, etc.Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually.
When getting time information from the system, the time can either be in the local timezone or UTC depending on the
utc
parameter. However, the GetUnixTimeFromSystem() method always uses UTC as it returns the seconds passed since the Unix epoch.Important: The
_from_system
methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always useGetTicksUsec() or GetTicksMsec() for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease).
- TimeInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TimeInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TimeInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Timer
Counts down a specified interval and emits a signal on reaching 0. Can be set to repeat or "one-shot" mode.
Note: Timers are affected by TimeScale, a higher scale means quicker timeouts, and vice versa.
Note: To create a one-shot timer without instantiating a node, use CreateTimer(double, bool, bool, bool).
- Timer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Timer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Timer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TlsOptions
TLSOptions abstracts the configuration options for the StreamPeerTls and PacketPeerDtls classes.
Objects of this class cannot be instantiated directly, and one of the static methods Client(X509Certificate, string), ClientUnsafe(X509Certificate), or Server(CryptoKey, X509Certificate) should be used instead.
- TlsOptions.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TlsOptions.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TlsOptions.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TorusMesh
Class representing a torus PrimitiveMesh.
- TorusMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TorusMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TorusMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TouchScreenButton
TouchScreenButton allows you to create on-screen buttons for touch devices. It's intended for gameplay use, such as a unit you have to touch to move. Unlike Button, TouchScreenButton supports multitouch out of the box. Several TouchScreenButtons can be pressed at the same time with touch input.
This node inherits from Node2D. Unlike with Control nodes, you cannot set anchors on it. If you want to create menus or user interfaces, you may want to use Button nodes instead. To make button nodes react to touch events, you can enable the Emulate Mouse option in the Project Settings.
You can configure TouchScreenButton to be visible only on touch devices, helping you develop your game both for desktop and mobile devices.
- TouchScreenButton.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TouchScreenButton.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TouchScreenButton.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Translation
Translations are resources that can be loaded and unloaded on demand. They map a collection of strings to their individual translations, and they also provide convenience methods for pluralization.
- Translation.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Translation.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Translation.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TranslationServer
The server that manages all language translations. Translations can be added to or removed from it.
- TranslationServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TranslationServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TranslationServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TranslationServerInstance
The server that manages all language translations. Translations can be added to or removed from it.
- TranslationServerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TranslationServerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TranslationServerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Tree
A control used to show a set of internal TreeItems in a hierarchical structure. The tree items can be selected, expanded and collapsed. The tree can have multiple columns with custom controls like LineEdits, buttons and popups. It can be useful for structured displays and interactions.
Trees are built via code, using TreeItem objects to create the structure. They have a single root, but multiple roots can be simulated with HideRoot:
public override void _Ready() { var tree = new Tree(); TreeItem root = tree.CreateItem(); tree.HideRoot = true; TreeItem child1 = tree.CreateItem(root); TreeItem child2 = tree.CreateItem(root); TreeItem subchild1 = tree.CreateItem(child1); subchild1.SetText(0, "Subchild1"); }
To iterate over all the TreeItem objects in a Tree object, use GetNext() and GetFirstChild() after getting the root through GetRoot(). You can use Free() on a TreeItem to remove it from the Tree.
Incremental search: Like ItemList and PopupMenu, Tree supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing
ProjectSettings.gui/timers/incremental_search_max_interval_msec
.
- Tree.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Tree.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Tree.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TreeItem
A single item of a Tree control. It can contain other TreeItems as children, which allows it to create a hierarchy. It can also contain text and buttons. TreeItem is not a Node, it is internal to the Tree.
To create a TreeItem, use CreateItem(TreeItem, int) or CreateChild(int). To remove a TreeItem, use Free().
Note: The ID values used for buttons are 32-bit, unlike int which is always 64-bit. They go from
-2147483648
to2147483647
.
- TreeItem.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TreeItem.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TreeItem.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TriangleMesh
Mesh type used internally for collision calculations.
- TriangleMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TriangleMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TriangleMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- TubeTrailMesh
TubeTrailMesh represents a straight tube-shaped mesh with variable width. The tube is composed of a number of cylindrical sections, each with the same SectionLength and number of SectionRings. A Curve is sampled along the total length of the tube, meaning that the curve determines the radius of the tube along its length.
This primitive mesh is usually used for particle trails.
- TubeTrailMesh.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- TubeTrailMesh.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- TubeTrailMesh.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Tween
Tweens are mostly useful for animations requiring a numerical property to be interpolated over a range of values. The name tween comes from in-betweening, an animation technique where you specify keyframes and the computer interpolates the frames that appear between them. Animating something with a Tween is called tweening.
Tween is more suited than AnimationPlayer for animations where you don't know the final values in advance. For example, interpolating a dynamically-chosen camera zoom value is best done with a Tween; it would be difficult to do the same thing with an AnimationPlayer node. Tweens are also more light-weight than AnimationPlayer, so they are very much suited for simple animations or general tasks that don't require visual tweaking provided by the editor. They can be used in a "fire-and-forget" manner for some logic that normally would be done by code. You can e.g. make something shoot periodically by using a looped CallbackTweener with a delay.
A Tween can be created by using either CreateTween() or CreateTween(). Tweens created manually (i.e. by using
Tween.new()
) are invalid and can't be used for tweening values.A tween animation is created by adding Tweeners to the Tween object, using TweenProperty(GodotObject, NodePath, Variant, double), TweenInterval(double), TweenCallback(Callable) or TweenMethod(Callable, Variant, Variant, double):
Tween tween = GetTree().CreateTween(); tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f); tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f); tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree));
This sequence will make the
$Sprite
node turn red, then shrink, before finally calling QueueFree() to free the sprite. Tweeners are executed one after another by default. This behavior can be changed using Parallel() and SetParallel(bool).When a Tweener is created with one of the
tween_*
methods, a chained method call can be used to tweak the properties of this Tweener. For example, if you want to set a different transition type in the above example, you can use SetTrans(TransitionType):Tween tween = GetTree().CreateTween(); tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f).SetTrans(Tween.TransitionType.Sine); tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f).SetTrans(Tween.TransitionType.Bounce); tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree));
Most of the Tween methods can be chained this way too. In the following example the Tween is bound to the running script's node and a default transition is set for its Tweeners:
var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween.TransitionType.Elastic); tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f); tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f); tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree));
Another interesting use for Tweens is animating arbitrary sets of objects:
Tween tween = CreateTween(); foreach (Node sprite in GetChildren()) tween.TweenProperty(sprite, "position", Vector2.Zero, 1.0f);
In the example above, all children of a node are moved one after another to position (0, 0).
You should avoid using more than one Tween per object's property. If two or more tweens animate one property at the same time, the last one created will take priority and assign the final value. If you want to interrupt and restart an animation, consider assigning the Tween to a variable:
private Tween _tween;
public void Animate() { if (_tween != null) _tween.Kill(); // Abort the previous animation _tween = CreateTween(); }
Some Tweeners use transitions and eases. The first accepts a Tween.TransitionType constant, and refers to the way the timing of the animation is handled (see easings.net for some examples). The second accepts an Tween.EaseType constant, and controls where the
trans_type
is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different Tween.TransitionType constants with InOut, and use the one that looks best.Tween easing and transition types cheatsheet
Note: Tweens are not designed to be re-used and trying to do so results in an undefined behavior. Create a new Tween for each animation and every time you replay an animation from start. Keep in mind that Tweens start immediately, so only create a Tween when you want to start animating.
Note: The tween is processed after all of the nodes in the current frame, i.e. node's _Process(double) method would be called before the tween (or _PhysicsProcess(double) depending on the value passed to SetProcessMode(TweenProcessMode)).
- Tween.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Tween.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Tween.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Tweener
Tweeners are objects that perform a specific animating task, e.g. interpolating a property or calling a method at a given time. A Tweener can't be created manually, you need to use a dedicated method from Tween.
- Tweener.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Tweener.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Tweener.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- UdpServer
A simple server that opens a UDP socket and returns connected PacketPeerUdp upon receiving new packets. See also ConnectToHost(string, int).
After starting the server (Listen(ushort, string)), you will need to Poll() it at regular intervals (e.g. inside _Process(double)) for it to process new packets, delivering them to the appropriate PacketPeerUdp, and taking new connections.
Below a small example of how it can be used:
// ServerNode.cs using Godot; using System.Collections.Generic;
public partial class ServerNode : Node { private UdpServer _server = new UdpServer(); private List<PacketPeerUdp> _peers = new List<PacketPeerUdp>();
public override void _Ready() { _server.Listen(4242); } public override void _Process(double delta) { _server.Poll(); // Important! if (_server.IsConnectionAvailable()) { PacketPeerUdp peer = _server.TakeConnection(); byte[] packet = peer.GetPacket(); GD.Print($"Accepted Peer: {peer.GetPacketIP()}:{peer.GetPacketPort()}"); GD.Print($"Received Data: {packet.GetStringFromUtf8()}"); // Reply so it knows we received the message. peer.PutPacket(packet); // Keep a reference so we can keep contacting the remote peer. _peers.Add(peer); } foreach (var peer in _peers) { // Do something with the peers. } }
}
// ClientNode.cs using Godot;
public partial class ClientNode : Node { private PacketPeerUdp _udp = new PacketPeerUdp(); private bool _connected = false;
public override void _Ready() { _udp.ConnectToHost("127.0.0.1", 4242); } public override void _Process(double delta) { if (!_connected) { // Try to contact server _udp.PutPacket("The Answer Is..42!".ToUtf8Buffer()); } if (_udp.GetAvailablePacketCount() > 0) { GD.Print($"Connected: {_udp.GetPacket().GetStringFromUtf8()}"); _connected = true; } }
}
- UdpServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- UdpServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- UdpServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- UndoRedo
UndoRedo works by registering methods and property changes inside "actions". You can create an action, then provide ways to do and undo this action using function calls and property changes, then commit the action.
When an action is committed, all of the
do_*
methods will run. If the Undo() method is used, theundo_*
methods will run. If the Redo() method is used, once again, all of thedo_*
methods will run.Here's an example on how to add an action:
private UndoRedo _undoRedo;
public override void _Ready() { _undoRedo = new UndoRedo(); }
public void DoSomething() { // Put your code here. }
public void UndoSomething() { // Put here the code that reverts what's done by "DoSomething()". }
private void OnMyButtonPressed() { var node = GetNode<Node2D>("MyNode2D"); _undoRedo.CreateAction("Move the node"); _undoRedo.AddDoMethod(new Callable(this, MethodName.DoSomething)); _undoRedo.AddUndoMethod(new Callable(this, MethodName.UndoSomething)); _undoRedo.AddDoProperty(node, "position", new Vector2(100, 100)); _undoRedo.AddUndoProperty(node, "position", node.Position); _undoRedo.CommitAction(); }
Before calling any of the
add_(un)do_*
methods, you need to first call CreateAction(string, MergeMode, bool). Afterwards you need to call CommitAction(bool).If you don't need to register a method, you can leave AddDoMethod(Callable) and AddUndoMethod(Callable) out; the same goes for properties. You can also register more than one method/property.
If you are making an
EditorPlugin
and want to integrate into the editor's undo history, useEditorUndoRedoManager
instead.If you are registering multiple properties/method which depend on one another, be aware that by default undo operation are called in the same order they have been added. Therefore instead of grouping do operation with their undo operations it is better to group do on one side and undo on the other as shown below.
_undo_redo.CreateAction("Add object");
// DO _undo_redo.AddDoMethod(new Callable(this, MethodName.CreateObject)); _undo_redo.AddDoMethod(new Callable(this, MethodName.AddObjectToSingleton));
// UNDO _undo_redo.AddUndoMethod(new Callable(this, MethodName.RemoveObjectFromSingleton)); _undo_redo.AddUndoMethod(new Callable(this, MethodName.DestroyThatObject));
_undo_redo.CommitAction();
- UndoRedo.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- UndoRedo.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- UndoRedo.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Upnp
This class can be used to discover compatible UpnpDevices on the local network and execute commands on them, like managing port mappings (for port forwarding/NAT traversal) and querying the local and remote network IP address. Note that methods on this class are synchronous and block the calling thread.
To forward a specific port (here
7777
, note both Discover(int, int, string) and AddPortMapping(int, int, string, string, int) can return errors that should be checked):var upnp = UPNP.new() upnp.discover() upnp.add_port_mapping(7777)
To close a specific port (e.g. after you have finished using it):
upnp.delete_port_mapping(port)
Note: UPnP discovery blocks the current thread. To perform discovery without blocking the main thread, use GodotThreads like this:
# Emitted when UPnP port mapping setup is completed (regardless of success or failure). signal upnp_completed(error)
Replace this with your own server port number between 1024 and 65535.
const SERVER_PORT = 3928 var thread = null
func _upnp_setup(server_port): # UPNP queries take some time. var upnp = UPNP.new() var err = upnp.discover()
if err != OK: push_error(str(err)) emit_signal("upnp_completed", err) return if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway(): upnp.add_port_mapping(server_port, server_port, ProjectSettings.get_setting("application/config/name"), "UDP") upnp.add_port_mapping(server_port, server_port, ProjectSettings.get_setting("application/config/name"), "TCP") emit_signal("upnp_completed", OK)
func _ready(): thread = Thread.new() thread.start(_upnp_setup.bind(SERVER_PORT))
func _exit_tree(): # Wait for thread finish here to handle game exit while the thread is running. thread.wait_to_finish()
Terminology: In the context of UPnP networking, "gateway" (or "internet gateway device", short IGD) refers to network devices that allow computers in the local network to access the internet ("wide area network", WAN). These gateways are often also called "routers".
Pitfalls:
- As explained above, these calls are blocking and shouldn't be run on the main thread, especially as they can block for multiple seconds at a time. Use threading!
- Networking is physical and messy. Packets get lost in transit or get filtered, addresses, free ports and assigned mappings change, and devices may leave or join the network at any time. Be mindful of this, be diligent when checking and handling errors, and handle these gracefully if you can: add clear error UI, timeouts and re-try handling.
- Port mappings may change (and be removed) at any time, and the remote/external IP address of the gateway can change likewise. You should consider re-querying the external IP and try to update/refresh the port mapping periodically (for example, every 5 minutes and on networking failures).
- Not all devices support UPnP, and some users disable UPnP support. You need to handle this (e.g. documenting and requiring the user to manually forward ports, or adding alternative methods of NAT traversal, like a relay/mirror server, or NAT hole punching, STUN/TURN, etc.).
- Consider what happens on mapping conflicts. Maybe multiple users on the same network would like to play your game at the same time, or maybe another application uses the same port. Make the port configurable, and optimally choose a port automatically (re-trying with a different port on failure).
Further reading: If you want to know more about UPnP (and the Internet Gateway Device (IGD) and Port Control Protocol (PCP) specifically), Wikipedia is a good first stop, the specification can be found at the Open Connectivity Foundation and Godot's implementation is based on the MiniUPnP client.
- Upnp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Upnp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Upnp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- UpnpDevice
Universal Plug and Play (UPnP) device. See Upnp for UPnP discovery and utility functions. Provides low-level access to UPNP control commands. Allows to manage port mappings (port forwarding) and to query network information of the device (like local and external IP address and status). Note that methods on this class are synchronous and block the calling thread.
- UpnpDevice.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- UpnpDevice.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- UpnpDevice.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VBoxContainer
A variant of BoxContainer that can only arrange its child controls vertically. Child controls are rearranged automatically when their minimum size changes.
- VBoxContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VBoxContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VBoxContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VFlowContainer
A variant of FlowContainer that can only arrange its child controls vertically, wrapping them around at the borders. This is similar to how text in a book wraps around when no more words can fit on a line, except vertically.
- VFlowContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VFlowContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VFlowContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VScrollBar
A vertical scrollbar, typically used to navigate through content that extends beyond the visible height of a control. It is a Range-based control and goes from top (min) to bottom (max). Note that this direction is the opposite of VSlider's.
- VScrollBar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VScrollBar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VScrollBar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VSeparator
A vertical separator used for separating other controls that are arranged horizontally. VSeparator is purely visual and normally drawn as a StyleBoxLine.
- VSeparator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VSeparator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VSeparator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VSlider
A vertical slider, used to adjust a value by moving a grabber along a vertical axis. It is a Range-based control and goes from bottom (min) to top (max). Note that this direction is the opposite of VScrollBar's.
- VSlider.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VSlider.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VSlider.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VSplitContainer
A container that accepts only two child controls, then arranges them vertically and creates a divisor between them. The divisor can be dragged around to change the size relation between the child controls.
- VSplitContainer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VSplitContainer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VSplitContainer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VehicleBody3D
This physics body implements all the physics logic needed to simulate a car. It is based on the raycast vehicle system commonly found in physics engines. Aside from a CollisionShape3D for the main body of the vehicle, you must also add a VehicleWheel3D node for each wheel. You should also add a MeshInstance3D to this node for the 3D model of the vehicle, but this model should generally not include meshes for the wheels. You can control the vehicle by using the Brake, EngineForce, and Steering properties. The position or orientation of this node shouldn't be changed directly.
Note: The origin point of your VehicleBody3D will determine the center of gravity of your vehicle. To make the vehicle more grounded, the origin point is usually kept low, moving the CollisionShape3D and MeshInstance3D upwards.
Note: This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you may have to write your own physics integration using CharacterBody3D or RigidBody3D.
- VehicleBody3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VehicleBody3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VehicleBody3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VehicleWheel3D
A node used as a child of a VehicleBody3D parent to simulate the behavior of one of its wheels. This node also acts as a collider to detect if the wheel is touching a surface.
Note: This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you may need to write your own physics integration using another PhysicsBody3D class.
- VehicleWheel3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VehicleWheel3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VehicleWheel3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VideoStream
Base resource type for all video streams. Classes that derive from VideoStream can all be used as resource types to play back videos in VideoStreamPlayer.
- VideoStream.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VideoStream.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VideoStream.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VideoStreamPlayback
This class is intended to be overridden by video decoder extensions with custom implementations of VideoStream.
- VideoStreamPlayback.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VideoStreamPlayback.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VideoStreamPlayback.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VideoStreamPlayer
A control used for playback of VideoStream resources.
Supported video formats are Ogg Theora (
.ogv
, VideoStreamTheora) and any format exposed via a GDExtension plugin.Warning: On Web, video playback will perform poorly due to missing architecture-specific assembly optimizations.
- VideoStreamPlayer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VideoStreamPlayer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VideoStreamPlayer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VideoStreamTheora
VideoStream resource handling the Ogg Theora video format with
.ogv
extension. The Theora codec is decoded on the CPU.Note: While Ogg Theora videos can also have an
.ogg
extension, you will have to rename the extension to.ogv
to use those videos within Godot.
- VideoStreamTheora.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VideoStreamTheora.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VideoStreamTheora.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Viewport
A Viewport creates a different view into the screen, or a sub-view inside another viewport. Child 2D nodes will display on it, and child Camera3D 3D nodes will render on it too.
Optionally, a viewport can have its own 2D or 3D world, so it doesn't share what it draws with other viewports.
Viewports can also choose to be audio listeners, so they generate positional audio depending on a 2D or 3D camera child of it.
Also, viewports can be assigned to different screens in case the devices have multiple screens.
Finally, viewports can also behave as render targets, in which case they will not be visible unless the associated texture is used to draw.
- Viewport.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Viewport.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Viewport.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ViewportTexture
Provides the content of a Viewport as a dynamic Texture2D. This can be used to mix controls, 2D game objects, and 3D game objects in the same scene.
To create a ViewportTexture in code, use the GetTexture() method on the target viewport.
Note: A ViewportTexture is always local to its scene (see ResourceLocalToScene). If the scene root is not ready, it may return incorrect data (see Ready).
- ViewportTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ViewportTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ViewportTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisibleOnScreenEnabler2D
VisibleOnScreenEnabler2D contains a rectangular region of 2D space and a target node. The target node will be automatically enabled (via its ProcessMode property) when any part of this region becomes visible on the screen, and automatically disabled otherwise. This can for example be used to activate enemies only when the player approaches them.
See VisibleOnScreenNotifier2D if you only want to be notified when the region is visible on screen.
Note: VisibleOnScreenEnabler2D uses the render culling code to determine whether it's visible on screen, so it won't function unless Visible is set to
true
.
- VisibleOnScreenEnabler2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisibleOnScreenEnabler2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisibleOnScreenEnabler2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisibleOnScreenEnabler3D
VisibleOnScreenEnabler3D contains a box-shaped region of 3D space and a target node. The target node will be automatically enabled (via its ProcessMode property) when any part of this region becomes visible on the screen, and automatically disabled otherwise. This can for example be used to activate enemies only when the player approaches them.
See VisibleOnScreenNotifier3D if you only want to be notified when the region is visible on screen.
Note: VisibleOnScreenEnabler3D uses an approximate heuristic that doesn't take walls and other occlusion into account, unless occlusion culling is used. It also won't function unless Visible is set to
true
.
- VisibleOnScreenEnabler3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisibleOnScreenEnabler3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisibleOnScreenEnabler3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisibleOnScreenNotifier2D
VisibleOnScreenEnabler2D represents a rectangular region of 2D space. When any part of this region becomes visible on screen or in a viewport, it will emit a ScreenEntered signal, and likewise it will emit a ScreenExited signal when no part of it remains visible.
If you want a node to be enabled automatically when this region is visible on screen, use VisibleOnScreenEnabler2D.
Note: VisibleOnScreenNotifier2D uses the render culling code to determine whether it's visible on screen, so it won't function unless Visible is set to
true
.
- VisibleOnScreenNotifier2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisibleOnScreenNotifier2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisibleOnScreenNotifier2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisibleOnScreenNotifier3D
VisibleOnScreenEnabler3D represents a box-shaped region of 3D space. When any part of this region becomes visible on screen or in a Camera3D's view, it will emit a ScreenEntered signal, and likewise it will emit a ScreenExited signal when no part of it remains visible.
If you want a node to be enabled automatically when this region is visible on screen, use VisibleOnScreenEnabler3D.
Note: VisibleOnScreenNotifier3D uses an approximate heuristic that doesn't take walls and other occlusion into account, unless occlusion culling is used. It also won't function unless Visible is set to
true
.
- VisibleOnScreenNotifier3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisibleOnScreenNotifier3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisibleOnScreenNotifier3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualInstance3D
The VisualInstance3D is used to connect a resource to a visual representation. All visual 3D nodes inherit from the VisualInstance3D. In general, you should not access the VisualInstance3D properties directly as they are accessed and managed by the nodes that inherit from VisualInstance3D. VisualInstance3D is the node representation of the RenderingServer instance.
- VisualInstance3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualInstance3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualInstance3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShader
This class provides a graph-like visual editor for creating a Shader. Although VisualShaders do not require coding, they share the same logic with script shaders. They use VisualShaderNodes that can be connected to each other to control the flow of the shader. The visual shader graph is converted to a script shader behind the scenes.
- VisualShader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNode
Visual shader graphs consist of various nodes. Each node in the graph is a separate object and they are represented as a rectangular boxes with title and a set of properties. Each node also has connection ports that allow to connect it to another nodes and control the flow of the shader.
- VisualShaderNode.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNode.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNode.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeBillboard
The output port of this node needs to be connected to
Model View Matrix
port of VisualShaderNodeOutput.
- VisualShaderNodeBillboard.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeBillboard.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeBillboard.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeBooleanConstant
Has only one output port and no inputs.
Translated to
bool
in the shader language.
- VisualShaderNodeBooleanConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeBooleanConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeBooleanConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeBooleanParameter
Translated to
uniform bool
in the shader language.
- VisualShaderNodeBooleanParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeBooleanParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeBooleanParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeClamp
Constrains a value to lie between
min
andmax
values.
- VisualShaderNodeClamp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeClamp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeClamp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeColorConstant
Has two output ports representing RGB and alpha channels of Color.
Translated to
vec3 rgb
andfloat alpha
in the shader language.
- VisualShaderNodeColorConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeColorConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeColorConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeColorFunc
Accept a Color to the input port and transform it according to Function.
- VisualShaderNodeColorFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeColorFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeColorFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeColorOp
Applies Operator to two color inputs.
- VisualShaderNodeColorOp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeColorOp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeColorOp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeColorParameter
Translated to
uniform vec4
in the shader language.
- VisualShaderNodeColorParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeColorParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeColorParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeComment
A resizable rectangular area with changeable Title and Description used for better organizing of other visual shader nodes.
- VisualShaderNodeComment.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeComment.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeComment.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeCompare
Compares
a
andb
of Type by Function. Returns a boolean scalar. Translates toif
instruction in shader code.
- VisualShaderNodeCompare.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeCompare.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeCompare.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeConstant
This is an abstract class. See the derived types for descriptions of the possible values.
- VisualShaderNodeConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeCubemap
Translated to
texture(cubemap, vec3)
in the shader language. Returns a color vector and alpha channel as scalar.
- VisualShaderNodeCubemap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeCubemap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeCubemap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeCubemapParameter
Translated to
uniform samplerCube
in the shader language. The output value can be used as port for VisualShaderNodeCubemap.
- VisualShaderNodeCubemapParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeCubemapParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeCubemapParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeCurveTexture
Comes with a built-in editor for texture's curves.
- VisualShaderNodeCurveTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeCurveTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeCurveTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeCurveXyzTexture
Comes with a built-in editor for texture's curves.
- VisualShaderNodeCurveXyzTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeCurveXyzTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeCurveXyzTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeCustom
By inheriting this class you can create a custom VisualShader script addon which will be automatically added to the Visual Shader Editor. The VisualShaderNode's behavior is defined by overriding the provided virtual methods.
In order for the node to be registered as an editor addon, you must use the
@tool
annotation and provide aclass_name
for your custom script. For example:@tool extends VisualShaderNodeCustom class_name VisualShaderNodeNoise
- VisualShaderNodeCustom.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeCustom.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeCustom.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeDerivativeFunc
This node is only available in
Fragment
andLight
visual shaders.
- VisualShaderNodeDerivativeFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeDerivativeFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeDerivativeFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeDeterminant
Translates to
determinant(x)
in the shader language.
- VisualShaderNodeDeterminant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeDeterminant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeDeterminant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeDistanceFade
The distance fade effect fades out each pixel based on its distance to another object.
- VisualShaderNodeDistanceFade.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeDistanceFade.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeDistanceFade.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeDotProduct
Translates to
dot(a, b)
in the shader language.
- VisualShaderNodeDotProduct.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeDotProduct.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeDotProduct.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeExpression
Custom Godot Shading Language expression, with a custom number of input and output ports.
The provided code is directly injected into the graph's matching shader function (
vertex
,fragment
, orlight
), so it cannot be used to declare functions, varyings, uniforms, or global constants. See VisualShaderNodeGlobalExpression for such global definitions.
- VisualShaderNodeExpression.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeExpression.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeExpression.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeFaceForward
Translates to
faceforward(N, I, Nref)
in the shader language. The function has three vector parameters:N
, the vector to orient,I
, the incident vector, andNref
, the reference vector. If the dot product ofI
andNref
is smaller than zero the return value isN
. Otherwise,-N
is returned.
- VisualShaderNodeFaceForward.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeFaceForward.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeFaceForward.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeFloatConstant
Translated to
float
in the shader language.
- VisualShaderNodeFloatConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeFloatConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeFloatConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeFloatFunc
Accept a floating-point scalar (
x
) to the input port and transform it according to Function.
- VisualShaderNodeFloatFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeFloatFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeFloatFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeFloatOp
Applies Operator to two floating-point inputs:
a
andb
.
- VisualShaderNodeFloatOp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeFloatOp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeFloatOp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeFloatParameter
Translated to
uniform float
in the shader language.
- VisualShaderNodeFloatParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeFloatParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeFloatParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeFresnel
Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it).
- VisualShaderNodeFresnel.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeFresnel.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeFresnel.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeGlobalExpression
Custom Godot Shader Language expression, which is placed on top of the generated shader. You can place various function definitions inside to call later in VisualShaderNodeExpressions (which are injected in the main shader functions). You can also declare varyings, uniforms and global constants.
- VisualShaderNodeGlobalExpression.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeGlobalExpression.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeGlobalExpression.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeGroupBase
Currently, has no direct usage, use the derived classes instead.
- VisualShaderNodeGroupBase.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeGroupBase.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeGroupBase.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeIf
This visual shader node has six input ports. Port 1 and 2 provide the two floating point numbers
a
andb
that will be compared. Port 3 is the tolerance, which allows similar floating point number to be considered equal. Ports 4 to 6 are the possible outputs, returned ifa == b
,a > b
, ora < b
respectively.
- VisualShaderNodeIf.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeIf.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeIf.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeInput
Gives access to input variables (built-ins) available for the shader. See the shading reference for the list of available built-ins for each shader type (check
Tutorials
section for link).
- VisualShaderNodeInput.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeInput.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeInput.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeIntConstant
Translated to
int
in the shader language.
- VisualShaderNodeIntConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeIntConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeIntConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeIntFunc
Accept an integer scalar (
x
) to the input port and transform it according to Function.
- VisualShaderNodeIntFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeIntFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeIntFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeIntOp
Applies Operator to two integer inputs:
a
andb
.
- VisualShaderNodeIntOp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeIntOp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeIntOp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeIntParameter
A VisualShaderNodeParameter of type int. Offers additional customization for range of accepted values.
- VisualShaderNodeIntParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeIntParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeIntParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeIs
Returns the boolean result of the comparison between
INF
orNaN
and a scalar parameter.
- VisualShaderNodeIs.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeIs.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeIs.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeLinearSceneDepth
This node can be used in fragment shaders.
- VisualShaderNodeLinearSceneDepth.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeLinearSceneDepth.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeLinearSceneDepth.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeMix
Translates to
mix(a, b, weight)
in the shader language.
- VisualShaderNodeMix.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeMix.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeMix.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeMultiplyAdd
Uses three operands to compute
(a * b + c)
expression.
- VisualShaderNodeMultiplyAdd.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeMultiplyAdd.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeMultiplyAdd.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeOuterProduct
OuterProduct
treats the first parameterc
as a column vector (matrix with one column) and the second parameterr
as a row vector (matrix with one row) and does a linear algebraic matrix multiplyc * r
, yielding a matrix whose number of rows is the number of components inc
and whose number of columns is the number of components inr
.
- VisualShaderNodeOuterProduct.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeOuterProduct.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeOuterProduct.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeOutput
This visual shader node is present in all shader graphs in form of "Output" block with multiple output value ports.
- VisualShaderNodeOutput.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeOutput.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeOutput.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParameter
A parameter represents a variable in the shader which is set externally, i.e. from the ShaderMaterial. Parameters are exposed as properties in the ShaderMaterial and can be assigned from the Inspector or from a script.
- VisualShaderNodeParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParameterRef
Creating a reference to a VisualShaderNodeParameter allows you to reuse this parameter in different shaders or shader stages easily.
- VisualShaderNodeParameterRef.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParameterRef.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParameterRef.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleAccelerator
Particle accelerator can be used in "process" step of particle shader. It will accelerate the particles. Connect it to the Velocity output port.
- VisualShaderNodeParticleAccelerator.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleAccelerator.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleAccelerator.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleBoxEmitter
VisualShaderNodeParticleEmitter that makes the particles emitted in box shape with the specified extents.
- VisualShaderNodeParticleBoxEmitter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleBoxEmitter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleBoxEmitter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleConeVelocity
This node can be used in "start" step of particle shader. It defines the initial velocity of the particles, making them move in cone shape starting from the center, with a given spread.
- VisualShaderNodeParticleConeVelocity.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleConeVelocity.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleConeVelocity.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleEmit
This node internally calls
emit_subparticle
shader method. It will emit a particle from the configured sub-emitter and also allows to customize how its emitted. Requires a sub-emitter assigned to the particles node with this shader.
- VisualShaderNodeParticleEmit.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleEmit.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleEmit.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleEmitter
Particle emitter nodes can be used in "start" step of particle shaders and they define the starting position of the particles. Connect them to the Position output port.
- VisualShaderNodeParticleEmitter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleEmitter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleEmitter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleMeshEmitter
VisualShaderNodeParticleEmitter that makes the particles emitted in a shape of the assigned Mesh. It will emit from the mesh's surfaces, either all or only the specified one.
- VisualShaderNodeParticleMeshEmitter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleMeshEmitter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleMeshEmitter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleMultiplyByAxisAngle
This node helps to multiply a position input vector by rotation using specific axis. Intended to work with emitters.
- VisualShaderNodeParticleMultiplyByAxisAngle.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleMultiplyByAxisAngle.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleMultiplyByAxisAngle.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleOutput
This node defines how particles are emitted. It allows to customize e.g. position and velocity. Available ports are different depending on which function this node is inside (start, process, collision) and whether custom data is enabled.
- VisualShaderNodeParticleOutput.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleOutput.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleOutput.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleRandomness
Randomness node will output pseudo-random values of the given type based on the specified minimum and maximum values.
- VisualShaderNodeParticleRandomness.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleRandomness.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleRandomness.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleRingEmitter
VisualShaderNodeParticleEmitter that makes the particles emitted in ring shape with the specified inner and outer radii and height.
- VisualShaderNodeParticleRingEmitter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleRingEmitter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleRingEmitter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeParticleSphereEmitter
VisualShaderNodeParticleEmitter that makes the particles emitted in sphere shape with the specified inner and outer radii.
- VisualShaderNodeParticleSphereEmitter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeParticleSphereEmitter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeParticleSphereEmitter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeProximityFade
The proximity fade effect fades out each pixel based on its distance to another object.
- VisualShaderNodeProximityFade.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeProximityFade.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeProximityFade.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeRandomRange
Random range node will output a pseudo-random scalar value in the specified range, based on the seed. The value is always the same for the given seed and range, so you should provide a changing input, e.g. by using time.
- VisualShaderNodeRandomRange.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeRandomRange.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeRandomRange.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeRemap
Remap will transform the input range into output range, e.g. you can change a
0..1
value to-2..2
etc. See@GlobalScope.remap
for more details.
- VisualShaderNodeRemap.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeRemap.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeRemap.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeResizableBase
Resizable nodes have a handle that allows the user to adjust their size as needed.
- VisualShaderNodeResizableBase.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeResizableBase.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeResizableBase.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeRotationByAxis
RotationByAxis node will transform the vertices of a mesh with specified axis and angle in radians. It can be used to rotate an object in an arbitrary axis.
- VisualShaderNodeRotationByAxis.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeRotationByAxis.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeRotationByAxis.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeSample3D
A virtual class, use the descendants instead.
- VisualShaderNodeSample3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeSample3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeSample3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeScreenNormalWorldSpace
The ScreenNormalWorldSpace node allows to create outline effects.
- VisualShaderNodeScreenNormalWorldSpace.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeScreenNormalWorldSpace.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeScreenNormalWorldSpace.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeScreenUVToSdf
Translates to
screen_uv_to_sdf(uv)
in the shader language. If the UV port isn't connected,SCREEN_UV
is used instead.
- VisualShaderNodeScreenUVToSdf.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeScreenUVToSdf.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeScreenUVToSdf.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeSdfRaymarch
Casts a ray against the screen SDF (signed-distance field) and returns the distance travelled.
- VisualShaderNodeSdfRaymarch.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeSdfRaymarch.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeSdfRaymarch.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeSdfToScreenUV
Translates to
sdf_to_screen_uv(sdf_pos)
in the shader language.
- VisualShaderNodeSdfToScreenUV.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeSdfToScreenUV.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeSdfToScreenUV.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeSmoothStep
Translates to
smoothstep(edge0, edge1, x)
in the shader language.Returns
0.0
ifx
is smaller thanedge0
and1.0
ifx
is larger thanedge1
. Otherwise, the return value is interpolated between0.0
and1.0
using Hermite polynomials.
- VisualShaderNodeSmoothStep.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeSmoothStep.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeSmoothStep.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeStep
Translates to
step(edge, x)
in the shader language.Returns
0.0
ifx
is smaller thanedge
and1.0
otherwise.
- VisualShaderNodeStep.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeStep.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeStep.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeSwitch
Returns an associated value of the OpType type if the provided boolean value is
true
orfalse
.
- VisualShaderNodeSwitch.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeSwitch.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeSwitch.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTexture
Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from.
- VisualShaderNodeTexture.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTexture.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTexture.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTexture2DArray
Translated to
uniform sampler2DArray
in the shader language.
- VisualShaderNodeTexture2DArray.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTexture2DArray.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTexture2DArray.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTexture2DArrayParameter
This parameter allows to provide a collection of textures for the shader. You can use VisualShaderNodeTexture2DArray to extract the textures from array.
- VisualShaderNodeTexture2DArrayParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTexture2DArrayParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTexture2DArrayParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTexture2DParameter
Translated to
uniform sampler2D
in the shader language.
- VisualShaderNodeTexture2DParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTexture2DParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTexture2DParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTexture3D
Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from.
- VisualShaderNodeTexture3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTexture3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTexture3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTexture3DParameter
Translated to
uniform sampler3D
in the shader language.
- VisualShaderNodeTexture3DParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTexture3DParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTexture3DParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTextureParameter
Performs a lookup operation on the texture provided as a uniform for the shader.
- VisualShaderNodeTextureParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTextureParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTextureParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTextureParameterTriplanar
Performs a lookup operation on the texture provided as a uniform for the shader, with support for triplanar mapping.
- VisualShaderNodeTextureParameterTriplanar.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTextureParameterTriplanar.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTextureParameterTriplanar.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTextureSdf
Translates to
texture_sdf(sdf_pos)
in the shader language.
- VisualShaderNodeTextureSdf.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTextureSdf.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTextureSdf.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTextureSdfNormal
Translates to
texture_sdf_normal(sdf_pos)
in the shader language.
- VisualShaderNodeTextureSdfNormal.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTextureSdfNormal.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTextureSdfNormal.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformCompose
Creates a 4x4 transform matrix using four vectors of type
vec3
. Each vector is one row in the matrix and the last column is avec4(0, 0, 0, 1)
.
- VisualShaderNodeTransformCompose.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformCompose.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformCompose.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformConstant
A constant Transform3D, which can be used as an input node.
- VisualShaderNodeTransformConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformDecompose
Takes a 4x4 transform matrix and decomposes it into four
vec3
values, one from each row of the matrix.
- VisualShaderNodeTransformDecompose.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformDecompose.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformDecompose.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformFunc
Computes an inverse or transpose function on the provided Transform3D.
- VisualShaderNodeTransformFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformOp
Applies Operator to two transform (4x4 matrices) inputs.
- VisualShaderNodeTransformOp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformOp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformOp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformParameter
Translated to
uniform mat4
in the shader language.
- VisualShaderNodeTransformParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeTransformVecMult
A multiplication operation on a transform (4x4 matrix) and a vector, with support for different multiplication operators.
- VisualShaderNodeTransformVecMult.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeTransformVecMult.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeTransformVecMult.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeUIntConstant
Translated to
uint
in the shader language.
- VisualShaderNodeUIntConstant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeUIntConstant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeUIntConstant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeUIntFunc
Accept an unsigned integer scalar (
x
) to the input port and transform it according to Function.
- VisualShaderNodeUIntFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeUIntFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeUIntFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeUIntOp
Applies Operator to two unsigned integer inputs:
a
andb
.
- VisualShaderNodeUIntOp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeUIntOp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeUIntOp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeUIntParameter
A VisualShaderNodeParameter of type unsigned int. Offers additional customization for range of accepted values.
- VisualShaderNodeUIntParameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeUIntParameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeUIntParameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeUVFunc
UV functions are similar to Vector2 functions, but the input port of this node uses the shader's UV value by default.
- VisualShaderNodeUVFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeUVFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeUVFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeUVPolarCoord
UV polar coord node will transform UV values into polar coordinates, with specified scale, zoom strength and repeat parameters. It can be used to create various swirl distortions.
- VisualShaderNodeUVPolarCoord.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeUVPolarCoord.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeUVPolarCoord.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVarying
Varying values are shader variables that can be passed between shader functions, e.g. from Vertex shader to Fragment shader.
- VisualShaderNodeVarying.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVarying.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVarying.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVaryingGetter
Outputs a value of a varying defined in the shader. You need to first create a varying that can be used in the given function, e.g. varying getter in Fragment shader requires a varying with mode set to VertexToFragLight.
- VisualShaderNodeVaryingGetter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVaryingGetter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVaryingGetter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVaryingSetter
Inputs a value to a varying defined in the shader. You need to first create a varying that can be used in the given function, e.g. varying setter in Fragment shader requires a varying with mode set to FragToLight.
- VisualShaderNodeVaryingSetter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVaryingSetter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVaryingSetter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVec2Constant
A constant Vector2, which can be used as an input node.
- VisualShaderNodeVec2Constant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVec2Constant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVec2Constant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVec2Parameter
Translated to
uniform vec2
in the shader language.
- VisualShaderNodeVec2Parameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVec2Parameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVec2Parameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVec3Constant
A constant Vector3, which can be used as an input node.
- VisualShaderNodeVec3Constant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVec3Constant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVec3Constant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVec3Parameter
Translated to
uniform vec3
in the shader language.
- VisualShaderNodeVec3Parameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVec3Parameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVec3Parameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVec4Constant
A constant 4D vector, which can be used as an input node.
- VisualShaderNodeVec4Constant.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVec4Constant.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVec4Constant.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVec4Parameter
Translated to
uniform vec4
in the shader language.
- VisualShaderNodeVec4Parameter.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVec4Parameter.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVec4Parameter.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorBase
This is an abstract class. See the derived types for descriptions of the possible operations.
- VisualShaderNodeVectorBase.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorBase.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorBase.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorCompose
Creates a
vec2
,vec3
orvec4
using scalar values that can be provided from separate inputs.
- VisualShaderNodeVectorCompose.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorCompose.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorCompose.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorDecompose
Takes a
vec2
,vec3
orvec4
and decomposes it into scalar values that can be used as separate outputs.
- VisualShaderNodeVectorDecompose.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorDecompose.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorDecompose.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorDistance
Calculates distance from point represented by vector
p0
to vectorp1
.Translated to
distance(p0, p1)
in the shader language.
- VisualShaderNodeVectorDistance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorDistance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorDistance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorFunc
A visual shader node able to perform different functions using vectors.
- VisualShaderNodeVectorFunc.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorFunc.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorFunc.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorLen
Translated to
length(p0)
in the shader language.
- VisualShaderNodeVectorLen.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorLen.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorLen.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorOp
A visual shader node for use of vector operators. Operates on vector
a
and vectorb
.
- VisualShaderNodeVectorOp.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorOp.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorOp.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeVectorRefract
Translated to
refract(I, N, eta)
in the shader language, whereI
is the incident vector,N
is the normal vector andeta
is the ratio of the indices of the refraction.
- VisualShaderNodeVectorRefract.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeVectorRefract.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeVectorRefract.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VisualShaderNodeWorldPositionFromDepth
The WorldPositionFromDepth node reconstructs the depth position of the pixel in world space. This can be used to obtain world space UVs for projection mapping like Caustics.
- VisualShaderNodeWorldPositionFromDepth.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VisualShaderNodeWorldPositionFromDepth.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VisualShaderNodeWorldPositionFromDepth.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VoxelGI
VoxelGIs are used to provide high-quality real-time indirect light and reflections to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. VoxelGIs need to be baked before having a visible effect. However, once baked, dynamic objects will receive light from them. Furthermore, lights can be fully dynamic or baked.
Note: VoxelGI is only supported in the Forward+ rendering method, not Mobile or Compatibility.
Procedural generation: VoxelGI can be baked in an exported project, which makes it suitable for procedurally generated or user-built levels as long as all the geometry is generated in advance. For games where geometry is generated at any time during gameplay, SDFGI is more suitable (see SdfgiEnabled).
Performance: VoxelGI is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider LightmapGI instead). To improve performance, adjust
ProjectSettings.rendering/global_illumination/voxel_gi/quality
and enableProjectSettings.rendering/global_illumination/gi/use_half_resolution
in the Project Settings. To provide a fallback for low-end hardware, consider adding an option to disable VoxelGI in your project's options menus. A VoxelGI node can be disabled by hiding it.Note: Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. To further prevent light leaks, you can also strategically place temporary MeshInstance3D nodes with their GIMode set to Static. These temporary nodes can then be hidden after baking the VoxelGI node.
- VoxelGI.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VoxelGI.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VoxelGI.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- VoxelGIData
VoxelGIData contains baked voxel global illumination for use in a VoxelGI node. VoxelGIData also offers several properties to adjust the final appearance of the global illumination. These properties can be adjusted at run-time without having to bake the VoxelGI node again.
Note: To prevent text-based scene files (
.tscn
) from growing too much and becoming slow to load and save, always save VoxelGIData to an external binary resource file (.res
) instead of embedding it within the scene. This can be done by clicking the dropdown arrow next to the VoxelGIData resource, choosing Edit, clicking the floppy disk icon at the top of the Inspector then choosing Save As....
- VoxelGIData.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- VoxelGIData.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- VoxelGIData.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WeakRef
A weakref can hold a RefCounted without contributing to the reference counter. A weakref can be created from an GodotObject using
@GlobalScope.weakref
. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released.
- WeakRef.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WeakRef.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WeakRef.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebRtcDataChannel.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebRtcDataChannel.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebRtcDataChannel.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebRtcDataChannelExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebRtcDataChannelExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebRtcDataChannelExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebRtcMultiplayerPeer
This class constructs a full mesh of WebRtcPeerConnection (one connection for each peer) that can be used as a MultiplayerPeer.
You can add each WebRtcPeerConnection via AddPeer(WebRtcPeerConnection, int, int) or remove them via RemovePeer(int). Peers must be added in New state to allow it to create the appropriate channels. This class will not create offers nor set descriptions, it will only poll them, and notify connections and disconnections.
When creating the peer via CreateClient(int, Array) or CreateServer(Array) the IsServerRelaySupported() method will return
true
enabling peer exchange and packet relaying when supported by the MultiplayerApi implementation.Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- WebRtcMultiplayerPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebRtcMultiplayerPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebRtcMultiplayerPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebRtcPeerConnection
A WebRTC connection between the local computer and a remote peer. Provides an interface to connect, maintain and monitor the connection.
Setting up a WebRTC connection between two peers may not seem a trivial task, but it can be broken down into 3 main steps:
- The peer that wants to initiate the connection (
A
from now on) creates an offer and send it to the other peer (B
from now on).-
B
receives the offer, generate and answer, and sends it toA
).-
A
andB
then generates and exchange ICE candidates with each other.After these steps, the connection should become connected. Keep on reading or look into the tutorial for more information.
- WebRtcPeerConnection.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebRtcPeerConnection.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebRtcPeerConnection.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebRtcPeerConnectionExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebRtcPeerConnectionExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebRtcPeerConnectionExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebSocketMultiplayerPeer
Base class for WebSocket server and client, allowing them to be used as multiplayer peer for the MultiplayerApi.
Note: When exporting to Android, make sure to enable the
INTERNET
permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.
- WebSocketMultiplayerPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebSocketMultiplayerPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebSocketMultiplayerPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebSocketPeer
This class represents WebSocket connection, and can be used as a WebSocket client (RFC 6455-compliant) or as a remote peer of a WebSocket server.
You can send WebSocket binary frames using PutPacket(byte[]), and WebSocket text frames using Send(byte[], WriteMode) (prefer text frames when interacting with text-based API). You can check the frame type of the last packet via WasStringPacket().
To start a WebSocket client, first call ConnectToUrl(string, TlsOptions), then regularly call Poll() (e.g. during Node process). You can query the socket state via GetReadyState(), get the number of pending packets using GetAvailablePacketCount(), and retrieve them via GetPacket().
To use the peer as part of a WebSocket server refer to AcceptStream(StreamPeer) and the online tutorial.
- WebSocketPeer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebSocketPeer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebSocketPeer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WebXRInterface
WebXR is an open standard that allows creating VR and AR applications that run in the web browser.
As such, this interface is only available when running in Web exports.
WebXR supports a wide range of devices, from the very capable (like Valve Index, HTC Vive, Oculus Rift and Quest) down to the much less capable (like Google Cardboard, Oculus Go, GearVR, or plain smartphones).
Since WebXR is based on JavaScript, it makes extensive use of callbacks, which means that WebXRInterface is forced to use signals, where other XR interfaces would instead use functions that return a result immediately. This makes WebXRInterface quite a bit more complicated to initialize than other XR interfaces.
Here's the minimum code required to start an immersive VR session:
extends Node3D
var webxr_interface var vr_supported = false
func _ready(): # We assume this node has a button as a child. # This button is for the user to consent to entering immersive VR mode. $Button.pressed.connect(self._on_button_pressed)
webxr_interface = XRServer.find_interface("WebXR") if webxr_interface: # WebXR uses a lot of asynchronous callbacks, so we connect to various # signals in order to receive them. webxr_interface.session_supported.connect(self._webxr_session_supported) webxr_interface.session_started.connect(self._webxr_session_started) webxr_interface.session_ended.connect(self._webxr_session_ended) webxr_interface.session_failed.connect(self._webxr_session_failed) # This returns immediately - our _webxr_session_supported() method # (which we connected to the "session_supported" signal above) will # be called sometime later to let us know if it's supported or not. webxr_interface.is_session_supported("immersive-vr")
func _webxr_session_supported(session_mode, supported): if session_mode == 'immersive-vr': vr_supported = supported
func _on_button_pressed(): if not vr_supported: OS.alert("Your browser doesn't support VR") return
# We want an immersive VR session, as opposed to AR ('immersive-ar') or a # simple 3DoF viewer ('viewer'). webxr_interface.session_mode = 'immersive-vr' # 'bounded-floor' is room scale, 'local-floor' is a standing or sitting # experience (it puts you 1.6m above the ground if you have 3DoF headset), # whereas as 'local' puts you down at the XROrigin. # This list means it'll first try to request 'bounded-floor', then # fallback on 'local-floor' and ultimately 'local', if nothing else is # supported. webxr_interface.requested_reference_space_types = 'bounded-floor, local-floor, local' # In order to use 'local-floor' or 'bounded-floor' we must also # mark the features as required or optional. webxr_interface.required_features = 'local-floor' webxr_interface.optional_features = 'bounded-floor' # This will return false if we're unable to even request the session, # however, it can still fail asynchronously later in the process, so we # only know if it's really succeeded or failed when our # _webxr_session_started() or _webxr_session_failed() methods are called. if not webxr_interface.initialize(): OS.alert("Failed to initialize") return
func _webxr_session_started(): $Button.visible = false # This tells Godot to start rendering to the headset. get_viewport().use_xr = true # This will be the reference space type you ultimately got, out of the # types that you requested above. This is useful if you want the game to # work a little differently in 'bounded-floor' versus 'local-floor'. print ("Reference space type: " + webxr_interface.reference_space_type)
func _webxr_session_ended(): $Button.visible = true # If the user exits immersive mode, then we tell Godot to render to the web # page again. get_viewport().use_xr = false
func _webxr_session_failed(message): OS.alert("Failed to initialize: " + message)
There are a couple ways to handle "controller" input:
- Using XRController3D nodes and their ButtonPressed and ButtonReleased signals. This is how controllers are typically handled in XR apps in Godot, however, this will only work with advanced VR controllers like the Oculus Touch or Index controllers, for example.
- Using the Select, Squeeze and related signals. This method will work for both advanced VR controllers, and non-traditional input sources like a tap on the screen, a spoken voice command or a button press on the device itself.
You can use both methods to allow your game or app to support a wider or narrower set of devices and input methods, or to allow more advanced interactions with more advanced devices.
- WebXRInterface.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WebXRInterface.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WebXRInterface.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- Window
A node that creates a window. The window can either be a native system window or embedded inside another Window (see GuiEmbedSubwindows).
At runtime, Windows will not close automatically when requested. You need to handle it manually using the CloseRequested signal (this applies both to pressing the close button and clicking outside of a popup).
- Window.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- Window.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- Window.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WorkerThreadPool
The WorkerThreadPool singleton allocates a set of GodotThreads (called worker threads) on project startup and provides methods for offloading tasks to them. This can be used for simple multithreading without having to create GodotThreads.
Tasks hold the Callable to be run by the threads. WorkerThreadPool can be used to create regular tasks, which will be taken by one worker thread, or group tasks, which can be distributed between multiple worker threads. Group tasks execute the Callable multiple times, which makes them useful for iterating over a lot of elements, such as the enemies in an arena.
Here's a sample on how to offload an expensive function to worker threads:
private List<Node> _enemies = new List<Node>(); // A list to be filled with enemies.
private void ProcessEnemyAI(int enemyIndex) { Node processedEnemy = _enemies[enemyIndex]; // Expensive logic here. }
public override void _Process(double delta) { long taskId = WorkerThreadPool.AddGroupTask(Callable.From<int>(ProcessEnemyAI), _enemies.Count); // Other code... WorkerThreadPool.WaitForGroupTaskCompletion(taskId); // Other code that depends on the enemy AI already being processed. }
The above code relies on the number of elements in the
enemies
array remaining constant during the multithreaded part.Note: Using this singleton could affect performance negatively if the task being distributed between threads is not computationally expensive.
- WorkerThreadPool.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WorkerThreadPool.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WorkerThreadPool.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WorkerThreadPoolInstance
The WorkerThreadPool singleton allocates a set of GodotThreads (called worker threads) on project startup and provides methods for offloading tasks to them. This can be used for simple multithreading without having to create GodotThreads.
Tasks hold the Callable to be run by the threads. WorkerThreadPool can be used to create regular tasks, which will be taken by one worker thread, or group tasks, which can be distributed between multiple worker threads. Group tasks execute the Callable multiple times, which makes them useful for iterating over a lot of elements, such as the enemies in an arena.
Here's a sample on how to offload an expensive function to worker threads:
private List<Node> _enemies = new List<Node>(); // A list to be filled with enemies.
private void ProcessEnemyAI(int enemyIndex) { Node processedEnemy = _enemies[enemyIndex]; // Expensive logic here. }
public override void _Process(double delta) { long taskId = WorkerThreadPool.AddGroupTask(Callable.From<int>(ProcessEnemyAI), _enemies.Count); // Other code... WorkerThreadPool.WaitForGroupTaskCompletion(taskId); // Other code that depends on the enemy AI already being processed. }
The above code relies on the number of elements in the
enemies
array remaining constant during the multithreaded part.Note: Using this singleton could affect performance negatively if the task being distributed between threads is not computationally expensive.
- WorkerThreadPoolInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WorkerThreadPoolInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WorkerThreadPoolInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- World2D
Class that has everything pertaining to a 2D world: A physics space, a canvas, and a sound space. 2D nodes register their resources into the current 2D world.
- World2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- World2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- World2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- World3D
Class that has everything pertaining to a world: A physics space, a visual scenario, and a sound space. 3D nodes register their resources into the current 3D world.
- World3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- World3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- World3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WorldBoundaryShape2D
A 2D world boundary shape, intended for use in physics. WorldBoundaryShape2D works like an infinite straight line that forces all physics bodies to stay above it. The line's normal determines which direction is considered as "above" and in the editor, the smaller line over it represents this direction. It can for example be used for endless flat floors.
- WorldBoundaryShape2D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WorldBoundaryShape2D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WorldBoundaryShape2D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WorldBoundaryShape3D
A 3D world boundary shape, intended for use in physics. WorldBoundaryShape3D works like an infinite plane that forces all physics bodies to stay above it. The Plane's normal determines which direction is considered as "above" and in the editor, the line over the plane represents this direction. It can for example be used for endless flat floors.
- WorldBoundaryShape3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WorldBoundaryShape3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WorldBoundaryShape3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- WorldEnvironment
The WorldEnvironment node is used to configure the default Environment for the scene.
The parameters defined in the WorldEnvironment can be overridden by an Environment node set on the current Camera3D. Additionally, only one WorldEnvironment may be instantiated in a given scene at a time.
The WorldEnvironment allows the user to specify default lighting parameters (e.g. ambient lighting), various post-processing effects (e.g. SSAO, DOF, Tonemapping), and how to draw the background (e.g. solid color, skybox). Usually, these are added in order to improve the realism/color balance of the scene.
- WorldEnvironment.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- WorldEnvironment.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- WorldEnvironment.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- X509Certificate
The X509Certificate class represents an X509 certificate. Certificates can be loaded and saved like any other Resource.
They can be used as the server certificate in AcceptStream(StreamPeer, TlsOptions) (along with the proper CryptoKey), and to specify the only certificate that should be accepted when connecting to a TLS server via ConnectToStream(StreamPeer, string, TlsOptions).
- X509Certificate.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- X509Certificate.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- X509Certificate.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRAnchor3D
The XRAnchor3D point is a spatial node that maps a real world location identified by the AR platform to a position within the game world. For example, as long as plane detection in ARKit is on, ARKit will identify and update the position of planes (tables, floors, etc) and create anchors for them.
This node is mapped to one of the anchors through its unique ID. When you receive a signal that a new anchor is available, you should add this node to your scene for that anchor. You can predefine nodes and set the ID; the nodes will simply remain on 0,0,0 until a plane is recognized.
Keep in mind that, as long as plane detection is enabled, the size, placing and orientation of an anchor will be updated as the detection logic learns more about the real world out there especially if only part of the surface is in view.
- XRAnchor3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRAnchor3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRAnchor3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRCamera3D
This is a helper spatial node for our camera; note that, if stereoscopic rendering is applicable (VR-HMD), most of the camera properties are ignored, as the HMD information overrides them. The only properties that can be trusted are the near and far planes.
The position and orientation of this node is automatically updated by the XR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the XR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the XRCamera3D can lag a few milliseconds behind what is used for rendering as a result.
- XRCamera3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRCamera3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRCamera3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRController3D
This is a helper spatial node that is linked to the tracking of controllers. It also offers several handy passthroughs to the state of buttons and such on the controllers.
Controllers are linked by their ID. You can create controller nodes before the controllers are available. If your game always uses two controllers (one for each hand), you can predefine the controllers with ID 1 and 2; they will become active as soon as the controllers are identified. If you expect additional controllers to be used, you should react to the signals and add XRController3D nodes to your scene.
The position of the controller node is automatically updated by the XRServer. This makes this node ideal to add child nodes to visualize the controller.
As many XR runtimes now use a configurable action map all inputs are named.
- XRController3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRController3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRController3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRInterface
This class needs to be implemented to make an AR or VR platform available to Godot and these should be implemented as C++ modules or GDExtension modules. Part of the interface is exposed to GDScript so you can detect, enable and configure an AR or VR platform.
Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through XRServer.
- XRInterface.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRInterface.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRInterface.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRInterfaceExtension
External XR interface plugins should inherit from this class.
- XRInterfaceExtension.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRInterfaceExtension.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRInterfaceExtension.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRNode3D
This node can be bound to a specific pose of a XRPositionalTracker and will automatically have its Transform updated by the XRServer. Nodes of this type must be added as children of the XROrigin3D node.
- XRNode3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRNode3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRNode3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XROrigin3D
This is a special node within the AR/VR system that maps the physical location of the center of our tracking space to the virtual location within our game world.
Multiple origin points can be added to the scene tree, but only one can used at a time. All the XRCamera3D, XRController3D, and XRAnchor3D nodes should be direct children of this node for spatial tracking to work correctly.
It is the position of this node that you update when your character needs to move through your game world while we're not moving in the real world. Movement in the real world is always in relation to this origin point.
For example, if your character is driving a car, the XROrigin3D node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
- XROrigin3D.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XROrigin3D.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XROrigin3D.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRPose
XR runtimes often identify multiple locations on devices such as controllers that are spatially tracked.
Orientation, location, linear velocity and angular velocity are all provided for each pose by the XR runtime. This object contains this state of a pose.
- XRPose.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRPose.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRPose.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRPositionalTracker
An instance of this object represents a device that is tracked, such as a controller or anchor point. HMDs aren't represented here as they are handled internally.
As controllers are turned on and the XRInterface detects them, instances of this object are automatically added to this list of active tracking objects accessible through the XRServer.
The XRController3D and XRAnchor3D both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDExtension-based interfaces can interact with them.
- XRPositionalTracker.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRPositionalTracker.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRPositionalTracker.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRServer
The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
- XRServer.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRServer.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRServer.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XRServerInstance
The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
- XRServerInstance.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XRServerInstance.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XRServerInstance.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- XmlParser
Provides a low-level interface for creating parsers for XML files. This class can serve as base to make custom XML parsers.
To parse XML, you must open a file with the Open(string) method or a buffer with the OpenBuffer(byte[]) method. Then, the Read() method must be called to parse the next nodes. Most of the methods take into consideration the currently parsed node.
Here is an example of using XmlParser to parse a SVG file (which is based on XML), printing each element and its attributes as a dictionary:
var parser = new XmlParser(); parser.Open("path/to/file.svg"); while (parser.Read() != Error.FileEof) { if (parser.GetNodeType() == XmlParser.NodeType.Element) { var nodeName = parser.GetNodeName(); var attributesDict = new Godot.Collections.Dictionary(); for (int idx = 0; idx < parser.GetAttributeCount(); idx++) { attributesDict[parser.GetAttributeName(idx)] = parser.GetAttributeValue(idx); } GD.Print($"The {nodeName} element has the following attributes: {attributesDict}"); } }
- XmlParser.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- XmlParser.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- XmlParser.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ZipPacker
This class implements a writer that allows storing the multiple blobs in a zip archive.
func write_zip_file(): var writer := ZIPPacker.new() var err := writer.open("user://archive.zip") if err != OK: return err writer.start_file("hello.txt") writer.write_file("Hello World".to_utf8_buffer()) writer.close_file()
writer.close() return OK</code></pre>
- ZipPacker.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ZipPacker.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ZipPacker.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
- ZipReader
This class implements a reader that can extract the content of individual files inside a zip archive.
func read_zip_file(): var reader := ZIPReader.new() var err := reader.open("user://archive.zip") if err != OK: return PackedByteArray() var res := reader.read_file("hello.txt") reader.close() return res
- ZipReader.MethodName
Cached StringNames for the methods contained in this class, for fast lookup.
- ZipReader.PropertyName
Cached StringNames for the properties and fields contained in this class, for fast lookup.
- ZipReader.SignalName
Cached StringNames for the signals contained in this class, for fast lookup.
Structs
- Aabb
Axis-Aligned Bounding Box. AABB consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
- Basis
3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a Transform.
Contains 3 vector fields X, Y and Z as its columns, which are typically interpreted as the local basis vectors of a 3D transformation. For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S).
Can also be accessed as array of 3D vectors. These vectors are normally orthogonal to each other, but are not necessarily normalized (due to scaling).
For more information, read this documentation article: https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html
- Callable
Callable is a first class object which can be held in variables and passed to functions. It represents a given method in an Object, and is typically used for signal callbacks.
- Color
A color represented by red, green, blue, and alpha (RGBA) components. The alpha component is often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as Modulate) may accept values greater than 1 (overbright or HDR colors).
If you want to supply values in a range of 0 to 255, you should use Color8(byte, byte, byte, byte) and the
r8
/g8
/b8
/a8
properties.
- Plane
Plane represents a normalized plane equation. "Over" or "Above" the plane is considered the side of the plane towards where the normal is pointing.
- Projection
A 4x4 matrix used for 3D projective transformations. It can represent transformations such as translation, rotation, scaling, shearing, and perspective division. It consists of four Vector4 columns. For purely linear transformations (translation, rotation, and scale), it is recommended to use Transform3D, as it is more performant and has a lower memory footprint. Used internally as Camera3D's projection matrix.
- Quaternion
A unit quaternion used for representing 3D rotations. Quaternions need to be normalized to be used for rotation.
It is similar to Basis, which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. Basis stores rotation, scale, and shearing, while Quaternion only stores rotation.
Due to its compactness and the way it is stored in memory, certain operations (obtaining axis-angle and performing SLERP, in particular) are more efficient and robust against floating-point errors.
- Rect2
2D axis-aligned bounding box. Rect2 consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
- Rect2I
2D axis-aligned bounding box using integers. Rect2I consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
- Rid
The RID type is used to access a low-level resource by its unique ID. RIDs are opaque, which means they do not grant access to the resource by themselves. They are used by the low-level server classes, such as DisplayServer, RenderingServer, TextServer, etc.
A low-level resource may correspond to a high-level Resource, such as Texture or Mesh
- Signal
Represents a signal defined in an object.
- Transform2D
2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. It can represent transformations such as translation, rotation, or scaling. It consists of a three Vector2 values: x, y, and the origin.
For more information, read this documentation article: https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html
- Transform3D
3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. It can represent transformations such as translation, rotation, or scaling. It consists of a Basis (first 3 columns) and a Vector3 for the origin (last column).
For more information, read this documentation article: https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html
- Vector2
2-element structure that can be used to represent positions in 2D space or any other pair of numeric values.
- Vector2I
2-element structure that can be used to represent 2D grid coordinates or pairs of integers.
- Vector3
3-element structure that can be used to represent positions in 3D space or any other pair of numeric values.
- Vector3I
3-element structure that can be used to represent 3D grid coordinates or sets of integers.
- Vector4
4-element structure that can be used to represent positions in 4D space or any other pair of numeric values.
- Vector4I
4-element structure that can be used to represent 4D grid coordinates or sets of integers.
Interfaces
- IAwaitable
An interface that requires a GetAwaiter() method to get a reference to the Awaiter.
- IAwaitable<TResult>
A templated interface that requires a GetAwaiter() method to get a reference to the Awaiter.
- IAwaiter
An interface that requires a boolean for completion status and a method that gets the result of completion.
- IAwaiter<TResult>
A templated interface that requires a boolean for completion status and a method that gets the result of completion and returns it.
- ISerializationListener
Allows a GodotObject to react to the serialization/deserialization that occurs when Godot reloads assemblies.
Enums
- Projection.Planes
Enumerated index values for the planes.
- Vector2.Axis
Enumerated index values for the axes. Returned by MaxAxisIndex() and MinAxisIndex().
- Vector2I.Axis
Enumerated index values for the axes. Returned by MaxAxisIndex() and MinAxisIndex().
- Vector3.Axis
Enumerated index values for the axes. Returned by MaxAxisIndex() and MinAxisIndex().
- Vector3I.Axis
Enumerated index values for the axes. Returned by MaxAxisIndex() and MinAxisIndex().
- Vector4.Axis
Enumerated index values for the axes. Returned by MaxAxisIndex() and MinAxisIndex().
- Vector4I.Axis
Enumerated index values for the axes. Returned by MaxAxisIndex() and MinAxisIndex().
Delegates
- AcceptDialog.CustomActionEventHandler
Represents the method that handles the CustomAction event of a AcceptDialog class.
- AnimationLibrary.AnimationAddedEventHandler
Represents the method that handles the AnimationAdded event of a AnimationLibrary class.
- AnimationLibrary.AnimationChangedEventHandler
Represents the method that handles the AnimationChanged event of a AnimationLibrary class.
- AnimationLibrary.AnimationRemovedEventHandler
Represents the method that handles the AnimationRemoved event of a AnimationLibrary class.
- AnimationLibrary.AnimationRenamedEventHandler
Represents the method that handles the AnimationRenamed event of a AnimationLibrary class.
- AnimationMixer.AnimationFinishedEventHandler
Represents the method that handles the AnimationFinished event of a AnimationMixer class.
- AnimationMixer.AnimationStartedEventHandler
Represents the method that handles the AnimationStarted event of a AnimationMixer class.
- AnimationNode.AnimationNodeRemovedEventHandler
Represents the method that handles the AnimationNodeRemoved event of a AnimationNode class.
- AnimationNode.AnimationNodeRenamedEventHandler
Represents the method that handles the AnimationNodeRenamed event of a AnimationNode class.
- AnimationNodeBlendTree.NodeChangedEventHandler
Represents the method that handles the NodeChanged event of a AnimationNodeBlendTree class.
- AnimationPlayer.AnimationChangedEventHandler
Represents the method that handles the AnimationChanged event of a AnimationPlayer class.
- AnimationPlayer.CurrentAnimationChangedEventHandler
Represents the method that handles the CurrentAnimationChanged event of a AnimationPlayer class.
- Area2D.AreaEnteredEventHandler
Represents the method that handles the AreaEntered event of a Area2D class.
- Area2D.AreaExitedEventHandler
Represents the method that handles the AreaExited event of a Area2D class.
- Area2D.AreaShapeEnteredEventHandler
Represents the method that handles the AreaShapeEntered event of a Area2D class.
- Area2D.AreaShapeExitedEventHandler
Represents the method that handles the AreaShapeExited event of a Area2D class.
- Area2D.BodyEnteredEventHandler
Represents the method that handles the BodyEntered event of a Area2D class.
- Area2D.BodyExitedEventHandler
Represents the method that handles the BodyExited event of a Area2D class.
- Area2D.BodyShapeEnteredEventHandler
Represents the method that handles the BodyShapeEntered event of a Area2D class.
- Area2D.BodyShapeExitedEventHandler
Represents the method that handles the BodyShapeExited event of a Area2D class.
- Area3D.AreaEnteredEventHandler
Represents the method that handles the AreaEntered event of a Area3D class.
- Area3D.AreaExitedEventHandler
Represents the method that handles the AreaExited event of a Area3D class.
- Area3D.AreaShapeEnteredEventHandler
Represents the method that handles the AreaShapeEntered event of a Area3D class.
- Area3D.AreaShapeExitedEventHandler
Represents the method that handles the AreaShapeExited event of a Area3D class.
- Area3D.BodyEnteredEventHandler
Represents the method that handles the BodyEntered event of a Area3D class.
- Area3D.BodyExitedEventHandler
Represents the method that handles the BodyExited event of a Area3D class.
- Area3D.BodyShapeEnteredEventHandler
Represents the method that handles the BodyShapeEntered event of a Area3D class.
- Area3D.BodyShapeExitedEventHandler
Represents the method that handles the BodyShapeExited event of a Area3D class.
- AudioServer.BusRenamedEventHandler
Represents the method that handles the BusRenamed event of a AudioServer class.
- AudioServerInstance.BusRenamedEventHandler
Represents the method that handles the BusRenamed event of a AudioServerInstance class.
- BaseButton.ToggledEventHandler
Represents the method that handles the Toggled event of a BaseButton class.
- ButtonGroup.PressedEventHandler
Represents the method that handles the Pressed event of a ButtonGroup class.
- CameraServer.CameraFeedAddedEventHandler
Represents the method that handles the CameraFeedAdded event of a CameraServer class.
- CameraServer.CameraFeedRemovedEventHandler
Represents the method that handles the CameraFeedRemoved event of a CameraServer class.
- CameraServerInstance.CameraFeedAddedEventHandler
Represents the method that handles the CameraFeedAdded event of a CameraServerInstance class.
- CameraServerInstance.CameraFeedRemovedEventHandler
Represents the method that handles the CameraFeedRemoved event of a CameraServerInstance class.
- CodeEdit.BreakpointToggledEventHandler
Represents the method that handles the BreakpointToggled event of a CodeEdit class.
- CodeEdit.SymbolLookupEventHandler
Represents the method that handles the SymbolLookup event of a CodeEdit class.
- CodeEdit.SymbolValidateEventHandler
Represents the method that handles the SymbolValidate event of a CodeEdit class.
- CollisionObject2D.InputEventEventHandler
Represents the method that handles the InputEvent event of a CollisionObject2D class.
- CollisionObject2D.MouseShapeEnteredEventHandler
Represents the method that handles the MouseShapeEntered event of a CollisionObject2D class.
- CollisionObject2D.MouseShapeExitedEventHandler
Represents the method that handles the MouseShapeExited event of a CollisionObject2D class.
- CollisionObject3D.InputEventEventHandler
Represents the method that handles the InputEvent event of a CollisionObject3D class.
- ColorPicker.ColorChangedEventHandler
Represents the method that handles the ColorChanged event of a ColorPicker class.
- ColorPicker.PresetAddedEventHandler
Represents the method that handles the PresetAdded event of a ColorPicker class.
- ColorPicker.PresetRemovedEventHandler
Represents the method that handles the PresetRemoved event of a ColorPicker class.
- ColorPickerButton.ColorChangedEventHandler
Represents the method that handles the ColorChanged event of a ColorPickerButton class.
- Control.GuiInputEventHandler
Represents the method that handles the GuiInput event of a Control class.
- FileDialog.DirSelectedEventHandler
Represents the method that handles the DirSelected event of a FileDialog class.
- FileDialog.FileSelectedEventHandler
Represents the method that handles the FileSelected event of a FileDialog class.
- FileDialog.FilesSelectedEventHandler
Represents the method that handles the FilesSelected event of a FileDialog class.
- GraphEdit.ConnectionDragStartedEventHandler
Represents the method that handles the ConnectionDragStarted event of a GraphEdit class.
- GraphEdit.ConnectionFromEmptyEventHandler
Represents the method that handles the ConnectionFromEmpty event of a GraphEdit class.
- GraphEdit.ConnectionRequestEventHandler
Represents the method that handles the ConnectionRequest event of a GraphEdit class.
- GraphEdit.ConnectionToEmptyEventHandler
Represents the method that handles the ConnectionToEmpty event of a GraphEdit class.
- GraphEdit.DeleteNodesRequestEventHandler
Represents the method that handles the DeleteNodesRequest event of a GraphEdit class.
- GraphEdit.DisconnectionRequestEventHandler
Represents the method that handles the DisconnectionRequest event of a GraphEdit class.
- GraphEdit.NodeDeselectedEventHandler
Represents the method that handles the NodeDeselected event of a GraphEdit class.
- GraphEdit.NodeSelectedEventHandler
Represents the method that handles the NodeSelected event of a GraphEdit class.
- GraphEdit.PopupRequestEventHandler
Represents the method that handles the PopupRequest event of a GraphEdit class.
- GraphEdit.ScrollOffsetChangedEventHandler
Represents the method that handles the ScrollOffsetChanged event of a GraphEdit class.
- GraphElement.DraggedEventHandler
Represents the method that handles the Dragged event of a GraphElement class.
- GraphElement.ResizeRequestEventHandler
Represents the method that handles the ResizeRequest event of a GraphElement class.
- GraphNode.SlotUpdatedEventHandler
Represents the method that handles the SlotUpdated event of a GraphNode class.
- GridMap.CellSizeChangedEventHandler
Represents the method that handles the CellSizeChanged event of a GridMap class.
- HttpRequest.RequestCompletedEventHandler
Represents the method that handles the RequestCompleted event of a HttpRequest class.
- Input.JoyConnectionChangedEventHandler
Represents the method that handles the JoyConnectionChanged event of a Input class.
- InputInstance.JoyConnectionChangedEventHandler
Represents the method that handles the JoyConnectionChanged event of a InputInstance class.
- ItemList.EmptyClickedEventHandler
Represents the method that handles the EmptyClicked event of a ItemList class.
- ItemList.ItemActivatedEventHandler
Represents the method that handles the ItemActivated event of a ItemList class.
- ItemList.ItemClickedEventHandler
Represents the method that handles the ItemClicked event of a ItemList class.
- ItemList.ItemSelectedEventHandler
Represents the method that handles the ItemSelected event of a ItemList class.
- ItemList.MultiSelectedEventHandler
Represents the method that handles the MultiSelected event of a ItemList class.
- LineEdit.TextChangeRejectedEventHandler
Represents the method that handles the TextChangeRejected event of a LineEdit class.
- LineEdit.TextChangedEventHandler
Represents the method that handles the TextChanged event of a LineEdit class.
- LineEdit.TextSubmittedEventHandler
Represents the method that handles the TextSubmitted event of a LineEdit class.
- MainLoop.OnRequestPermissionsResultEventHandler
Represents the method that handles the OnRequestPermissionsResult event of a MainLoop class.
- MultiplayerApi.PeerConnectedEventHandler
Represents the method that handles the PeerConnected event of a MultiplayerApi class.
- MultiplayerApi.PeerDisconnectedEventHandler
Represents the method that handles the PeerDisconnected event of a MultiplayerApi class.
- MultiplayerPeer.PeerConnectedEventHandler
Represents the method that handles the PeerConnected event of a MultiplayerPeer class.
- MultiplayerPeer.PeerDisconnectedEventHandler
Represents the method that handles the PeerDisconnected event of a MultiplayerPeer class.
- MultiplayerSpawner.DespawnedEventHandler
Represents the method that handles the Despawned event of a MultiplayerSpawner class.
- MultiplayerSpawner.SpawnedEventHandler
Represents the method that handles the Spawned event of a MultiplayerSpawner class.
- MultiplayerSynchronizer.VisibilityChangedEventHandler
Represents the method that handles the VisibilityChanged event of a MultiplayerSynchronizer class.
- NavigationAgent2D.LinkReachedEventHandler
Represents the method that handles the LinkReached event of a NavigationAgent2D class.
- NavigationAgent2D.VelocityComputedEventHandler
Represents the method that handles the VelocityComputed event of a NavigationAgent2D class.
- NavigationAgent2D.WaypointReachedEventHandler
Represents the method that handles the WaypointReached event of a NavigationAgent2D class.
- NavigationAgent3D.LinkReachedEventHandler
Represents the method that handles the LinkReached event of a NavigationAgent3D class.
- NavigationAgent3D.VelocityComputedEventHandler
Represents the method that handles the VelocityComputed event of a NavigationAgent3D class.
- NavigationAgent3D.WaypointReachedEventHandler
Represents the method that handles the WaypointReached event of a NavigationAgent3D class.
- NavigationServer2D.MapChangedEventHandler
Represents the method that handles the MapChanged event of a NavigationServer2D class.
- NavigationServer2DInstance.MapChangedEventHandler
Represents the method that handles the MapChanged event of a NavigationServer2DInstance class.
- NavigationServer3D.MapChangedEventHandler
Represents the method that handles the MapChanged event of a NavigationServer3D class.
- NavigationServer3DInstance.MapChangedEventHandler
Represents the method that handles the MapChanged event of a NavigationServer3DInstance class.
- Node.ChildEnteredTreeEventHandler
Represents the method that handles the ChildEnteredTree event of a Node class.
- Node.ChildExitingTreeEventHandler
Represents the method that handles the ChildExitingTree event of a Node class.
- Node.ReplacingByEventHandler
Represents the method that handles the ReplacingBy event of a Node class.
- OptionButton.ItemFocusedEventHandler
Represents the method that handles the ItemFocused event of a OptionButton class.
- OptionButton.ItemSelectedEventHandler
Represents the method that handles the ItemSelected event of a OptionButton class.
- PopupMenu.IdFocusedEventHandler
Represents the method that handles the IdFocused event of a PopupMenu class.
- PopupMenu.IdPressedEventHandler
Represents the method that handles the IdPressed event of a PopupMenu class.
- PopupMenu.IndexPressedEventHandler
Represents the method that handles the IndexPressed event of a PopupMenu class.
- Range.ValueChangedEventHandler
Represents the method that handles the ValueChanged event of a Range class.
- RichTextLabel.MetaClickedEventHandler
Represents the method that handles the MetaClicked event of a RichTextLabel class.
- RichTextLabel.MetaHoverEndedEventHandler
Represents the method that handles the MetaHoverEnded event of a RichTextLabel class.
- RichTextLabel.MetaHoverStartedEventHandler
Represents the method that handles the MetaHoverStarted event of a RichTextLabel class.
- RigidBody2D.BodyEnteredEventHandler
Represents the method that handles the BodyEntered event of a RigidBody2D class.
- RigidBody2D.BodyExitedEventHandler
Represents the method that handles the BodyExited event of a RigidBody2D class.
- RigidBody2D.BodyShapeEnteredEventHandler
Represents the method that handles the BodyShapeEntered event of a RigidBody2D class.
- RigidBody2D.BodyShapeExitedEventHandler
Represents the method that handles the BodyShapeExited event of a RigidBody2D class.
- RigidBody3D.BodyEnteredEventHandler
Represents the method that handles the BodyEntered event of a RigidBody3D class.
- RigidBody3D.BodyExitedEventHandler
Represents the method that handles the BodyExited event of a RigidBody3D class.
- RigidBody3D.BodyShapeEnteredEventHandler
Represents the method that handles the BodyShapeEntered event of a RigidBody3D class.
- RigidBody3D.BodyShapeExitedEventHandler
Represents the method that handles the BodyShapeExited event of a RigidBody3D class.
- SceneMultiplayer.PeerAuthenticatingEventHandler
Represents the method that handles the PeerAuthenticating event of a SceneMultiplayer class.
- SceneMultiplayer.PeerAuthenticationFailedEventHandler
Represents the method that handles the PeerAuthenticationFailed event of a SceneMultiplayer class.
- SceneMultiplayer.PeerPacketEventHandler
Represents the method that handles the PeerPacket event of a SceneMultiplayer class.
- SceneTree.NodeAddedEventHandler
Represents the method that handles the NodeAdded event of a SceneTree class.
- SceneTree.NodeConfigurationWarningChangedEventHandler
Represents the method that handles the NodeConfigurationWarningChanged event of a SceneTree class.
- SceneTree.NodeRemovedEventHandler
Represents the method that handles the NodeRemoved event of a SceneTree class.
- SceneTree.NodeRenamedEventHandler
Represents the method that handles the NodeRenamed event of a SceneTree class.
- Skeleton3D.BoneEnabledChangedEventHandler
Represents the method that handles the BoneEnabledChanged event of a Skeleton3D class.
- Skeleton3D.BonePoseChangedEventHandler
Represents the method that handles the BonePoseChanged event of a Skeleton3D class.
- Slider.DragEndedEventHandler
Represents the method that handles the DragEnded event of a Slider class.
- SplitContainer.DraggedEventHandler
Represents the method that handles the Dragged event of a SplitContainer class.
- TabBar.ActiveTabRearrangedEventHandler
Represents the method that handles the ActiveTabRearranged event of a TabBar class.
- TabBar.TabButtonPressedEventHandler
Represents the method that handles the TabButtonPressed event of a TabBar class.
- TabBar.TabChangedEventHandler
Represents the method that handles the TabChanged event of a TabBar class.
- TabBar.TabClickedEventHandler
Represents the method that handles the TabClicked event of a TabBar class.
- TabBar.TabClosePressedEventHandler
Represents the method that handles the TabClosePressed event of a TabBar class.
- TabBar.TabHoveredEventHandler
Represents the method that handles the TabHovered event of a TabBar class.
- TabBar.TabRmbClickedEventHandler
Represents the method that handles the TabRmbClicked event of a TabBar class.
- TabBar.TabSelectedEventHandler
Represents the method that handles the TabSelected event of a TabBar class.
- TabContainer.ActiveTabRearrangedEventHandler
Represents the method that handles the ActiveTabRearranged event of a TabContainer class.
- TabContainer.TabButtonPressedEventHandler
Represents the method that handles the TabButtonPressed event of a TabContainer class.
- TabContainer.TabChangedEventHandler
Represents the method that handles the TabChanged event of a TabContainer class.
- TabContainer.TabClickedEventHandler
Represents the method that handles the TabClicked event of a TabContainer class.
- TabContainer.TabHoveredEventHandler
Represents the method that handles the TabHovered event of a TabContainer class.
- TabContainer.TabSelectedEventHandler
Represents the method that handles the TabSelected event of a TabContainer class.
- TextEdit.GutterClickedEventHandler
Represents the method that handles the GutterClicked event of a TextEdit class.
- TextEdit.LinesEditedFromEventHandler
Represents the method that handles the LinesEditedFrom event of a TextEdit class.
- TextServerManager.InterfaceAddedEventHandler
Represents the method that handles the InterfaceAdded event of a TextServerManager class.
- TextServerManager.InterfaceRemovedEventHandler
Represents the method that handles the InterfaceRemoved event of a TextServerManager class.
- TextServerManagerInstance.InterfaceAddedEventHandler
Represents the method that handles the InterfaceAdded event of a TextServerManagerInstance class.
- TextServerManagerInstance.InterfaceRemovedEventHandler
Represents the method that handles the InterfaceRemoved event of a TextServerManagerInstance class.
- Tree.ButtonClickedEventHandler
Represents the method that handles the ButtonClicked event of a Tree class.
- Tree.CheckPropagatedToItemEventHandler
Represents the method that handles the CheckPropagatedToItem event of a Tree class.
- Tree.ColumnTitleClickedEventHandler
Represents the method that handles the ColumnTitleClicked event of a Tree class.
- Tree.CustomItemClickedEventHandler
Represents the method that handles the CustomItemClicked event of a Tree class.
- Tree.CustomPopupEditedEventHandler
Represents the method that handles the CustomPopupEdited event of a Tree class.
- Tree.EmptyClickedEventHandler
Represents the method that handles the EmptyClicked event of a Tree class.
- Tree.ItemCollapsedEventHandler
Represents the method that handles the ItemCollapsed event of a Tree class.
- Tree.ItemMouseSelectedEventHandler
Represents the method that handles the ItemMouseSelected event of a Tree class.
- Tree.MultiSelectedEventHandler
Represents the method that handles the MultiSelected event of a Tree class.
- Tween.LoopFinishedEventHandler
Represents the method that handles the LoopFinished event of a Tween class.
- Tween.StepFinishedEventHandler
Represents the method that handles the StepFinished event of a Tween class.
- Viewport.GuiFocusChangedEventHandler
Represents the method that handles the GuiFocusChanged event of a Viewport class.
- WebRtcPeerConnection.DataChannelReceivedEventHandler
Represents the method that handles the DataChannelReceived event of a WebRtcPeerConnection class.
- WebRtcPeerConnection.IceCandidateCreatedEventHandler
Represents the method that handles the IceCandidateCreated event of a WebRtcPeerConnection class.
- WebRtcPeerConnection.SessionDescriptionCreatedEventHandler
Represents the method that handles the SessionDescriptionCreated event of a WebRtcPeerConnection class.
- WebXRInterface.SelectEventHandler
Represents the method that handles the Select event of a WebXRInterface class.
- WebXRInterface.SelectendEventHandler
Represents the method that handles the Selectend event of a WebXRInterface class.
- WebXRInterface.SelectstartEventHandler
Represents the method that handles the Selectstart event of a WebXRInterface class.
- WebXRInterface.SessionFailedEventHandler
Represents the method that handles the SessionFailed event of a WebXRInterface class.
- WebXRInterface.SessionSupportedEventHandler
Represents the method that handles the SessionSupported event of a WebXRInterface class.
- WebXRInterface.SqueezeEventHandler
Represents the method that handles the Squeeze event of a WebXRInterface class.
- WebXRInterface.SqueezeendEventHandler
Represents the method that handles the Squeezeend event of a WebXRInterface class.
- WebXRInterface.SqueezestartEventHandler
Represents the method that handles the Squeezestart event of a WebXRInterface class.
- Window.FilesDroppedEventHandler
Represents the method that handles the FilesDropped event of a Window class.
- Window.WindowInputEventHandler
Represents the method that handles the WindowInput event of a Window class.
- XRController3D.ButtonPressedEventHandler
Represents the method that handles the ButtonPressed event of a XRController3D class.
- XRController3D.ButtonReleasedEventHandler
Represents the method that handles the ButtonReleased event of a XRController3D class.
- XRController3D.InputFloatChangedEventHandler
Represents the method that handles the InputFloatChanged event of a XRController3D class.
- XRController3D.InputVector2ChangedEventHandler
Represents the method that handles the InputVector2Changed event of a XRController3D class.
- XRInterface.PlayAreaChangedEventHandler
Represents the method that handles the PlayAreaChanged event of a XRInterface class.
- XRNode3D.TrackingChangedEventHandler
Represents the method that handles the TrackingChanged event of a XRNode3D class.
- XRPositionalTracker.ButtonPressedEventHandler
Represents the method that handles the ButtonPressed event of a XRPositionalTracker class.
- XRPositionalTracker.ButtonReleasedEventHandler
Represents the method that handles the ButtonReleased event of a XRPositionalTracker class.
- XRPositionalTracker.InputFloatChangedEventHandler
Represents the method that handles the InputFloatChanged event of a XRPositionalTracker class.
- XRPositionalTracker.InputVector2ChangedEventHandler
Represents the method that handles the InputVector2Changed event of a XRPositionalTracker class.
- XRPositionalTracker.PoseChangedEventHandler
Represents the method that handles the PoseChanged event of a XRPositionalTracker class.
- XRPositionalTracker.PoseLostTrackingEventHandler
Represents the method that handles the PoseLostTracking event of a XRPositionalTracker class.
- XRPositionalTracker.ProfileChangedEventHandler
Represents the method that handles the ProfileChanged event of a XRPositionalTracker class.
- XRServer.InterfaceAddedEventHandler
Represents the method that handles the InterfaceAdded event of a XRServer class.
- XRServer.InterfaceRemovedEventHandler
Represents the method that handles the InterfaceRemoved event of a XRServer class.
- XRServer.TrackerAddedEventHandler
Represents the method that handles the TrackerAdded event of a XRServer class.
- XRServer.TrackerRemovedEventHandler
Represents the method that handles the TrackerRemoved event of a XRServer class.
- XRServer.TrackerUpdatedEventHandler
Represents the method that handles the TrackerUpdated event of a XRServer class.
- XRServerInstance.InterfaceAddedEventHandler
Represents the method that handles the InterfaceAdded event of a XRServerInstance class.
- XRServerInstance.InterfaceRemovedEventHandler
Represents the method that handles the InterfaceRemoved event of a XRServerInstance class.
- XRServerInstance.TrackerAddedEventHandler
Represents the method that handles the TrackerAdded event of a XRServerInstance class.
- XRServerInstance.TrackerRemovedEventHandler
Represents the method that handles the TrackerRemoved event of a XRServerInstance class.
- XRServerInstance.TrackerUpdatedEventHandler
Represents the method that handles the TrackerUpdated event of a XRServerInstance class.