gd

package module
v0.0.0-...-d941049 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2024 License: MIT Imports: 11 Imported by: 0

README

Go + Godot 4.2.2 Go Reference

This module provides a safe performant way to work with Godot 4.2.2, in Go via the GDExtension interface.

You can support the project and prioritise issues here

// This file is all you need to start a project in Go + Godot.
// Save it somewhere, install the `gd` command and use `gd run` to get started.
package main

import (
	"fmt"

	"grow.graphics/gd"
	"grow.graphics/gd/gdextension"
)

type HelloWorld struct {
	gd.Class[HelloWorld, gd.SceneTree]
}

// Initialize implements the Godot MainLoop _initialize interface (virtual function).
func (h *HelloWorld) Initialize(godot gd.Context) {
	fmt.Println("Hello World from Go!")
}

func main() {
	godot, ok := gdextension.Link()
	if !ok {
		return
	}
	gd.Register[HelloWorld](godot)
}

Getting Started

The module includes a drop-in replacement for the go command called gd that makes it easy to work with projects that run within Godot. It enables you to start developing a new project from a single main.go file, to install it, make sure that your $GOPATH/bin is in your $PATH and run:

	go install grow.graphics/gd/cmd/gd@master

Now when you can run gd run, gd test on the main package in your project's directory, things will work as expected. The tool will create a "graphics" subdirectory where you can manage your assets via the Godot Editor.

Running the command without any arguments will startup the editor.

NOTE On linux (and macos if you have brew), gd will download Godot for you automatically!
HINT On Windows, you'll want to setup CGO.

If you don't want to use the gd command, you can build a shared library with the go command directly:

go build -o example.so -buildmode=c-shared

Design Principles

Godot classes are exported by the gd package and can be referred to by their standard Godot names, for example gd.Object is an Object reference. There's no inheritance, so to access the 'super' class, you need to call Super() on your custom 'Class'. All Godot classes have methods to cast to the classes they extend for example AsObject() or AsNode2D().

Methods have been renamed to follow Go conventions, so instead of underscores, methods are named as PascalCase. Keep this in mind when referring to the Godot documentation.

https://docs.godotengine.org/en/latest/index.html

Semi-Automatic Memory Management

Godot types are preferred over Go types, in order to keep allocations optional. All values are tied to a [gd.Context] type, which is either:

(a) a function argument and any values associated with it will be freed
    when the function returns.
(b) builtin to the class you are extending, and any values associated 
    with it will be freed when the class is destroyed by Godot.

This module aims to offer memory safety for race-free extensions, if you discover a way to unintentionally do something unsafe (like double free, use-after-free or a segfault), using methods on types exported by the root gd package please open an issue.

Recommendations

Start with a main.go file, model your project in Go using structs to represent the world, space or state of your project. Go is an excellent language for textual representation. Use the gd command to launch the Godot editor when you want to create visual representation of your structures. The Godot editor is an excellent tool for importing media, managing assets and designing the visual and spatial aspects of a project. Don't forget to write tests!

Where Do I Find?

* Godot Class            -> gd.{ClassName}
* Godot Class Method     -> gd.{ClassName}.{pascal(MethodName)}
* Godot Utility Function -> gd.Context.{pascal(UtilityName)} OR gd.{pascal(UtilityName)} (pure)
* Godot Enum             -> gd.{EnumName}
* Godot Enum Value       -> gd.{EnumName}{EnumValueName}
* Godot Singleton        -> gd.{ClassName}(gd.Context) // function returns the singleton, they cannot be stored.

Performance

It's feasible to write high performance code using this module, keep to Godot types where possible and avoid escaping memory to the heap in frequently called functions.

Zero Allocations

Benchmarking shows method calls from Go -> Godot do not allocate in practice.

Allocations are currently unavoidable for GDScript -> Go calls (but not for class virtual method overrides such as Ready or Process, which should be allocation free).

We've got some ideas to reduce allocations for GDScript -> Go calls, when arguments fit entirely within registers. TBA.

Examples

There are a number of examples in the examples repo. All examples are designed to be run with gd run without any additional setup.

Testing

To run the go tests for this module cd internal && gd test.

Supported Platforms

  • Windows
  • Linux (including Steam Deck)
  • Mac (including Apple Silicon)
  • Android (including MetaQuest)
  • IOS (should work, untested)

Known Limitations

  • No support for indexed properties
  • No support for Godot class functions with varargs.
  • No support for script extensions.
  • 64bit support only.
  • No Web Export Yet (we have ideas on how to solve this)
  • No planned support for proprietary consoles.

See Also

Licensing

This project is licensed under an MIT license (the same license as Godot), you can use it in any manner you can use the Godot engine. If you use this for a commercially successful project, please consider financially supporting us.

Documentation

Overview

Code generated by the generate package DO NOT EDIT

Code generated by the generate package DO NOT EDIT

Index

Constants

View Source
const (
	Pi  = math.Pi
	Tau = math.Pi * 2
)

Variables

This section is empty.

Functions

func Abs

func Abs[T xy.ComponentWise[T]](x T) T

Abs returns the absolute value of the parameter x (i.e. non-negative value).

func Absf

func Absf[T ~float32 | ~float64](x T) T

Absf returns the absolute value of the float parameter x (i.e. non-negative value).

func Absi

func Absi[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x T) T

Absi returns the absolute value of the integer parameter x (i.e. non-negative value).

func AngleDifference

func AngleDifference[T ~float32 | ~float64](from, to T) T

AngleDifference returns the difference between the two angles, in the range of [-Pi, +Pi]. When from and to are opposite, returns -Pi if from is smaller than to, or Pi otherwise.

func As

func As[T gd.IsClass](godot Context, class gd.IsClass) (T, bool)

As attempts to cast the given class to T, returning true if the cast was successful.

func AudioServer

func AudioServer(godot Context) classdb.AudioServer

func BezierDerivative

func BezierDerivative[T ~float32 | ~float64](start, control_1, control_2, end, t T) T

BezierDerivative returns the derivative at the given t on a one-dimensional Bézier curve defined by the given control_1, control_2, and end points.

func BezierInterpolate

func BezierInterpolate[T ~float32 | ~float64](start, control_1, control_2, end, t T) T

BezierInterpolate returns the point at the given t on a one-dimensional Bézier curve defined by the given control_1, control_2, and end points.

func CameraServer

func CameraServer(godot Context) classdb.CameraServer

func Ceil

func Ceil[T xy.ComponentWise[T]](x T) T

Ceil rounds x upward (towards positive infinity), returning the smallest whole number that is not less than x.

func Ceilf

func Ceilf[T ~float32 | ~float64](x T) T

Ceilf rounds x upward (towards positive infinity), returning the smallest whole number that is not less than x.

func Ceili

func Ceili[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x T) T

Ceili rounds x upward (towards positive infinity), returning the smallest whole number that is not less than x.

func Clamp

func Clamp[T ordered](value, min, max T) T

Clamp clamps the value, returning a Variant not less than min and not more than max. Any values that can be compared with the less than and greater than operators will work.

func Clampf

func Clampf[T ~float32 | ~float64](value, min, max T) T

Clampf clamps the value, returning a float not less than min and not more than max.

func Clampi

func Clampi[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](value, min, max T) T

Clampi clamps the value, returning an integer not less than min and not more than max.

func ClassDB

func ClassDB(godot Context) classdb.ClassDB

func Const

func Const[F func(T) T, T any](constant F) T

Const can be used to retrieve a 'constant' value from a structured type.

func Cos

func Cos[T ~float32 | ~float64](x T) T

Cos returns the cosine of angle x in radians.

func Cosh

func Cosh[T ~float32 | ~float64](x T) T

Cosh returns the hyperbolic cosine of x in radians.

func Create

func Create[T gd.PointerToClass](ctx Context, ptr T) T

Create a new instance of the given class, which should be an uninitialised pointer to a value of that class. T must be a class from this package.

func CubicInterpolate

func CubicInterpolate[T ~float32 | ~float64](from, to, pre, post, weight T) T

CubicInterpolate cubic interpolates between two values by the factor defined in weightSee also with pre and post values.

func CubicInterpolateAngle

func CubicInterpolateAngle[T ~float32 | ~float64](from, to, pre, post, weight T) T

CubicInterpolateAngle cubic interpolates between two rotation values with shortest path by the factor defined in weight with pre and post values. See also LerpAngle.

func CubicInterpolateAngleInTime

func CubicInterpolateAngleInTime[T ~float32 | ~float64](from, to, pre, post, weight, to_t, pre_t, post_t T) T

CubicInterpolateAngleInTime cubic interpolates between two rotation values with shortest path by the factor defined in weight with pre and post values. See also LerpAngle.

It can perform smoother interpolation than CubicInterpolate by the time values.

func CubicInterpolateInTime

func CubicInterpolateInTime[T ~float32 | ~float64](from, to, pre, post, weight, to_t, pre_t, post_t T) T

CubicInterpolateInTime cubic interpolates between two values by the factor defined in weight with pre and post values.

It can perform smoother interpolation than cubic_interpolate by the time values.

func DecibelsToLinear

func DecibelsToLinear[T ~float32 | ~float64](db T) T

DecibelsToLinear converts from decibels to linear energy (audio).

func DisplayServer

func DisplayServer(godot Context) classdb.DisplayServer

func Ease

func Ease[T ~float32 | ~float64](x, curve T) T

Ease returns an "eased" value of x based on an easing function defined with curve. This easing function is based on an exponent. The curve can be any floating-point number, with specific values leading to the following behaviors:

- Lower than -1.0 (exclusive): Ease in-out - 1.0: Linear - Between -1.0 and 0.0 (exclusive): Ease out-in - 0.0: Constant - Between 0.0 to 1.0 (exclusive): Ease out - 1.0: Linear - Greater than 1.0 (exclusive): Ease in

https://raw.githubusercontent.com/godotengine/godot-docs/master/img/ease_cheatsheet.png

See also Smoothstep. If you need to perform more advanced transitions, use [Tween.InterpolateValue].

func EditorInterface

func EditorInterface(godot Context) classdb.EditorInterface

func Engine

func Engine(godot Context) classdb.Engine

func EngineDebugger

func EngineDebugger(godot Context) classdb.EngineDebugger

func Exp

func Exp[T ~float32 | ~float64](x T) T

Exp raises the mathematical constant e to the power of x and returns it. e has an approximate value of 2.71828, and can be obtained with Exp(1).

For exponents to other bases use the method pow.

func Floor

func Floor[T xy.ComponentWise[T]](x T) T

Floor rounds x downward (towards negative infinity), returning the largest whole number that is not more than x.

func Floorf

func Floorf[T ~float32 | ~float64](x T) T

Floorf rounds x downward (towards negative infinity), returning the largest whole number that is not more than x.

func Floori

func Floori[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x T) T

Floori rounds x downward (towards negative infinity), returning the largest whole number that is not more than x.

func Fmod

func Fmod[T ~float32 | ~float64](x, y T) T

Fmod returns the floating-point remainder of x divided by y, keeping the sign of x.

func Fposmod

func Fposmod[T ~float32 | ~float64](x, y T) T

Fposmod returns the floating-point modulus of x divided by y, wrapping equally in positive and negative.

func GDExtensionManager

func GDExtensionManager(godot Context) classdb.GDExtensionManager

func Geometry2D

func Geometry2D(godot Context) classdb.Geometry2D

func Geometry3D

func Geometry3D(godot Context) classdb.Geometry3D

func IP

func IP(godot Context) classdb.IP

func Input

func Input(godot Context) classdb.Input

func InputMap

func InputMap(godot Context) classdb.InputMap

func InverseLerp

func InverseLerp[T ~float32 | ~float64](from, to, weight T) T

InverseLerp returns an interpolation or extrapolation factor considering the range specified in from and to, and the interpolated value specified in weight. The returned value will be between 0.0 and 1.0 if weight is between from and to (inclusive). If weight is located outside this range, then an extrapolation factor will be returned (return value lower than 0.0 or greater than 1.0). Use Clamp on the result of InverseLerp if this is not desired.

func IsApproximatelyEqual

func IsApproximatelyEqual[T ~float32 | ~float64](a, b T) bool

IsApproximatelyEqual returns true if a and b are approximately equal to each other.

Here, "approximately equal" means that a and b are within a small internal epsilon of each other, which scales with the magnitude of the numbers.

Infinity values of the same sign are considered equal.

func IsApproximatelyZero

func IsApproximatelyZero[T ~float32 | ~float64](x T) bool

IsApproximatelyZero Returns true if x is zero or almost zero. The comparison is done using a tolerance calculation with a small internal epsilon. This function is faster than using IsApproximatelyEqual with one value as zero.

func IsFinite

func IsFinite[T ~float32 | ~float64](x T) bool

IsFinite returns whether x is a finite value, i.e. it is not NaN, +INF, or -INF.

func IsInfinity

func IsInfinity[T ~float32 | ~float64](x T) bool

IsInfinity returns whether x is an infinite value, i.e. it is +INF or -INF.

func IsNaN

func IsNaN[T ~float32 | ~float64](x T) bool

IsNaN returns whether x is NaN (not a number).

func JavaClassWrapper

func JavaClassWrapper(godot Context) classdb.JavaClassWrapper

func JavaScriptBridge

func JavaScriptBridge(godot Context) classdb.JavaScriptBridge

func Lerp

func Lerp[T xy.Lerpable[T]](from, to T, weight Float) T

Lerp linearly interpolates between two values by the factor defined in weight. To perform interpolation, weight should be between 0.0 and 1.0 (inclusive). However, values outside this range are allowed and can be used to perform extrapolation. If this is not desired, use Clampf on the result of this function.

See also InverseLerp which performs the reverse of this operation. To perform eased interpolation with Lerp, combine it with ease or smoothstep.

func LerpAngle

func LerpAngle[T ~float32 | ~float64](from, to, weight T) T

LerpAngle linearly interpolates between two angles (in radians) by a weight value between 0.0 and 1.0. Similar to lerp, but interpolates correctly when the angles wrap around Tau. To perform eased interpolation with LerpAngle, combine it with Ease or Smoothstep.

Note: This function lerps through the shortest path between from and to. However, when these two angles are approximately Pi + k * Tau apart for any integer k, it's not obvious which way they lerp due to floating-point precision errors. For example, LerpAngle(0, Pi, weight) lerps counter-clockwise, while LerpAngle(0, Pi + 5 * Tau, weight) lerps clockwise.

func Lerpf

func Lerpf[T ~float32 | ~float64](from, to, weight T) T

Lerpf linearly interpolates between two values by the factor defined in weight. To perform interpolation, weight should be between 0.0 and 1.0 (inclusive). However, values outside this range are allowed and can be used to perform extrapolation. If this is not desired, use Clampf on the result of this function.

See also InverseLerp which performs the reverse of this operation. To perform eased interpolation with Lerpf, combine it with ease or smoothstep.

func LinearToDecibels

func LinearToDecibels[T ~float32 | ~float64](energy T) T

LinearToDecibels converts from linear energy (audio) to decibels.

func Load

func Load[T isResource](godot Context, path string) (T, bool)

Load returns a Resource from the filesystem located at the absolute path. Unless it's already referenced elsewhere (such as in another script or in the scene), the resource is loaded from disk on function call, which might cause a slight delay, especially when loading large scenes. To avoid unnecessary delays when loading something multiple times, either store the resource in a variable or use preload.

Note: Resource paths can be obtained by right-clicking on a resource in the FileSystem dock and choosing "Copy Path", or by dragging the file from the FileSystem dock into the current script.

Important: The path must be absolute. A relative path will always return null.

This function is a simplified version of [ResourceLoader(godot).Load], which can be used for more advanced scenarios.

Note: Files have to be imported into the engine first to load them using this function. If you want to load Images at run-time, you may use Image.load. If you want to import audio files, you can use the snippet described in AudioStreamMP3.data.

Note: If ProjectSettings.editor/export/convert_text_resources_to_binary is true, load will not be able to read converted files in an exported project. If you rely on run-time loading of files present within the PCK, set ProjectSettings.editor/export/convert_text_resources_to_binary to false.

func Log

func Log[T ~float32 | ~float64](x T) T

Log returns the natural logarithm of x (base e, with e being approximately 2.71828). This is the amount of time needed to reach a certain level of continuous growth.

Note: This is not the same as the "log" function on most calculators, which uses a base 10 logarithm. To use base 10 logarithm, use Log(x) / Log(10).

Note: The logarithm of 0 returns -inf, while negative values return -NaN.

func Marshalls

func Marshalls(godot Context) classdb.Marshalls

func MoveToward

func MoveToward[T ~float32 | ~float64](from, to, delta T) T

MoveToward moves from toward to by the delta amount. Will not go past to. Use a negative delta value to move away.

func NavigationMeshGenerator(godot Context) classdb.NavigationMeshGenerator
func NavigationServer2D(godot Context) classdb.NavigationServer2D
func NavigationServer3D(godot Context) classdb.NavigationServer3D

func OS

func OS(godot Context) classdb.OS

func Performance

func Performance(godot Context) classdb.Performance

func PhysicsServer2D

func PhysicsServer2D(godot Context) classdb.PhysicsServer2D

func PhysicsServer2DManager

func PhysicsServer2DManager(godot Context) classdb.PhysicsServer2DManager

func PhysicsServer3D

func PhysicsServer3D(godot Context) classdb.PhysicsServer3D

func PhysicsServer3DManager

func PhysicsServer3DManager(godot Context) classdb.PhysicsServer3DManager

func PingPong

func PingPong[T ~float32 | ~float64](value, length T) T

PingPong wraps value between 0 and the length. If the limit is reached, the next value the function returns is decreased to the 0 side or increased to the length side (like a triangle wave). If length is less than zero, it becomes positive.

func Posmod

func Posmod[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x, y T) T

Posmod returns the integer modulus of x divided by y that wraps equally in positive and negative.

func Pow

func Pow[T ~float32 | ~float64](base, exp T) T

Pow returns the result of base raised to the power of exp.

func ProjectSettings

func ProjectSettings(godot Context) classdb.ProjectSettings

func Register

func Register[Struct gd.Extends[Parent], Parent gd.IsClass](godot Context)

RegisterClass registers a struct available for use inside Godot extending the given 'Parent' Godot class. The 'Struct' type must be a named struct that embeds a Class field specifying the parent class to extend.

type MyClass struct {
	Class[MyClass, Node2D] `gd:"MyClass"`
}

The tag can be adjusted in order to change the name of the class within Godot.

Use this in a main or init function to register your Go structs and they will become available within the Godot engine for use in the editor and/or within scripts.

All exported fields and methods will be exposed to Godot, so take caution when embedding types, as their fields and methods will be promoted.

If the Struct extends EditorPlugin then it will be added to the editor as a plugin.

If the Struct extends MainLoop or SceneTree then it will be used as the main loop for the application.

func Remap

func Remap[T ~float32 | ~float64](value, istart, istop, ostart, ostop T) T

Remap maps a value from range (istart, istop) to (ostart, ostop). See also Lerp and InverseLerp. If value is outside (istart, istop), then the resulting value will also be outside (ostart, ostop). If this is not desired, use Clamp on the result of this function.

func RenderingServer

func RenderingServer(godot Context) classdb.RenderingServer

func ResourceLoader

func ResourceLoader(godot Context) classdb.ResourceLoader

func ResourceSaver

func ResourceSaver(godot Context) classdb.ResourceSaver

func ResourceUID

func ResourceUID(godot Context) classdb.ResourceUID

func RotateToward

func RotateToward[T ~float32 | ~float64](from, to, delta T) T

RotateToward rotates from toward to by the delta amount. Will not go past to.

Similar to move_toward, but interpolates correctly when the angles wrap around Tau.

If delta is negative, this function will rotate away from to, toward the opposite angle, and will not go past the opposite angle.

func Round

func Round[T xy.ComponentWise[T]](x T) T

Round rounds x to the nearest whole number, with halfway cases rounded away from 0.

func Roundf

func Roundf[T ~float32 | ~float64](x T) T

Roundf rounds x to the nearest whole number, with halfway cases rounded away from 0.

func Roundi

func Roundi[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x T) T

Roundi rounds x to the nearest whole number, with halfway cases rounded away from 0.

func Sign

func Sign[T xy.ComponentWise[T]](x T) T

Sign returns the same type of value as x, with -1 for negative values, 1 for positive values, and 0 for zeros. For nan values it returns 0.

func Signf

func Signf[T ~float32 | ~float64](x T) T

Signf returns -1.0 if x is negative, 1.0 if x is positive, and 0.0 if x is zero. For NaN values of x it returns 0.0.

func Signi

func Signi[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x T) T

Signi returns -1 if x is negative, 1 if x is positive, and 0 if x is zero. For NaN values of x it returns 0.

func Sin

func Sin[T ~float32 | ~float64](x T) T

Sin returns the sine of angle x in radians.

func Sinh

func Sinh[T ~float32 | ~float64](x T) T

Sinh returns the hyperbolic sine of x in radians.

func Smoothstep

func Smoothstep[T ~float32 | ~float64](from, to, x T) T

Smoothstep returns the result of smoothly interpolating the value of x between 0 and 1, based on the where x lies with respect to the edges from and to.

The return value is 0 if x <= from, and 1 if x >= to. If x lies between from and to, the returned value follows an S-shaped curve that maps x between 0 and 1.

This S-shaped curve is the cubic Hermite interpolator, given by

(y) = 3*y^2 - 2*y^3 where y = (x-from) / (to-from).

func Snapped

func Snapped[T xy.ComponentWise[T]](x, step T) T

Snapped returns the multiple of step that is the closest to x. This can also be used to round a floating point number to an arbitrary number of decimals.

func Snappedf

func Snappedf[T ~float32 | ~float64](x, step T) T

Snappedf returns the multiple of step that is the closest to x. This can also be used to round a floating point number to an arbitrary number of decimals.

func Snappedi

func Snappedi[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](x, step T) T

Snappedi returns the multiple of step that is the closest to x. This can also be used to round a floating point number to an arbitrary number of decimals.

func Sqrt

func Sqrt[T ~float32 | ~float64](x T) T

Sqrt returns the square root of x. Where x is negative, the result is NaN.

func Tan

func Tan[T ~float32 | ~float64](x T) T

Tan returns the tangent of angle x in radians.

func Tanh

func Tanh[T ~float32 | ~float64](x T) T

Tanh returns the hyperbolic tangent of x in radians.

func TextServerManager

func TextServerManager(godot Context) classdb.TextServerManager

func ThemeDB

func ThemeDB(godot Context) classdb.ThemeDB

func Time

func Time(godot Context) classdb.Time

func TranslationServer

func TranslationServer(godot Context) classdb.TranslationServer

func WorkerThreadPool

func WorkerThreadPool(godot Context) classdb.WorkerThreadPool

func Wrapf

func Wrapf[T ~float32 | ~float64](value, min, max T) T

Wrapf value between min and max. Can be used for creating loop-alike behavior or infinite surfaces.

func Wrapi

func Wrapi[T ~int8 | ~int16 | ~int32 | ~int64 | ~int](value, min, max T) T

Wrapi value between min and max. Can be used for creating loop-alike behavior or infinite surfaces.

func XRServer

func XRServer(godot Context) classdb.XRServer

Types

type AABB

type AABB = gd.AABB

type AESContext

type AESContext = classdb.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. [codeblocks] [gdscript] extends Node

var aes = AESContext.new()

func _ready():

var key = "My secret key!!!" # Key must be either 16 or 32 bytes.
var data = "My secret text!!" # Data size must be multiple of 16 bytes, apply padding if needed.
# Encrypt ECB
aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())
var encrypted = aes.update(data.to_utf8_buffer())
aes.finish()
# Decrypt ECB
aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())
var decrypted = aes.update(encrypted)
aes.finish()
# Check ECB
assert(decrypted == data.to_utf8_buffer())

var iv = "My secret iv!!!!" # IV must be of exactly 16 bytes.
# Encrypt CBC
aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
encrypted = aes.update(data.to_utf8_buffer())
aes.finish()
# Decrypt CBC
aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv.to_utf8_buffer())
decrypted = aes.update(encrypted)
aes.finish()
# Check CBC
assert(decrypted == data.to_utf8_buffer())

[/gdscript] [csharp] 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());
    }
}

[/csharp] [/codeblocks]

type AESContextMode

type AESContextMode = classdb.AESContextMode
const (
	/*AES electronic codebook encryption mode.*/
	AESContextModeEcbEncrypt AESContextMode = 0
	/*AES electronic codebook decryption mode.*/
	AESContextModeEcbDecrypt AESContextMode = 1
	/*AES cipher blocker chaining encryption mode.*/
	AESContextModeCbcEncrypt AESContextMode = 2
	/*AES cipher blocker chaining decryption mode.*/
	AESContextModeCbcDecrypt AESContextMode = 3
	/*Maximum value for the mode enum.*/
	AESContextModeMax AESContextMode = 4
)

type AStar2D

type AStar2D = classdb.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 methods that can be overridden by a [Class] that extends it.
type AStar2D interface {
	//Called when estimating the cost between a point and the path's ending point.
	//Note that this function is hidden in the default [AStar2D] class.
	EstimateCost(godot Context, from_id gd.Int, to_id gd.Int) gd.Float
	//Called when computing the cost between two connected points.
	//Note that this function is hidden in the default [AStar2D] class.
	ComputeCost(godot Context, from_id gd.Int, to_id gd.Int) gd.Float
}

type AStar3D

type AStar3D = classdb.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 [method add_point] and create segments manually with [method connect_points]. Once done, you can test if there is a path between two points with the [method are_points_connected] function, get a path containing indices by [method get_id_path], or one containing actual coordinates with [method get_point_path]. It is also possible to use non-Euclidean distances. To do so, create a class that extends AStar3D and override methods [method _compute_cost] and [method _estimate_cost]. Both take two indices and return a length, as is shown in the following example. [codeblocks] [gdscript] class MyAStar:

extends AStar3D

func _compute_cost(u, v):
    return abs(u - v)

func _estimate_cost(u, v):
    return min(0, abs(u - v) - 1)

[/gdscript] [csharp] 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);
    }
}

[/csharp] [/codeblocks] [method _estimate_cost] should return a lower bound of the distance, i.e. [code]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. This serves as a hint to the algorithm because the custom [method _compute_cost] might be computation-heavy. If this is not the case, make [method _estimate_cost] return the same value as [method _compute_cost] to provide the algorithm with the most accurate information. If the default [method _estimate_cost] and [method _compute_cost] methods are used, or if the supplied [method _estimate_cost] 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 [method _compute_cost] results of all segments in the path multiplied by the [code]weight_scale[/code]s of the endpoints of the respective segments. If the default methods are used and the [code]weight_scale[/code]s of all points are set to [code]1.0[/code], then this equals the sum of Euclidean distances of all segments in the path.

// AStar3D methods that can be overridden by a [Class] that extends it.
type AStar3D interface {
	//Called when estimating the cost between a point and the path's ending point.
	//Note that this function is hidden in the default [AStar3D] class.
	EstimateCost(godot Context, from_id gd.Int, to_id gd.Int) gd.Float
	//Called when computing the cost between two connected points.
	//Note that this function is hidden in the default [AStar3D] class.
	ComputeCost(godot Context, from_id gd.Int, to_id gd.Int) gd.Float
}

type AStarGrid2D

type AStarGrid2D = classdb.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 [member region] of the grid, optionally set the [member cell_size], and then call the [method update] method: [codeblocks] [gdscript] var astar_grid = AStarGrid2D.new() astar_grid.region = Rect2i(0, 0, 32, 32) astar_grid.cell_size = Vector2(16, 16) astar_grid.update() print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # prints (0, 0), (1, 1), (2, 2), (3, 3), (3, 4) print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # prints (0, 0), (16, 16), (32, 32), (48, 48), (48, 64) [/gdscript] [csharp] 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) [/csharp] [/codeblocks] To remove a point from the pathfinding grid, it must be set as "solid" with [method set_point_solid].

// AStarGrid2D methods that can be overridden by a [Class] that extends it.
type AStarGrid2D interface {
	//Called when estimating the cost between a point and the path's ending point.
	//Note that this function is hidden in the default [AStarGrid2D] class.
	EstimateCost(godot Context, from_id gd.Vector2i, to_id gd.Vector2i) gd.Float
	//Called when computing the cost between two connected points.
	//Note that this function is hidden in the default [AStarGrid2D] class.
	ComputeCost(godot Context, from_id gd.Vector2i, to_id gd.Vector2i) gd.Float
}

type AStarGrid2DDiagonalMode

type AStarGrid2DDiagonalMode = classdb.AStarGrid2DDiagonalMode
const (
	/*The pathfinding algorithm will ignore solid neighbors around the target cell and allow passing using diagonals.*/
	AStarGrid2DDiagonalModeAlways AStarGrid2DDiagonalMode = 0
	/*The pathfinding algorithm will ignore all diagonals and the way will be always orthogonal.*/
	AStarGrid2DDiagonalModeNever AStarGrid2DDiagonalMode = 1
	/*The pathfinding algorithm will avoid using diagonals if at least two obstacles have been placed around the neighboring cells of the specific path segment.*/
	AStarGrid2DDiagonalModeAtLeastOneWalkable AStarGrid2DDiagonalMode = 2
	/*The pathfinding algorithm will avoid using diagonals if any obstacle has been placed around the neighboring cells of the specific path segment.*/
	AStarGrid2DDiagonalModeOnlyIfNoObstacles AStarGrid2DDiagonalMode = 3
	/*Represents the size of the [enum DiagonalMode] enum.*/
	AStarGrid2DDiagonalModeMax AStarGrid2DDiagonalMode = 4
)

type AStarGrid2DHeuristic

type AStarGrid2DHeuristic = classdb.AStarGrid2DHeuristic
const (
	/*The [url=https://en.wikipedia.org/wiki/Euclidean_distance]Euclidean heuristic[/url] to be used for the pathfinding using the following formula:
	  [codeblock]
	  dx = abs(to_id.x - from_id.x)
	  dy = abs(to_id.y - from_id.y)
	  result = sqrt(dx * dx + dy * dy)
	  [/codeblock]
	  [b]Note:[/b] This is also the internal heuristic used in [AStar3D] and [AStar2D] by default (with the inclusion of possible z-axis coordinate).*/
	AStarGrid2DHeuristicEuclidean AStarGrid2DHeuristic = 0
	/*The [url=https://en.wikipedia.org/wiki/Taxicab_geometry]Manhattan heuristic[/url] to be used for the pathfinding using the following formula:
	  [codeblock]
	  dx = abs(to_id.x - from_id.x)
	  dy = abs(to_id.y - from_id.y)
	  result = dx + dy
	  [/codeblock]
	  [b]Note:[/b] This heuristic is intended to be used with 4-side orthogonal movements, provided by setting the [member diagonal_mode] to [constant DIAGONAL_MODE_NEVER].*/
	AStarGrid2DHeuristicManhattan AStarGrid2DHeuristic = 1
	/*The Octile heuristic to be used for the pathfinding using the following formula:
	  [codeblock]
	  dx = abs(to_id.x - from_id.x)
	  dy = abs(to_id.y - from_id.y)
	  f = sqrt(2) - 1
	  result = (dx < dy) ? f * dx + dy : f * dy + dx;
	  [/codeblock]*/
	AStarGrid2DHeuristicOctile AStarGrid2DHeuristic = 2
	/*The [url=https://en.wikipedia.org/wiki/Chebyshev_distance]Chebyshev heuristic[/url] to be used for the pathfinding using the following formula:
	  [codeblock]
	  dx = abs(to_id.x - from_id.x)
	  dy = abs(to_id.y - from_id.y)
	  result = max(dx, dy)
	  [/codeblock]*/
	AStarGrid2DHeuristicChebyshev AStarGrid2DHeuristic = 3
	/*Represents the size of the [enum Heuristic] enum.*/
	AStarGrid2DHeuristicMax AStarGrid2DHeuristic = 4
)

type AcceptDialog

type AcceptDialog = classdb.AcceptDialog

The default use of AcceptDialog is to allow it to only be accepted or closed, with the same result. However, the [signal confirmed] and [signal canceled] signals allow to make the two actions different, and the [method add_button] method allows to add custom buttons and actions.

type AnimatableBody2D

type AnimatableBody2D = classdb.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, [AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_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.

type AnimatableBody3D

type AnimatableBody3D = classdb.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, [AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_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.

type AnimatedSprite2D

type AnimatedSprite2D = classdb.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.

type AnimatedSprite3D

type AnimatedSprite3D = classdb.AnimatedSprite3D

AnimatedSprite3D is similar to the Sprite3D node, except it carries multiple textures as animation [member sprite_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.

type AnimatedTexture

type AnimatedTexture = classdb.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 [member speed_scale] property, as well as each frame's duration (see [method set_frame_duration]). 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. [b]Note:[/b] AnimatedTexture doesn't support using [AtlasTexture]s. Each frame needs to be a separate Texture2D. [b]Warning:[/b] The current implementation is not efficient for the modern renderers. [i]Deprecated.[/i] This class is deprecated, and might be removed in a future release.

type Animation

type Animation = classdb.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. [codeblocks] [gdscript] # This creates an animation that makes the node "Enemy" move to the right by # 100 pixels in 2.0 seconds. var animation = Animation.new() var track_index = animation.add_track(Animation.TYPE_VALUE) animation.track_set_path(track_index, "Enemy:position:x") animation.track_insert_key(track_index, 0.0, 0) animation.track_insert_key(track_index, 2.0, 100) animation.length = 2.0 [/gdscript] [csharp] // 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; [/csharp] [/codeblocks] 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 [enum TrackType] to see available types. [b]Note:[/b] For 3D position/rotation/scale, using the dedicated [constant TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] and [constant TYPE_SCALE_3D] track types instead of [constant TYPE_VALUE] is recommended for performance reasons.

type AnimationFindMode

type AnimationFindMode = classdb.AnimationFindMode
const (
	/*Finds the nearest time key.*/
	AnimationFindModeNearest AnimationFindMode = 0
	/*Finds only the key with approximating the time.*/
	AnimationFindModeApprox AnimationFindMode = 1
	/*Finds only the key with matching the time.*/
	AnimationFindModeExact AnimationFindMode = 2
)

type AnimationInterpolationType

type AnimationInterpolationType = classdb.AnimationInterpolationType
const (
	/*No interpolation (nearest value).*/
	AnimationInterpolationNearest AnimationInterpolationType = 0
	/*Linear interpolation.*/
	AnimationInterpolationLinear AnimationInterpolationType = 1
	/*Cubic interpolation. This looks smoother than linear interpolation, but is more expensive to interpolate. Stick to [constant INTERPOLATION_LINEAR] for complex 3D animations imported from external software, even if it requires using a higher animation framerate in return.*/
	AnimationInterpolationCubic AnimationInterpolationType = 2
	/*Linear interpolation with shortest path rotation.
	  [b]Note:[/b] The result value is always normalized and may not match the key value.*/
	AnimationInterpolationLinearAngle AnimationInterpolationType = 3
	/*Cubic interpolation with shortest path rotation.
	  [b]Note:[/b] The result value is always normalized and may not match the key value.*/
	AnimationInterpolationCubicAngle AnimationInterpolationType = 4
)

type AnimationLibrary

type AnimationLibrary = classdb.AnimationLibrary

An animation library stores a set of animations accessible through StringName keys, for use with AnimationPlayer nodes.

type AnimationLoopMode

type AnimationLoopMode = classdb.AnimationLoopMode
const (
	/*At both ends of the animation, the animation will stop playing.*/
	AnimationLoopNone AnimationLoopMode = 0
	/*At both ends of the animation, the animation will be repeated without changing the playback direction.*/
	AnimationLoopLinear AnimationLoopMode = 1
	/*Repeats playback and reverse playback at both ends of the animation.*/
	AnimationLoopPingpong AnimationLoopMode = 2
)

type AnimationLoopedFlag

type AnimationLoopedFlag = classdb.AnimationLoopedFlag
const (
	/*This flag indicates that the animation proceeds without any looping.*/
	AnimationLoopedFlagNone AnimationLoopedFlag = 0
	/*This flag indicates that the animation has reached the end of the animation and just after loop processed.*/
	AnimationLoopedFlagEnd AnimationLoopedFlag = 1
	/*This flag indicates that the animation has reached the start of the animation and just after loop processed.*/
	AnimationLoopedFlagStart AnimationLoopedFlag = 2
)

type AnimationMixer

type AnimationMixer = classdb.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 methods that can be overridden by a [Class] that extends it.
type AnimationMixer interface {
	//A virtual function for processing after key getting during playback.
	PostProcessKeyValue(godot Context, animation Animation, track gd.Int, value gd.Variant, object gd.Object, object_idx gd.Int) gd.Variant
}

type AnimationMixerAnimationCallbackModeMethod

type AnimationMixerAnimationCallbackModeMethod = classdb.AnimationMixerAnimationCallbackModeMethod
const (
	/*Batch method calls during the animation process, then do the calls after events are processed. This avoids bugs involving deleting nodes or modifying the AnimationPlayer while playing.*/
	AnimationMixerAnimationCallbackModeMethodDeferred AnimationMixerAnimationCallbackModeMethod = 0
	/*Make method calls immediately when reached in the animation.*/
	AnimationMixerAnimationCallbackModeMethodImmediate AnimationMixerAnimationCallbackModeMethod = 1
)

type AnimationMixerAnimationCallbackModeProcess

type AnimationMixerAnimationCallbackModeProcess = classdb.AnimationMixerAnimationCallbackModeProcess
const (
	/*Process animation during physics frames (see [constant Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS]). This is especially useful when animating physics bodies.*/
	AnimationMixerAnimationCallbackModeProcessPhysics AnimationMixerAnimationCallbackModeProcess = 0
	/*Process animation during process frames (see [constant Node.NOTIFICATION_INTERNAL_PROCESS]).*/
	AnimationMixerAnimationCallbackModeProcessIdle AnimationMixerAnimationCallbackModeProcess = 1
	/*Do not process animation. Use [method advance] to process the animation manually.*/
	AnimationMixerAnimationCallbackModeProcessManual AnimationMixerAnimationCallbackModeProcess = 2
)

type AnimationNode

type AnimationNode = classdb.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 methods that can be overridden by a [Class] that extends it.
type AnimationNode interface {
	//When inheriting from [AnimationRootNode], implement this virtual method to return all child animation nodes in order as a [code]name: node[/code] dictionary.
	GetChildNodes(godot Context) gd.Dictionary
	//When inheriting from [AnimationRootNode], implement this virtual method to return a list of the properties on this animation node. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. Format is similar to [method Object.get_property_list].
	GetParameterList(godot Context) gd.Array
	//When inheriting from [AnimationRootNode], implement this virtual method to return a child animation node by its [param name].
	GetChildByName(godot Context, name gd.StringName) AnimationNode
	//When inheriting from [AnimationRootNode], implement this virtual method to return the default value of a [param parameter]. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees.
	GetParameterDefaultValue(godot Context, parameter gd.StringName) gd.Variant
	//When inheriting from [AnimationRootNode], implement this virtual method to return whether the [param parameter] is read-only. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees.
	IsParameterReadOnly(godot Context, parameter gd.StringName) bool
	//When inheriting from [AnimationRootNode], implement this virtual method to run some code when this animation node is processed. The [param time] parameter is a relative delta, unless [param seek] is [code]true[/code], in which case it is absolute.
	//Here, call the [method blend_input], [method blend_node] or [method blend_animation] functions. You can also use [method get_parameter] and [method set_parameter] to modify local memory.
	//This function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).
	Process(godot Context, time gd.Float, seek bool, is_external_seeking bool, test_only bool) gd.Float
	//When inheriting from [AnimationRootNode], implement this virtual method to override the text caption for this animation node.
	GetCaption(godot Context) gd.String
	//When inheriting from [AnimationRootNode], implement this virtual method to return whether the blend tree editor should display filter editing on this animation node.
	HasFilter(godot Context) bool
}

type AnimationNodeAdd2

type AnimationNodeAdd2 = classdb.AnimationNodeAdd2

A resource to add to an AnimationNodeBlendTree. Blends two animations additively based on the amount value. If the amount is greater than [code]1.0[/code], the animation connected to "in" port is blended with the amplified animation connected to "add" port. If the amount is less than [code]0.0[/code], the animation connected to "in" port is blended with the inverted animation connected to "add" port.

type AnimationNodeAdd3

type AnimationNodeAdd3 = classdb.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 [code]1.0[/code], the animation connected to "in" port is blended with the amplified animation connected to "-add"/"+add" port.

type AnimationNodeAnimation

type AnimationNodeAnimation = classdb.AnimationNodeAnimation

A resource to add to an AnimationNodeBlendTree. Only has one output port using the [member animation] property. Used as an input for [AnimationNode]s that blend animations together.

type AnimationNodeAnimationPlayMode

type AnimationNodeAnimationPlayMode = classdb.AnimationNodeAnimationPlayMode
const (
	/*Plays animation in forward direction.*/
	AnimationNodeAnimationPlayModeForward AnimationNodeAnimationPlayMode = 0
	/*Plays animation in backward direction.*/
	AnimationNodeAnimationPlayModeBackward AnimationNodeAnimationPlayMode = 1
)

type AnimationNodeBlend2

type AnimationNodeBlend2 = classdb.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 [code][0.0, 1.0][/code] range. Values outside of this range can blend amplified or inverted animations, however, AnimationNodeAdd2 works better for this purpose.

type AnimationNodeBlend3

type AnimationNodeBlend3 = classdb.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 [code][-1.0, 1.0][/code] range. Values outside of this range can blend amplified animations, however, AnimationNodeAdd3 works better for this purpose.

type AnimationNodeBlendSpace1D

type AnimationNodeBlendSpace1D = classdb.AnimationNodeBlendSpace1D

A resource used by AnimationNodeBlendTree. AnimationNodeBlendSpace1D represents a virtual axis on which any type of [AnimationRootNode]s can be added using [method add_blend_point]. Outputs the linear blend of the two [AnimationRootNode]s adjacent to the current value. You can set the extents of the axis with [member min_space] and [member max_space].

type AnimationNodeBlendSpace1DBlendMode

type AnimationNodeBlendSpace1DBlendMode = classdb.AnimationNodeBlendSpace1DBlendMode
const (
	/*The interpolation between animations is linear.*/
	AnimationNodeBlendSpace1DBlendModeInterpolated AnimationNodeBlendSpace1DBlendMode = 0
	/*The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations.*/
	AnimationNodeBlendSpace1DBlendModeDiscrete AnimationNodeBlendSpace1DBlendMode = 1
	/*Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at the last animation's playback position.*/
	AnimationNodeBlendSpace1DBlendModeDiscreteCarry AnimationNodeBlendSpace1DBlendMode = 2
)

type AnimationNodeBlendSpace2D

type AnimationNodeBlendSpace2D = classdb.AnimationNodeBlendSpace2D

A resource used by AnimationNodeBlendTree. AnimationNodeBlendSpace1D represents a virtual 2D space on which [AnimationRootNode]s are placed. Outputs the linear blend of the three adjacent animations using a Vector2 weight. Adjacent in this context means the three [AnimationRootNode]s making up the triangle that contains the current value. You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to triangulate the blend space by hand.

type AnimationNodeBlendSpace2DBlendMode

type AnimationNodeBlendSpace2DBlendMode = classdb.AnimationNodeBlendSpace2DBlendMode
const (
	/*The interpolation between animations is linear.*/
	AnimationNodeBlendSpace2DBlendModeInterpolated AnimationNodeBlendSpace2DBlendMode = 0
	/*The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations.*/
	AnimationNodeBlendSpace2DBlendModeDiscrete AnimationNodeBlendSpace2DBlendMode = 1
	/*Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at the last animation's playback position.*/
	AnimationNodeBlendSpace2DBlendModeDiscreteCarry AnimationNodeBlendSpace2DBlendMode = 2
)

type AnimationNodeBlendTree

type AnimationNodeBlendTree = classdb.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 [code]output[/code] is created by default.

type AnimationNodeFilterAction

type AnimationNodeFilterAction = classdb.AnimationNodeFilterAction
const (
	/*Do not use filtering.*/
	AnimationNodeFilterIgnore AnimationNodeFilterAction = 0
	/*Paths matching the filter will be allowed to pass.*/
	AnimationNodeFilterPass AnimationNodeFilterAction = 1
	/*Paths matching the filter will be discarded.*/
	AnimationNodeFilterStop AnimationNodeFilterAction = 2
	/*Paths matching the filter will be blended (by the blend value).*/
	AnimationNodeFilterBlend AnimationNodeFilterAction = 3
)

type AnimationNodeOneShot

type AnimationNodeOneShot = classdb.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 [code]request[/code] value to [constant ONE_SHOT_REQUEST_NONE]. [codeblocks] [gdscript] # Play child animation connected to "shot" port. animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE) # Alternative syntax (same result as above). animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE

# Abort child animation connected to "shot" port. animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT) # Alternative syntax (same result as above). animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT

# Abort child animation with fading out connected to "shot" port. animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT) # Alternative syntax (same result as above). animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT

# Get current state (read-only). animation_tree.get("parameters/OneShot/active") # Alternative syntax (same result as above). animation_tree["parameters/OneShot/active"]

# Get current internal state (read-only). animation_tree.get("parameters/OneShot/internal_active") # Alternative syntax (same result as above). animation_tree["parameters/OneShot/internal_active"] [/gdscript] [csharp] // 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"); [/csharp] [/codeblocks]

type AnimationNodeOneShotMixMode

type AnimationNodeOneShotMixMode = classdb.AnimationNodeOneShotMixMode
const (
	/*Blends two animations. See also [AnimationNodeBlend2].*/
	AnimationNodeOneShotMixModeBlend AnimationNodeOneShotMixMode = 0
	/*Blends two animations additively. See also [AnimationNodeAdd2].*/
	AnimationNodeOneShotMixModeAdd AnimationNodeOneShotMixMode = 1
)

type AnimationNodeOneShotOneShotRequest

type AnimationNodeOneShotOneShotRequest = classdb.AnimationNodeOneShotOneShotRequest
const (
	/*The default state of the request. Nothing is done.*/
	AnimationNodeOneShotOneShotRequestNone AnimationNodeOneShotOneShotRequest = 0
	/*The request to play the animation connected to "shot" port.*/
	AnimationNodeOneShotOneShotRequestFire AnimationNodeOneShotOneShotRequest = 1
	/*The request to stop the animation connected to "shot" port.*/
	AnimationNodeOneShotOneShotRequestAbort AnimationNodeOneShotOneShotRequest = 2
	/*The request to fade out the animation connected to "shot" port.*/
	AnimationNodeOneShotOneShotRequestFadeOut AnimationNodeOneShotOneShotRequest = 3
)

type AnimationNodeOutput

type AnimationNodeOutput = classdb.AnimationNodeOutput

A node created automatically in an AnimationNodeBlendTree that outputs the final animation.

type AnimationNodeStateMachine

type AnimationNodeStateMachine = classdb.AnimationNodeStateMachine

Contains multiple [AnimationRootNode]s 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. [b]Example:[/b] [codeblocks] [gdscript] var state_machine = $AnimationTree.get("parameters/playback") state_machine.travel("some_state") [/gdscript] [csharp] var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback; stateMachine.Travel("some_state"); [/csharp] [/codeblocks]

type AnimationNodeStateMachinePlayback

type AnimationNodeStateMachinePlayback = classdb.AnimationNodeStateMachinePlayback

Allows control of AnimationTree state machines created with AnimationNodeStateMachine. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code]. [b]Example:[/b] [codeblocks] [gdscript] var state_machine = $AnimationTree.get("parameters/playback") state_machine.travel("some_state") [/gdscript] [csharp] var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback").As<AnimationNodeStateMachinePlayback>(); stateMachine.Travel("some_state"); [/csharp] [/codeblocks]

type AnimationNodeStateMachineStateMachineType

type AnimationNodeStateMachineStateMachineType = classdb.AnimationNodeStateMachineStateMachineType
const (
	/*Seeking to the beginning is treated as playing from the start state. Transition to the end state is treated as exiting the state machine.*/
	AnimationNodeStateMachineStateMachineTypeRoot AnimationNodeStateMachineStateMachineType = 0
	/*Seeking to the beginning is treated as seeking to the beginning of the animation in the current state. Transition to the end state, or the absence of transitions in each state, is treated as exiting the state machine.*/
	AnimationNodeStateMachineStateMachineTypeNested AnimationNodeStateMachineStateMachineType = 1
	/*This is a grouped state machine that can be controlled from a parent state machine. It does not work independently. There must be a state machine with [member state_machine_type] of [constant STATE_MACHINE_TYPE_ROOT] or [constant STATE_MACHINE_TYPE_NESTED] in the parent or ancestor.*/
	AnimationNodeStateMachineStateMachineTypeGrouped AnimationNodeStateMachineStateMachineType = 2
)

type AnimationNodeStateMachineTransition

type AnimationNodeStateMachineTransition = classdb.AnimationNodeStateMachineTransition

The path generated when using [method AnimationNodeStateMachinePlayback.travel] is limited to the nodes connected by AnimationNodeStateMachineTransition. You can set the timing and conditions of the transition in detail.

type AnimationNodeStateMachineTransitionAdvanceMode

type AnimationNodeStateMachineTransitionAdvanceMode = classdb.AnimationNodeStateMachineTransitionAdvanceMode
const (
	/*Don't use this transition.*/
	AnimationNodeStateMachineTransitionAdvanceModeDisabled AnimationNodeStateMachineTransitionAdvanceMode = 0
	/*Only use this transition during [method AnimationNodeStateMachinePlayback.travel].*/
	AnimationNodeStateMachineTransitionAdvanceModeEnabled AnimationNodeStateMachineTransitionAdvanceMode = 1
	/*Automatically use this transition if the [member advance_condition] and [member advance_expression] checks are true (if assigned).*/
	AnimationNodeStateMachineTransitionAdvanceModeAuto AnimationNodeStateMachineTransitionAdvanceMode = 2
)

type AnimationNodeStateMachineTransitionSwitchMode

type AnimationNodeStateMachineTransitionSwitchMode = classdb.AnimationNodeStateMachineTransitionSwitchMode
const (
	/*Switch to the next state immediately. The current state will end and blend into the beginning of the new one.*/
	AnimationNodeStateMachineTransitionSwitchModeImmediate AnimationNodeStateMachineTransitionSwitchMode = 0
	/*Switch to the next state immediately, but will seek the new state to the playback position of the old state.*/
	AnimationNodeStateMachineTransitionSwitchModeSync AnimationNodeStateMachineTransitionSwitchMode = 1
	/*Wait for the current state playback to end, then switch to the beginning of the next state animation.*/
	AnimationNodeStateMachineTransitionSwitchModeAtEnd AnimationNodeStateMachineTransitionSwitchMode = 2
)

type AnimationNodeSub2

type AnimationNodeSub2 = classdb.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 [code][0.0, 1.0][/code] range, but values outside of this range can be used for amplified or inverted animations. [b]Note:[/b] 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.

type AnimationNodeSync

type AnimationNodeSync = classdb.AnimationNodeSync

An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an AnimationTree.

type AnimationNodeTimeScale

type AnimationNodeTimeScale = classdb.AnimationNodeTimeScale

Allows to scale the speed of the animation (or reverse it) in any child [AnimationNode]s. Setting it to [code]0.0[/code] will pause the animation.

type AnimationNodeTimeSeek

type AnimationNodeTimeSeek = classdb.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 [code]seek_request[/code] value to [code]-1.0[/code]. [codeblocks] [gdscript] # Play child animation from the start. animation_tree.set("parameters/TimeSeek/seek_request", 0.0) # Alternative syntax (same result as above). animation_tree["parameters/TimeSeek/seek_request"] = 0.0

# Play child animation from 12 second timestamp. animation_tree.set("parameters/TimeSeek/seek_request", 12.0) # Alternative syntax (same result as above). animation_tree["parameters/TimeSeek/seek_request"] = 12.0 [/gdscript] [csharp] // 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); [/csharp] [/codeblocks]

type AnimationNodeTransition

type AnimationNodeTransition = classdb.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 [code]transition_request[/code] value to empty. [b]Note:[/b] When using a cross-fade, [code]current_state[/code] and [code]current_index[/code] change to the next state immediately after the cross-fade begins. [codeblocks] [gdscript] # Play child animation connected to "state_2" port. animation_tree.set("parameters/Transition/transition_request", "state_2") # Alternative syntax (same result as above). animation_tree["parameters/Transition/transition_request"] = "state_2"

# Get current state name (read-only). animation_tree.get("parameters/Transition/current_state") # Alternative syntax (same result as above). animation_tree["parameters/Transition/current_state"]

# Get current state index (read-only). animation_tree.get("parameters/Transition/current_index") # Alternative syntax (same result as above). animation_tree["parameters/Transition/current_index"] [/gdscript] [csharp] // 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"); [/csharp] [/codeblocks]

type AnimationPlayer

type AnimationPlayer = classdb.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 [code]"movement/run"[/code]. 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.

type AnimationPlayerAnimationMethodCallMode

type AnimationPlayerAnimationMethodCallMode = classdb.AnimationPlayerAnimationMethodCallMode
const (
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_DEFERRED].*/
	AnimationPlayerAnimationMethodCallDeferred AnimationPlayerAnimationMethodCallMode = 0
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE].*/
	AnimationPlayerAnimationMethodCallImmediate AnimationPlayerAnimationMethodCallMode = 1
)

type AnimationPlayerAnimationProcessCallback

type AnimationPlayerAnimationProcessCallback = classdb.AnimationPlayerAnimationProcessCallback
const (
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS].*/
	AnimationPlayerAnimationProcessPhysics AnimationPlayerAnimationProcessCallback = 0
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE].*/
	AnimationPlayerAnimationProcessIdle AnimationPlayerAnimationProcessCallback = 1
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL].*/
	AnimationPlayerAnimationProcessManual AnimationPlayerAnimationProcessCallback = 2
)

type AnimationRootNode

type AnimationRootNode = classdb.AnimationRootNode

AnimationRootNode is a base class for [AnimationNode]s 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 [member AnimationTree.tree_root] or in other [AnimationRootNode]s. 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 [b]three[/b] [AnimationNode]s), AnimationNodeBlendSpace1D (allows linear blending only between [b]two[/b] [AnimationNode]s).

type AnimationTrackType

type AnimationTrackType = classdb.AnimationTrackType
const (
	/*Value tracks set values in node properties, but only those which can be interpolated. For 3D position/rotation/scale, using the dedicated [constant TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] and [constant TYPE_SCALE_3D] track types instead of [constant TYPE_VALUE] is recommended for performance reasons.*/
	AnimationTypeValue AnimationTrackType = 0
	/*3D position track (values are stored in [Vector3]s).*/
	AnimationTypePosition3d AnimationTrackType = 1
	/*3D rotation track (values are stored in [Quaternion]s).*/
	AnimationTypeRotation3d AnimationTrackType = 2
	/*3D scale track (values are stored in [Vector3]s).*/
	AnimationTypeScale3d AnimationTrackType = 3
	/*Blend shape track.*/
	AnimationTypeBlendShape AnimationTrackType = 4
	/*Method tracks call functions with given arguments per key.*/
	AnimationTypeMethod AnimationTrackType = 5
	/*Bezier tracks are used to interpolate a value using custom curves. They can also be used to animate sub-properties of vectors and colors (e.g. alpha value of a [Color]).*/
	AnimationTypeBezier AnimationTrackType = 6
	/*Audio tracks are used to play an audio stream with either type of [AudioStreamPlayer]. The stream can be trimmed and previewed in the animation.*/
	AnimationTypeAudio AnimationTrackType = 7
	/*Animation tracks play animations in other [AnimationPlayer] nodes.*/
	AnimationTypeAnimation AnimationTrackType = 8
)

type AnimationTree

type AnimationTree = classdb.AnimationTree

A node used for advanced animation transitions in an AnimationPlayer. [b]Note:[/b] 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.

type AnimationTreeAnimationProcessCallback

type AnimationTreeAnimationProcessCallback = classdb.AnimationTreeAnimationProcessCallback
const (
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS].*/
	AnimationTreeAnimationProcessPhysics AnimationTreeAnimationProcessCallback = 0
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE].*/
	AnimationTreeAnimationProcessIdle AnimationTreeAnimationProcessCallback = 1
	/*For backward compatibility. See [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL].*/
	AnimationTreeAnimationProcessManual AnimationTreeAnimationProcessCallback = 2
)

type AnimationUpdateMode

type AnimationUpdateMode = classdb.AnimationUpdateMode
const (
	/*Update between keyframes and hold the value.*/
	AnimationUpdateContinuous AnimationUpdateMode = 0
	/*Update at the keyframes.*/
	AnimationUpdateDiscrete AnimationUpdateMode = 1
	/*Same as linear interpolation, but also interpolates from the current value (i.e. dynamically at runtime) if the first key isn't at 0 seconds.*/
	AnimationUpdateCapture AnimationUpdateMode = 2
)

type Area2D

type Area2D = classdb.Area2D

Area2D is a region of 2D space defined by one or multiple CollisionShape2D or CollisionPolygon2D child nodes. It detects when other [CollisionObject2D]s 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.

type Area2DSpaceOverride

type Area2DSpaceOverride = classdb.Area2DSpaceOverride
const (
	/*This area does not affect gravity/damping.*/
	Area2DSpaceOverrideDisabled Area2DSpaceOverride = 0
	/*This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order).*/
	Area2DSpaceOverrideCombine Area2DSpaceOverride = 1
	/*This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order), ignoring any lower priority areas.*/
	Area2DSpaceOverrideCombineReplace Area2DSpaceOverride = 2
	/*This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.*/
	Area2DSpaceOverrideReplace Area2DSpaceOverride = 3
	/*This area replaces any gravity/damping calculated so far (in [member priority] order), but keeps calculating the rest of the areas.*/
	Area2DSpaceOverrideReplaceCombine Area2DSpaceOverride = 4
)

type Area3D

type Area3D = classdb.Area3D

Area3D is a region of 3D space defined by one or multiple CollisionShape3D or CollisionPolygon3D child nodes. It detects when other [CollisionObject3D]s 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. [b]Warning:[/b] Using a ConcavePolygonShape3D inside a CollisionShape3D child of this node (created e.g. by using the [b]Create Trimesh Collision Sibling[/b] option in the [b]Mesh[/b] 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 [ConvexPolygonShape3D]s or primitive shapes like BoxShape3D, or in some cases it may be replaceable by a CollisionPolygon3D.

type Area3DSpaceOverride

type Area3DSpaceOverride = classdb.Area3DSpaceOverride
const (
	/*This area does not affect gravity/damping.*/
	Area3DSpaceOverrideDisabled Area3DSpaceOverride = 0
	/*This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order).*/
	Area3DSpaceOverrideCombine Area3DSpaceOverride = 1
	/*This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order), ignoring any lower priority areas.*/
	Area3DSpaceOverrideCombineReplace Area3DSpaceOverride = 2
	/*This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.*/
	Area3DSpaceOverrideReplace Area3DSpaceOverride = 3
	/*This area replaces any gravity/damping calculated so far (in [member priority] order), but keeps calculating the rest of the areas.*/
	Area3DSpaceOverrideReplaceCombine Area3DSpaceOverride = 4
)

type Array

type Array = gd.Array

type ArrayMesh

type ArrayMesh = classdb.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: [codeblocks] [gdscript] var vertices = PackedVector3Array() vertices.push_back(Vector3(0, 1, 0)) vertices.push_back(Vector3(1, 0, 0)) vertices.push_back(Vector3(0, 0, 1))

# Initialize the ArrayMesh. var arr_mesh = ArrayMesh.new() var arrays = [] arrays.resize(Mesh.ARRAY_MAX) arrays[Mesh.ARRAY_VERTEX] = vertices

# Create the Mesh. arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays) var m = MeshInstance3D.new() m.mesh = arr_mesh [/gdscript] [csharp] 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; [/csharp] [/codeblocks] The MeshInstance3D is ready to be added to the SceneTree to be shown. See also ImmediateMesh, MeshDataTool and SurfaceTool for procedural geometry generation. [b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.

type ArrayOccluder3D

type ArrayOccluder3D = classdb.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.

type ArrayOf

type ArrayOf[T any] interface {
	gd.IsArray
	gd.IsArrayType[T]
	mmm.ManagedPointer[uintptr]

	All(method Callable) bool
	Any(method Callable) bool
	Append(value T)
	AppendArray(array gd.ArrayOf[T])
	Assign(array gd.ArrayOf[T])
	Back(ctx Context) T
	Bsearch(value T, before bool) int64
	BsearchCustom(value T, fn Callable, before bool) int64
	Clear()
	Count(value T) int64
	Duplicate(ctx Context, deep bool) gd.ArrayOf[T]
	Erase(value T)
	Fill(value T)
	Filter(ctx Context, method Callable) gd.ArrayOf[T]
	Find(what T, from int64) int64
	Free()
	Front(ctx Context) T
	GetTypedBuiltin() int64
	GetTypedClassName(ctx Context) StringName
	GetTypedScript(ctx Context) Variant
	Has(value T) bool
	Hash() int64
	Index(ctx Context, index int64) T
	Insert(position int64, value T) int64
	IsEmpty() bool
	IsReadOnly() bool
	IsSameTyped(array Array) bool
	IsTyped() bool
	MakeReadOnly()
	Map(ctx Context, method Callable) gd.ArrayOf[T]
	Max(ctx Context) T
	Min(ctx Context) T
	PickRandom(ctx Context) T
	PopAt(ctx Context, position int64) T
	PopBack(ctx Context) T
	PopFront(ctx Context) T
	PushBack(value T)
	PushFront(value T)
	Reduce(ctx Context, method Callable, accum T) T
	RemoveAt(position int64)
	Resize(size int64) int64
	Reverse()
	Rfind(what T, from int64) int64
	SetIndex(index int64, value T)
	Shuffle()
	Size() int64
	Slice(ctx Context, begin int64, end int64, step int64, deep bool) gd.ArrayOf[T]
	Sort()
	SortCustom(fn Callable)
}

func NewArrayOf

func NewArrayOf[T any](godot Context) ArrayOf[T]

type AspectRatioContainer

type AspectRatioContainer = classdb.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.

type AspectRatioContainerAlignmentMode

type AspectRatioContainerAlignmentMode = classdb.AspectRatioContainerAlignmentMode
const (
	/*Aligns child controls with the beginning (left or top) of the container.*/
	AspectRatioContainerAlignmentBegin AspectRatioContainerAlignmentMode = 0
	/*Aligns child controls with the center of the container.*/
	AspectRatioContainerAlignmentCenter AspectRatioContainerAlignmentMode = 1
	/*Aligns child controls with the end (right or bottom) of the container.*/
	AspectRatioContainerAlignmentEnd AspectRatioContainerAlignmentMode = 2
)

type AspectRatioContainerStretchMode

type AspectRatioContainerStretchMode = classdb.AspectRatioContainerStretchMode
const (
	/*The height of child controls is automatically adjusted based on the width of the container.*/
	AspectRatioContainerStretchWidthControlsHeight AspectRatioContainerStretchMode = 0
	/*The width of child controls is automatically adjusted based on the height of the container.*/
	AspectRatioContainerStretchHeightControlsWidth AspectRatioContainerStretchMode = 1
	/*The bounding rectangle of child controls is automatically adjusted to fit inside the container while keeping the aspect ratio.*/
	AspectRatioContainerStretchFit AspectRatioContainerStretchMode = 2
	/*The width and height of child controls is automatically adjusted to make their bounding rectangle cover the entire area of the container while keeping the aspect ratio.
	  When the bounding rectangle of child controls exceed the container's size and [member Control.clip_contents] is enabled, this allows to show only the container's area restricted by its own bounding rectangle.*/
	AspectRatioContainerStretchCover AspectRatioContainerStretchMode = 3
)

type AtlasTexture

type AtlasTexture = classdb.AtlasTexture

Texture2D resource that draws only part of its [member atlas] texture, as defined by the [member region]. An additional [member margin] can also be set, which is useful for small adjustments. Multiple AtlasTexture resources can be cropped from the same [member atlas]. Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls. [b]Note:[/b] AtlasTexture cannot be used in an AnimatedTexture, and may not tile properly in nodes such as TextureRect, when inside other AtlasTexture resources.

type AudioBusLayout

type AudioBusLayout = classdb.AudioBusLayout

Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See AudioServer for usage.

type AudioEffect

type AudioEffect = classdb.AudioEffect

Base resource for audio bus. Applies an audio effect on the bus that the resource is applied on.

// AudioEffect methods that can be overridden by a [Class] that extends it.
type AudioEffect interface {
	Instantiate(godot Context) AudioEffectInstance
}

type AudioEffectAmplify

type AudioEffectAmplify = classdb.AudioEffectAmplify

Increases or decreases the volume being routed through the audio bus.

type AudioEffectBandLimitFilter

type AudioEffectBandLimitFilter = classdb.AudioEffectBandLimitFilter

Limits the frequencies in a range around the [member AudioEffectFilter.cutoff_hz] and allows frequencies outside of this range to pass.

type AudioEffectBandPassFilter

type AudioEffectBandPassFilter = classdb.AudioEffectBandPassFilter

Attenuates the frequencies inside of a range around the [member AudioEffectFilter.cutoff_hz] and cuts frequencies outside of this band.

type AudioEffectCapture

type AudioEffectCapture = classdb.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 [method get_buffer] 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. [b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be [code]true[/code] for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.

type AudioEffectChorus

type AudioEffectChorus = classdb.AudioEffectChorus

Adds a chorus audio effect. The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter.

type AudioEffectCompressor

type AudioEffectCompressor = classdb.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.

type AudioEffectDelay

type AudioEffectDelay = classdb.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.

type AudioEffectDistortion

type AudioEffectDistortion = classdb.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.

type AudioEffectDistortionMode

type AudioEffectDistortionMode = classdb.AudioEffectDistortionMode
const (
	/*Digital distortion effect which cuts off peaks at the top and bottom of the waveform.*/
	AudioEffectDistortionModeClip AudioEffectDistortionMode = 0
	AudioEffectDistortionModeAtan AudioEffectDistortionMode = 1
	/*Low-resolution digital distortion effect (bit depth reduction). You can use it to emulate the sound of early digital audio devices.*/
	AudioEffectDistortionModeLofi AudioEffectDistortionMode = 2
	/*Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers. The [member drive] property has no effect in this mode.*/
	AudioEffectDistortionModeOverdrive AudioEffectDistortionMode = 3
	/*Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound.*/
	AudioEffectDistortionModeWaveshape AudioEffectDistortionMode = 4
)

type AudioEffectEQ

type AudioEffectEQ = classdb.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).

type AudioEffectEQ10

type AudioEffectEQ10 = classdb.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.

type AudioEffectEQ21

type AudioEffectEQ21 = classdb.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.

type AudioEffectEQ6

type AudioEffectEQ6 = classdb.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.

type AudioEffectFilter

type AudioEffectFilter = classdb.AudioEffectFilter

Allows frequencies other than the [member cutoff_hz] to pass.

type AudioEffectFilterFilterDB

type AudioEffectFilterFilterDB = classdb.AudioEffectFilterFilterDB
const (
	AudioEffectFilterFilter6db  AudioEffectFilterFilterDB = 0
	AudioEffectFilterFilter12db AudioEffectFilterFilterDB = 1
	AudioEffectFilterFilter18db AudioEffectFilterFilterDB = 2
	AudioEffectFilterFilter24db AudioEffectFilterFilterDB = 3
)

type AudioEffectHighPassFilter

type AudioEffectHighPassFilter = classdb.AudioEffectHighPassFilter

Cuts frequencies lower than the [member AudioEffectFilter.cutoff_hz] and allows higher frequencies to pass.

type AudioEffectHighShelfFilter

type AudioEffectHighShelfFilter = classdb.AudioEffectHighShelfFilter

Reduces all frequencies above the [member AudioEffectFilter.cutoff_hz].

type AudioEffectInstance

type AudioEffectInstance = classdb.AudioEffectInstance

type AudioEffectLimiter

type AudioEffectLimiter = classdb.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.

type AudioEffectLowPassFilter

type AudioEffectLowPassFilter = classdb.AudioEffectLowPassFilter

Cuts frequencies higher than the [member AudioEffectFilter.cutoff_hz] and allows lower frequencies to pass.

type AudioEffectLowShelfFilter

type AudioEffectLowShelfFilter = classdb.AudioEffectLowShelfFilter

Reduces all frequencies below the [member AudioEffectFilter.cutoff_hz].

type AudioEffectNotchFilter

type AudioEffectNotchFilter = classdb.AudioEffectNotchFilter

Attenuates frequencies in a narrow band around the [member AudioEffectFilter.cutoff_hz] and cuts frequencies outside of this range.

type AudioEffectPanner

type AudioEffectPanner = classdb.AudioEffectPanner

Determines how much of an audio signal is sent to the left and right buses.

type AudioEffectPhaser

type AudioEffectPhaser = classdb.AudioEffectPhaser

Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a low-frequency oscillator.

type AudioEffectPitchShift

type AudioEffectPitchShift = classdb.AudioEffectPitchShift

Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients.

type AudioEffectPitchShiftFFTSize

type AudioEffectPitchShiftFFTSize = classdb.AudioEffectPitchShiftFFTSize
const (
	/*Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.*/
	AudioEffectPitchShiftFftSize256 AudioEffectPitchShiftFFTSize = 0
	/*Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.*/
	AudioEffectPitchShiftFftSize512 AudioEffectPitchShiftFFTSize = 1
	/*Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.*/
	AudioEffectPitchShiftFftSize1024 AudioEffectPitchShiftFFTSize = 2
	/*Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.*/
	AudioEffectPitchShiftFftSize2048 AudioEffectPitchShiftFFTSize = 3
	/*Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.*/
	AudioEffectPitchShiftFftSize4096 AudioEffectPitchShiftFFTSize = 4
	/*Represents the size of the [enum FFTSize] enum.*/
	AudioEffectPitchShiftFftSizeMax AudioEffectPitchShiftFFTSize = 5
)

type AudioEffectRecord

type AudioEffectRecord = classdb.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.

type AudioEffectReverb

type AudioEffectReverb = classdb.AudioEffectReverb

Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.

type AudioEffectSpectrumAnalyzer

type AudioEffectSpectrumAnalyzer = classdb.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.

type AudioEffectSpectrumAnalyzerFFTSize

type AudioEffectSpectrumAnalyzerFFTSize = classdb.AudioEffectSpectrumAnalyzerFFTSize
const (
	/*Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.*/
	AudioEffectSpectrumAnalyzerFftSize256 AudioEffectSpectrumAnalyzerFFTSize = 0
	/*Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.*/
	AudioEffectSpectrumAnalyzerFftSize512 AudioEffectSpectrumAnalyzerFFTSize = 1
	/*Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.*/
	AudioEffectSpectrumAnalyzerFftSize1024 AudioEffectSpectrumAnalyzerFFTSize = 2
	/*Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.*/
	AudioEffectSpectrumAnalyzerFftSize2048 AudioEffectSpectrumAnalyzerFFTSize = 3
	/*Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.*/
	AudioEffectSpectrumAnalyzerFftSize4096 AudioEffectSpectrumAnalyzerFFTSize = 4
	/*Represents the size of the [enum FFTSize] enum.*/
	AudioEffectSpectrumAnalyzerFftSizeMax AudioEffectSpectrumAnalyzerFFTSize = 5
)

type AudioEffectSpectrumAnalyzerInstance

type AudioEffectSpectrumAnalyzerInstance = classdb.AudioEffectSpectrumAnalyzerInstance

type AudioEffectSpectrumAnalyzerInstanceMagnitudeMode

type AudioEffectSpectrumAnalyzerInstanceMagnitudeMode = classdb.AudioEffectSpectrumAnalyzerInstanceMagnitudeMode
const (
	/*Use the average value as magnitude.*/
	AudioEffectSpectrumAnalyzerInstanceMagnitudeAverage AudioEffectSpectrumAnalyzerInstanceMagnitudeMode = 0
	/*Use the maximum value as magnitude.*/
	AudioEffectSpectrumAnalyzerInstanceMagnitudeMax AudioEffectSpectrumAnalyzerInstanceMagnitudeMode = 1
)

type AudioEffectStereoEnhance

type AudioEffectStereoEnhance = classdb.AudioEffectStereoEnhance

An audio effect that can be used to adjust the intensity of stereo panning.

type AudioListener2D

type AudioListener2D = classdb.AudioListener2D

Once added to the scene tree and enabled using [method make_current], this node will override the location sounds are heard from. Only one AudioListener2D can be current. Using [method make_current] 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.

type AudioListener3D

type AudioListener3D = classdb.AudioListener3D

Once added to the scene tree and enabled using [method make_current], this node will override the location sounds are heard from. This can be used to listen from a location different from the Camera3D.

type AudioServerSpeakerMode

type AudioServerSpeakerMode = classdb.AudioServerSpeakerMode
const (
	/*Two or fewer speakers were detected.*/
	AudioServerSpeakerModeStereo AudioServerSpeakerMode = 0
	/*A 3.1 channel surround setup was detected.*/
	AudioServerSpeakerSurround31 AudioServerSpeakerMode = 1
	/*A 5.1 channel surround setup was detected.*/
	AudioServerSpeakerSurround51 AudioServerSpeakerMode = 2
	/*A 7.1 channel surround setup was detected.*/
	AudioServerSpeakerSurround71 AudioServerSpeakerMode = 3
)

type AudioStream

type AudioStream = classdb.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 methods that can be overridden by a [Class] that extends it.
type AudioStream interface {
	//Override this method to customize the returned value of [method instantiate_playback]. Should returned a new [AudioStreamPlayback] created when the stream is played (such as by an [AudioStreamPlayer])..
	InstantiatePlayback(godot Context) AudioStreamPlayback
	//Override this method to customize the name assigned to this audio stream. Unused by the engine.
	GetStreamName(godot Context) gd.String
	//Override this method to customize the returned value of [method get_length]. Should return the length of this audio stream, in seconds.
	GetLength(godot Context) gd.Float
	//Override this method to customize the returned value of [method is_monophonic]. Should return [code]true[/code] if this audio stream only supports one channel.
	IsMonophonic(godot Context) bool
	//Overridable method. Should return the tempo of this audio stream, in beats per minute (BPM). Used by the engine to determine the position of every beat.
	//Ideally, the returned value should be based off the stream's sample rate ([member AudioStreamWAV.mix_rate], for example).
	GetBpm(godot Context) gd.Float
	//Overridable method. Should return the total number of beats of this audio stream. Used by the engine to determine the position of every beat.
	//Ideally, the returned value should be based off the stream's sample rate ([member AudioStreamWAV.mix_rate], for example).
	GetBeatCount(godot Context) gd.Int
}

type AudioStreamGenerator

type AudioStreamGenerator = classdb.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: [codeblocks] [gdscript] var playback # Will hold the AudioStreamGeneratorPlayback. @onready var sample_hz = $AudioStreamPlayer.stream.mix_rate var pulse_hz = 440.0 # The frequency of the sound wave.

func _ready():

$AudioStreamPlayer.play()
playback = $AudioStreamPlayer.get_stream_playback()
fill_buffer()

func fill_buffer():

var phase = 0.0
var increment = pulse_hz / sample_hz
var frames_available = playback.get_frames_available()

for i in range(frames_available):
    playback.push_frame(Vector2.ONE * sin(phase * TAU))
    phase = fmod(phase + increment, 1.0)

[/gdscript] [csharp] [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);
    }
}

[/csharp] [/codeblocks] In the example above, the "AudioStreamPlayer" node must use an AudioStreamGenerator as its stream. The [code]fill_buffer[/code] function provides audio data for approximating a sine wave. See also AudioEffectSpectrumAnalyzer for performing real-time audio spectrum analysis. [b]Note:[/b] 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 [member mix_rate] such as 11,025 Hz or 22,050 Hz.

type AudioStreamGeneratorPlayback

type AudioStreamGeneratorPlayback = classdb.AudioStreamGeneratorPlayback

This class is meant to be used with AudioStreamGenerator to play back the generated audio in real-time.

type AudioStreamMP3

type AudioStreamMP3 = classdb.AudioStreamMP3

MP3 audio stream driver. See [member data] if you want to load an MP3 file at run-time.

type AudioStreamMicrophone

type AudioStreamMicrophone = classdb.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. [b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be [code]true[/code] for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.

type AudioStreamOggVorbis

type AudioStreamOggVorbis = classdb.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.

type AudioStreamPlayback

type AudioStreamPlayback = classdb.AudioStreamPlayback

Can play, loop, pause a scroll through audio. See AudioStream and AudioStreamOggVorbis for usage.

// AudioStreamPlayback methods that can be overridden by a [Class] that extends it.
type AudioStreamPlayback interface {
	//Override this method to customize what happens when the playback starts at the given position, such as by calling [method AudioStreamPlayer.play].
	Start(godot Context, from_pos gd.Float)
	//Override this method to customize what happens when the playback is stopped, such as by calling [method AudioStreamPlayer.stop].
	Stop(godot Context)
	//Overridable method. Should return [code]true[/code] if this playback is active and playing its audio stream.
	IsPlaying(godot Context) bool
	//Overridable method. Should return how many times this audio stream has looped. Most built-in playbacks always return [code]0[/code].
	GetLoopCount(godot Context) gd.Int
	//Overridable method. Should return the current progress along the audio stream, in seconds.
	GetPlaybackPosition(godot Context) gd.Float
	//Override this method to customize what happens when seeking this audio stream at the given [param position], such as by calling [method AudioStreamPlayer.seek].
	Seek(godot Context, position gd.Float)
	//Override this method to customize how the audio stream is mixed. This method is called even if the playback is not active.
	//[b]Note:[/b] It is not useful to override this method in GDScript or C#. Only GDExtension can take advantage of it.
	Mix(godot Context, buffer *AudioFrame, rate_scale gd.Float, frames gd.Int) gd.Int
	//Overridable method. Called whenever the audio stream is mixed if the playback is active and [method AudioServer.set_enable_tagging_used_audio_streams] has been set to [code]true[/code]. Editor plugins may use this method to "tag" the current position along the audio stream and display it in a preview.
	TagUsedStreams(godot Context)
}

type AudioStreamPlaybackOggVorbis

type AudioStreamPlaybackOggVorbis = classdb.AudioStreamPlaybackOggVorbis

type AudioStreamPlaybackPolyphonic

type AudioStreamPlaybackPolyphonic = classdb.AudioStreamPlaybackPolyphonic

Playback instance for AudioStreamPolyphonic. After setting the [code]stream[/code] property of AudioStreamPlayer, AudioStreamPlayer2D, or AudioStreamPlayer3D, the playback instance can be obtained by calling [method AudioStreamPlayer.get_stream_playback], [method AudioStreamPlayer2D.get_stream_playback] or [method AudioStreamPlayer3D.get_stream_playback] methods.

type AudioStreamPlaybackResampled

type AudioStreamPlaybackResampled = classdb.AudioStreamPlaybackResampled

type AudioStreamPlayer

type AudioStreamPlayer = classdb.AudioStreamPlayer

Plays an audio stream non-positionally. To play audio positionally, use AudioStreamPlayer2D or AudioStreamPlayer3D instead of AudioStreamPlayer.

type AudioStreamPlayer2D

type AudioStreamPlayer2D = classdb.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 [method AudioListener2D.make_current] on it. See also AudioStreamPlayer to play a sound non-positionally. [b]Note:[/b] Hiding an AudioStreamPlayer2D node does not disable its audio output. To temporarily disable an AudioStreamPlayer2D's audio output, set [member volume_db] to a very low value like [code]-100[/code] (which isn't audible to human hearing).

type AudioStreamPlayer3D

type AudioStreamPlayer3D = classdb.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 [member attenuation_filter_cutoff_hz] to [code]20500[/code]. 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 [method AudioListener3D.make_current] on it. See also AudioStreamPlayer to play a sound non-positionally. [b]Note:[/b] Hiding an AudioStreamPlayer3D node does not disable its audio output. To temporarily disable an AudioStreamPlayer3D's audio output, set [member volume_db] to a very low value like [code]-100[/code] (which isn't audible to human hearing).

type AudioStreamPlayer3DAttenuationModel

type AudioStreamPlayer3DAttenuationModel = classdb.AudioStreamPlayer3DAttenuationModel
const (
	/*Attenuation of loudness according to linear distance.*/
	AudioStreamPlayer3DAttenuationInverseDistance AudioStreamPlayer3DAttenuationModel = 0
	/*Attenuation of loudness according to squared distance.*/
	AudioStreamPlayer3DAttenuationInverseSquareDistance AudioStreamPlayer3DAttenuationModel = 1
	/*Attenuation of loudness according to logarithmic distance.*/
	AudioStreamPlayer3DAttenuationLogarithmic AudioStreamPlayer3DAttenuationModel = 2
	/*No attenuation of loudness according to distance. The sound will still be heard positionally, unlike an [AudioStreamPlayer]. [constant ATTENUATION_DISABLED] can be combined with a [member max_distance] value greater than [code]0.0[/code] to achieve linear attenuation clamped to a sphere of a defined size.*/
	AudioStreamPlayer3DAttenuationDisabled AudioStreamPlayer3DAttenuationModel = 3
)

type AudioStreamPlayer3DDopplerTracking

type AudioStreamPlayer3DDopplerTracking = classdb.AudioStreamPlayer3DDopplerTracking
const (
	/*Disables doppler tracking.*/
	AudioStreamPlayer3DDopplerTrackingDisabled AudioStreamPlayer3DDopplerTracking = 0
	/*Executes doppler tracking during process frames (see [constant Node.NOTIFICATION_INTERNAL_PROCESS]).*/
	AudioStreamPlayer3DDopplerTrackingIdleStep AudioStreamPlayer3DDopplerTracking = 1
	/*Executes doppler tracking during physics frames (see [constant Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS]).*/
	AudioStreamPlayer3DDopplerTrackingPhysicsStep AudioStreamPlayer3DDopplerTracking = 2
)

type AudioStreamPlayerMixTarget

type AudioStreamPlayerMixTarget = classdb.AudioStreamPlayerMixTarget
const (
	/*The audio will be played only on the first channel.*/
	AudioStreamPlayerMixTargetStereo AudioStreamPlayerMixTarget = 0
	/*The audio will be played on all surround channels.*/
	AudioStreamPlayerMixTargetSurround AudioStreamPlayerMixTarget = 1
	/*The audio will be played on the second channel, which is usually the center.*/
	AudioStreamPlayerMixTargetCenter AudioStreamPlayerMixTarget = 2
)

type AudioStreamPolyphonic

type AudioStreamPolyphonic = classdb.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 [method AudioStreamPlayer.get_stream_playback], [method AudioStreamPlayer2D.get_stream_playback] or [method AudioStreamPlayer3D.get_stream_playback] methods. Obtaining the playback instance is only valid after the [code]stream[/code] property is set as an AudioStreamPolyphonic in those players.

type AudioStreamRandomizer

type AudioStreamRandomizer = classdb.AudioStreamRandomizer

Picks a random AudioStream from the pool, depending on the playback mode, and applies random pitch shifting and volume shifting during playback.

type AudioStreamRandomizerPlaybackMode

type AudioStreamRandomizerPlaybackMode = classdb.AudioStreamRandomizerPlaybackMode
const (
	/*Pick a stream at random according to the probability weights chosen for each stream, but avoid playing the same stream twice in a row whenever possible. If only 1 sound is present in the pool, the same sound will always play, effectively allowing repeats to occur.*/
	AudioStreamRandomizerPlaybackRandomNoRepeats AudioStreamRandomizerPlaybackMode = 0
	/*Pick a stream at random according to the probability weights chosen for each stream. If only 1 sound is present in the pool, the same sound will always play.*/
	AudioStreamRandomizerPlaybackRandom AudioStreamRandomizerPlaybackMode = 1
	/*Play streams in the order they appear in the stream pool. If only 1 sound is present in the pool, the same sound will always play.*/
	AudioStreamRandomizerPlaybackSequential AudioStreamRandomizerPlaybackMode = 2
)

type AudioStreamWAV

type AudioStreamWAV = classdb.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.

type AudioStreamWAVFormat

type AudioStreamWAVFormat = classdb.AudioStreamWAVFormat
const (
	/*8-bit audio codec.*/
	AudioStreamWAVFormat8Bits AudioStreamWAVFormat = 0
	/*16-bit audio codec.*/
	AudioStreamWAVFormat16Bits AudioStreamWAVFormat = 1
	/*Audio is compressed using IMA ADPCM.*/
	AudioStreamWAVFormatImaAdpcm AudioStreamWAVFormat = 2
)

type AudioStreamWAVLoopMode

type AudioStreamWAVLoopMode = classdb.AudioStreamWAVLoopMode
const (
	/*Audio does not loop.*/
	AudioStreamWAVLoopDisabled AudioStreamWAVLoopMode = 0
	/*Audio loops the data between [member loop_begin] and [member loop_end], playing forward only.*/
	AudioStreamWAVLoopForward AudioStreamWAVLoopMode = 1
	/*Audio loops the data between [member loop_begin] and [member loop_end], playing back and forth.*/
	AudioStreamWAVLoopPingpong AudioStreamWAVLoopMode = 2
	/*Audio loops the data between [member loop_begin] and [member loop_end], playing backward only.*/
	AudioStreamWAVLoopBackward AudioStreamWAVLoopMode = 3
)

type Axis

type Axis int
const (
	X Axis = iota
	Y
	Z
	W
)

type BackBufferCopy

type BackBufferCopy = classdb.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 [member copy_mode]. It can be accessed in shader scripts using the screen texture (i.e. a uniform sampler with [code]hint_screen_texture[/code]). [b]Note:[/b] 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 [i]siblings[/i] to the BackBufferCopy node instead of adding them as children.

type BackBufferCopyCopyMode

type BackBufferCopyCopyMode = classdb.BackBufferCopyCopyMode
const (
	/*Disables the buffering mode. This means the [BackBufferCopy] node will directly use the portion of screen it covers.*/
	BackBufferCopyCopyModeDisabled BackBufferCopyCopyMode = 0
	/*[BackBufferCopy] buffers a rectangular region.*/
	BackBufferCopyCopyModeRect BackBufferCopyCopyMode = 1
	/*[BackBufferCopy] buffers the entire screen.*/
	BackBufferCopyCopyModeViewport BackBufferCopyCopyMode = 2
)

type BaseButton

type BaseButton = classdb.BaseButton

BaseButton is an abstract base class for GUI buttons. It doesn't display anything by itself.

// BaseButton methods that can be overridden by a [Class] that extends it.
type BaseButton interface {
	//Called when the button is pressed. If you need to know the button's pressed state (and [member toggle_mode] is active), use [method _toggled] instead.
	Pressed(godot Context)
	//Called when the button is toggled (only if [member toggle_mode] is active).
	Toggled(godot Context, toggled_on bool)
}

type BaseButtonActionMode

type BaseButtonActionMode = classdb.BaseButtonActionMode
const (
	/*Require just a press to consider the button clicked.*/
	BaseButtonActionModeButtonPress BaseButtonActionMode = 0
	/*Require a press and a subsequent release before considering the button clicked.*/
	BaseButtonActionModeButtonRelease BaseButtonActionMode = 1
)

type BaseButtonDrawMode

type BaseButtonDrawMode = classdb.BaseButtonDrawMode
const (
	/*The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons.*/
	BaseButtonDrawNormal BaseButtonDrawMode = 0
	/*The state of buttons are pressed.*/
	BaseButtonDrawPressed BaseButtonDrawMode = 1
	/*The state of buttons are hovered.*/
	BaseButtonDrawHover BaseButtonDrawMode = 2
	/*The state of buttons are disabled.*/
	BaseButtonDrawDisabled BaseButtonDrawMode = 3
	/*The state of buttons are both hovered and pressed.*/
	BaseButtonDrawHoverPressed BaseButtonDrawMode = 4
)

type BaseMaterial3D

type BaseMaterial3D = classdb.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.

type BaseMaterial3DAlphaAntiAliasing

type BaseMaterial3DAlphaAntiAliasing = classdb.BaseMaterial3DAlphaAntiAliasing
const (
	/*Disables Alpha AntiAliasing for the material.*/
	BaseMaterial3DAlphaAntialiasingOff BaseMaterial3DAlphaAntiAliasing = 0
	/*Enables AlphaToCoverage. Alpha values in the material are passed to the AntiAliasing sample mask.*/
	BaseMaterial3DAlphaAntialiasingAlphaToCoverage BaseMaterial3DAlphaAntiAliasing = 1
	/*Enables AlphaToCoverage and forces all non-zero alpha values to [code]1[/code]. Alpha values in the material are passed to the AntiAliasing sample mask.*/
	BaseMaterial3DAlphaAntialiasingAlphaToCoverageAndToOne BaseMaterial3DAlphaAntiAliasing = 2
)

type BaseMaterial3DBillboardMode

type BaseMaterial3DBillboardMode = classdb.BaseMaterial3DBillboardMode
const (
	/*Billboard mode is disabled.*/
	BaseMaterial3DBillboardDisabled BaseMaterial3DBillboardMode = 0
	/*The object's Z axis will always face the camera.*/
	BaseMaterial3DBillboardEnabled BaseMaterial3DBillboardMode = 1
	/*The object's X axis will always face the camera.*/
	BaseMaterial3DBillboardFixedY BaseMaterial3DBillboardMode = 2
	/*Used for particle systems when assigned to [GPUParticles3D] and [CPUParticles3D] nodes (flipbook animation). Enables [code]particles_anim_*[/code] properties.
	  The [member ParticleProcessMaterial.anim_speed_min] or [member CPUParticles3D.anim_speed_min] should also be set to a value bigger than zero for the animation to play.*/
	BaseMaterial3DBillboardParticles BaseMaterial3DBillboardMode = 3
)

type BaseMaterial3DBlendMode

type BaseMaterial3DBlendMode = classdb.BaseMaterial3DBlendMode
const (
	/*Default blend mode. The color of the object is blended over the background based on the object's alpha value.*/
	BaseMaterial3DBlendModeMix BaseMaterial3DBlendMode = 0
	/*The color of the object is added to the background.*/
	BaseMaterial3DBlendModeAdd BaseMaterial3DBlendMode = 1
	/*The color of the object is subtracted from the background.*/
	BaseMaterial3DBlendModeSub BaseMaterial3DBlendMode = 2
	/*The color of the object is multiplied by the background.*/
	BaseMaterial3DBlendModeMul BaseMaterial3DBlendMode = 3
)

type BaseMaterial3DCullMode

type BaseMaterial3DCullMode = classdb.BaseMaterial3DCullMode
const (
	/*Default cull mode. The back of the object is culled when not visible. Back face triangles will be culled when facing the camera. This results in only the front side of triangles being drawn. For closed-surface meshes, this means that only the exterior of the mesh will be visible.*/
	BaseMaterial3DCullBack BaseMaterial3DCullMode = 0
	/*Front face triangles will be culled when facing the camera. This results in only the back side of triangles being drawn. For closed-surface meshes, this means that the interior of the mesh will be drawn instead of the exterior.*/
	BaseMaterial3DCullFront BaseMaterial3DCullMode = 1
	/*No face culling is performed; both the front face and back face will be visible.*/
	BaseMaterial3DCullDisabled BaseMaterial3DCullMode = 2
)

type BaseMaterial3DDepthDrawMode

type BaseMaterial3DDepthDrawMode = classdb.BaseMaterial3DDepthDrawMode
const (
	/*Default depth draw mode. Depth is drawn only for opaque objects during the opaque prepass (if any) and during the opaque pass.*/
	BaseMaterial3DDepthDrawOpaqueOnly BaseMaterial3DDepthDrawMode = 0
	/*Objects will write to depth during the opaque and the transparent passes. Transparent objects that are close to the camera may obscure other transparent objects behind them.
	  [b]Note:[/b] This does not influence whether transparent objects are included in the depth prepass or not. For that, see [enum Transparency].*/
	BaseMaterial3DDepthDrawAlways BaseMaterial3DDepthDrawMode = 1
	/*Objects will not write their depth to the depth buffer, even during the depth prepass (if enabled).*/
	BaseMaterial3DDepthDrawDisabled BaseMaterial3DDepthDrawMode = 2
)

type BaseMaterial3DDetailUV

type BaseMaterial3DDetailUV = classdb.BaseMaterial3DDetailUV
const (
	/*Use [code]UV[/code] with the detail texture.*/
	BaseMaterial3DDetailUv1 BaseMaterial3DDetailUV = 0
	/*Use [code]UV2[/code] with the detail texture.*/
	BaseMaterial3DDetailUv2 BaseMaterial3DDetailUV = 1
)

type BaseMaterial3DDiffuseMode

type BaseMaterial3DDiffuseMode = classdb.BaseMaterial3DDiffuseMode
const (
	/*Default diffuse scattering algorithm.*/
	BaseMaterial3DDiffuseBurley BaseMaterial3DDiffuseMode = 0
	/*Diffuse scattering ignores roughness.*/
	BaseMaterial3DDiffuseLambert BaseMaterial3DDiffuseMode = 1
	/*Extends Lambert to cover more than 90 degrees when roughness increases.*/
	BaseMaterial3DDiffuseLambertWrap BaseMaterial3DDiffuseMode = 2
	/*Uses a hard cut for lighting, with smoothing affected by roughness.*/
	BaseMaterial3DDiffuseToon BaseMaterial3DDiffuseMode = 3
)

type BaseMaterial3DDistanceFadeMode

type BaseMaterial3DDistanceFadeMode = classdb.BaseMaterial3DDistanceFadeMode
const (
	/*Do not use distance fade.*/
	BaseMaterial3DDistanceFadeDisabled BaseMaterial3DDistanceFadeMode = 0
	/*Smoothly fades the object out based on each pixel's distance from the camera using the alpha channel.*/
	BaseMaterial3DDistanceFadePixelAlpha BaseMaterial3DDistanceFadeMode = 1
	/*Smoothly fades the object out based on each pixel's distance from the camera using a dithering approach. Dithering discards pixels based on a set pattern to smoothly fade without enabling transparency. On certain hardware, this can be faster than [constant DISTANCE_FADE_PIXEL_ALPHA].*/
	BaseMaterial3DDistanceFadePixelDither BaseMaterial3DDistanceFadeMode = 2
	/*Smoothly fades the object out based on the object's distance from the camera using a dithering approach. Dithering discards pixels based on a set pattern to smoothly fade without enabling transparency. On certain hardware, this can be faster than [constant DISTANCE_FADE_PIXEL_ALPHA] and [constant DISTANCE_FADE_PIXEL_DITHER].*/
	BaseMaterial3DDistanceFadeObjectDither BaseMaterial3DDistanceFadeMode = 3
)

type BaseMaterial3DEmissionOperator

type BaseMaterial3DEmissionOperator = classdb.BaseMaterial3DEmissionOperator
const (
	/*Adds the emission color to the color from the emission texture.*/
	BaseMaterial3DEmissionOpAdd BaseMaterial3DEmissionOperator = 0
	/*Multiplies the emission color by the color from the emission texture.*/
	BaseMaterial3DEmissionOpMultiply BaseMaterial3DEmissionOperator = 1
)

type BaseMaterial3DFeature

type BaseMaterial3DFeature = classdb.BaseMaterial3DFeature
const (
	/*Constant for setting [member emission_enabled].*/
	BaseMaterial3DFeatureEmission BaseMaterial3DFeature = 0
	/*Constant for setting [member normal_enabled].*/
	BaseMaterial3DFeatureNormalMapping BaseMaterial3DFeature = 1
	/*Constant for setting [member rim_enabled].*/
	BaseMaterial3DFeatureRim BaseMaterial3DFeature = 2
	/*Constant for setting [member clearcoat_enabled].*/
	BaseMaterial3DFeatureClearcoat BaseMaterial3DFeature = 3
	/*Constant for setting [member anisotropy_enabled].*/
	BaseMaterial3DFeatureAnisotropy BaseMaterial3DFeature = 4
	/*Constant for setting [member ao_enabled].*/
	BaseMaterial3DFeatureAmbientOcclusion BaseMaterial3DFeature = 5
	/*Constant for setting [member heightmap_enabled].*/
	BaseMaterial3DFeatureHeightMapping BaseMaterial3DFeature = 6
	/*Constant for setting [member subsurf_scatter_enabled].*/
	BaseMaterial3DFeatureSubsurfaceScattering BaseMaterial3DFeature = 7
	/*Constant for setting [member subsurf_scatter_transmittance_enabled].*/
	BaseMaterial3DFeatureSubsurfaceTransmittance BaseMaterial3DFeature = 8
	/*Constant for setting [member backlight_enabled].*/
	BaseMaterial3DFeatureBacklight BaseMaterial3DFeature = 9
	/*Constant for setting [member refraction_enabled].*/
	BaseMaterial3DFeatureRefraction BaseMaterial3DFeature = 10
	/*Constant for setting [member detail_enabled].*/
	BaseMaterial3DFeatureDetail BaseMaterial3DFeature = 11
	/*Represents the size of the [enum Feature] enum.*/
	BaseMaterial3DFeatureMax BaseMaterial3DFeature = 12
)

type BaseMaterial3DFlags

type BaseMaterial3DFlags = classdb.BaseMaterial3DFlags
const (
	/*Disables the depth test, so this object is drawn on top of all others drawn before it. This puts the object in the transparent draw pass where it is sorted based on distance to camera. Objects drawn after it in the draw order may cover it. This also disables writing to depth.*/
	BaseMaterial3DFlagDisableDepthTest BaseMaterial3DFlags = 0
	/*Set [code]ALBEDO[/code] to the per-vertex color specified in the mesh.*/
	BaseMaterial3DFlagAlbedoFromVertexColor BaseMaterial3DFlags = 1
	/*Vertex colors are considered to be stored in sRGB color space and are converted to linear color space during rendering. See also [member vertex_color_is_srgb].
	  [b]Note:[/b] Only effective when using the Forward+ and Mobile rendering methods.*/
	BaseMaterial3DFlagSrgbVertexColor BaseMaterial3DFlags = 2
	/*Uses point size to alter the size of primitive points. Also changes the albedo texture lookup to use [code]POINT_COORD[/code] instead of [code]UV[/code].*/
	BaseMaterial3DFlagUsePointSize BaseMaterial3DFlags = 3
	/*Object is scaled by depth so that it always appears the same size on screen.*/
	BaseMaterial3DFlagFixedSize BaseMaterial3DFlags = 4
	/*Shader will keep the scale set for the mesh. Otherwise the scale is lost when billboarding. Only applies when [member billboard_mode] is [constant BILLBOARD_ENABLED].*/
	BaseMaterial3DFlagBillboardKeepScale BaseMaterial3DFlags = 5
	/*Use triplanar texture lookup for all texture lookups that would normally use [code]UV[/code].*/
	BaseMaterial3DFlagUv1UseTriplanar BaseMaterial3DFlags = 6
	/*Use triplanar texture lookup for all texture lookups that would normally use [code]UV2[/code].*/
	BaseMaterial3DFlagUv2UseTriplanar BaseMaterial3DFlags = 7
	/*Use triplanar texture lookup for all texture lookups that would normally use [code]UV[/code].*/
	BaseMaterial3DFlagUv1UseWorldTriplanar BaseMaterial3DFlags = 8
	/*Use triplanar texture lookup for all texture lookups that would normally use [code]UV2[/code].*/
	BaseMaterial3DFlagUv2UseWorldTriplanar BaseMaterial3DFlags = 9
	/*Use [code]UV2[/code] coordinates to look up from the [member ao_texture].*/
	BaseMaterial3DFlagAoOnUv2 BaseMaterial3DFlags = 10
	/*Use [code]UV2[/code] coordinates to look up from the [member emission_texture].*/
	BaseMaterial3DFlagEmissionOnUv2 BaseMaterial3DFlags = 11
	/*Forces the shader to convert albedo from sRGB space to linear space. See also [member albedo_texture_force_srgb].*/
	BaseMaterial3DFlagAlbedoTextureForceSrgb BaseMaterial3DFlags = 12
	/*Disables receiving shadows from other objects.*/
	BaseMaterial3DFlagDontReceiveShadows BaseMaterial3DFlags = 13
	/*Disables receiving ambient light.*/
	BaseMaterial3DFlagDisableAmbientLight BaseMaterial3DFlags = 14
	/*Enables the shadow to opacity feature.*/
	BaseMaterial3DFlagUseShadowToOpacity BaseMaterial3DFlags = 15
	/*Enables the texture to repeat when UV coordinates are outside the 0-1 range. If using one of the linear filtering modes, this can result in artifacts at the edges of a texture when the sampler filters across the edges of the texture.*/
	BaseMaterial3DFlagUseTextureRepeat BaseMaterial3DFlags = 16
	/*Invert values read from a depth texture to convert them to height values (heightmap).*/
	BaseMaterial3DFlagInvertHeightmap BaseMaterial3DFlags = 17
	/*Enables the skin mode for subsurface scattering which is used to improve the look of subsurface scattering when used for human skin.*/
	BaseMaterial3DFlagSubsurfaceModeSkin BaseMaterial3DFlags = 18
	/*Enables parts of the shader required for [GPUParticles3D] trails to function. This also requires using a mesh with appropriate skinning, such as [RibbonTrailMesh] or [TubeTrailMesh]. Enabling this feature outside of materials used in [GPUParticles3D] meshes will break material rendering.*/
	BaseMaterial3DFlagParticleTrailsMode BaseMaterial3DFlags = 19
	/*Enables multichannel signed distance field rendering shader.*/
	BaseMaterial3DFlagAlbedoTextureMsdf BaseMaterial3DFlags = 20
	/*Disables receiving depth-based or volumetric fog.*/
	BaseMaterial3DFlagDisableFog BaseMaterial3DFlags = 21
	/*Represents the size of the [enum Flags] enum.*/
	BaseMaterial3DFlagMax BaseMaterial3DFlags = 22
)

type BaseMaterial3DShadingMode

type BaseMaterial3DShadingMode = classdb.BaseMaterial3DShadingMode
const (
	/*The object will not receive shadows. This is the fastest to render, but it disables all interactions with lights.*/
	BaseMaterial3DShadingModeUnshaded BaseMaterial3DShadingMode = 0
	/*The object will be shaded per pixel. Useful for realistic shading effects.*/
	BaseMaterial3DShadingModePerPixel BaseMaterial3DShadingMode = 1
	/*The object will be shaded per vertex. Useful when you want cheaper shaders and do not care about visual quality. Not implemented yet (this mode will act like [constant SHADING_MODE_PER_PIXEL]).*/
	BaseMaterial3DShadingModePerVertex BaseMaterial3DShadingMode = 2
	/*Represents the size of the [enum ShadingMode] enum.*/
	BaseMaterial3DShadingModeMax BaseMaterial3DShadingMode = 3
)

type BaseMaterial3DSpecularMode

type BaseMaterial3DSpecularMode = classdb.BaseMaterial3DSpecularMode
const (
	/*Default specular blob.*/
	BaseMaterial3DSpecularSchlickGgx BaseMaterial3DSpecularMode = 0
	/*Toon blob which changes size based on roughness.*/
	BaseMaterial3DSpecularToon BaseMaterial3DSpecularMode = 1
	/*No specular blob. This is slightly faster to render than other specular modes.*/
	BaseMaterial3DSpecularDisabled BaseMaterial3DSpecularMode = 2
)

type BaseMaterial3DTextureChannel

type BaseMaterial3DTextureChannel = classdb.BaseMaterial3DTextureChannel
const (
	/*Used to read from the red channel of a texture.*/
	BaseMaterial3DTextureChannelRed BaseMaterial3DTextureChannel = 0
	/*Used to read from the green channel of a texture.*/
	BaseMaterial3DTextureChannelGreen BaseMaterial3DTextureChannel = 1
	/*Used to read from the blue channel of a texture.*/
	BaseMaterial3DTextureChannelBlue BaseMaterial3DTextureChannel = 2
	/*Used to read from the alpha channel of a texture.*/
	BaseMaterial3DTextureChannelAlpha BaseMaterial3DTextureChannel = 3
	/*Used to read from the linear (non-perceptual) average of the red, green and blue channels of a texture.*/
	BaseMaterial3DTextureChannelGrayscale BaseMaterial3DTextureChannel = 4
)

type BaseMaterial3DTextureFilter

type BaseMaterial3DTextureFilter = classdb.BaseMaterial3DTextureFilter
const (
	/*The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	BaseMaterial3DTextureFilterNearest BaseMaterial3DTextureFilter = 0
	/*The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	BaseMaterial3DTextureFilterLinear BaseMaterial3DTextureFilter = 1
	/*The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look pixelated from up close, and smooth from a distance.*/
	BaseMaterial3DTextureFilterNearestWithMipmaps BaseMaterial3DTextureFilter = 2
	/*The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look smooth from up close, and smooth from a distance.*/
	BaseMaterial3DTextureFilterLinearWithMipmaps BaseMaterial3DTextureFilter = 3
	/*The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look pixelated from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].*/
	BaseMaterial3DTextureFilterNearestWithMipmapsAnisotropic BaseMaterial3DTextureFilter = 4
	/*The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look smooth from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].*/
	BaseMaterial3DTextureFilterLinearWithMipmapsAnisotropic BaseMaterial3DTextureFilter = 5
	/*Represents the size of the [enum TextureFilter] enum.*/
	BaseMaterial3DTextureFilterMax BaseMaterial3DTextureFilter = 6
)

type BaseMaterial3DTextureParam

type BaseMaterial3DTextureParam = classdb.BaseMaterial3DTextureParam
const (
	/*Texture specifying per-pixel color.*/
	BaseMaterial3DTextureAlbedo BaseMaterial3DTextureParam = 0
	/*Texture specifying per-pixel metallic value.*/
	BaseMaterial3DTextureMetallic BaseMaterial3DTextureParam = 1
	/*Texture specifying per-pixel roughness value.*/
	BaseMaterial3DTextureRoughness BaseMaterial3DTextureParam = 2
	/*Texture specifying per-pixel emission color.*/
	BaseMaterial3DTextureEmission BaseMaterial3DTextureParam = 3
	/*Texture specifying per-pixel normal vector.*/
	BaseMaterial3DTextureNormal BaseMaterial3DTextureParam = 4
	/*Texture specifying per-pixel rim value.*/
	BaseMaterial3DTextureRim BaseMaterial3DTextureParam = 5
	/*Texture specifying per-pixel clearcoat value.*/
	BaseMaterial3DTextureClearcoat BaseMaterial3DTextureParam = 6
	/*Texture specifying per-pixel flowmap direction for use with [member anisotropy].*/
	BaseMaterial3DTextureFlowmap BaseMaterial3DTextureParam = 7
	/*Texture specifying per-pixel ambient occlusion value.*/
	BaseMaterial3DTextureAmbientOcclusion BaseMaterial3DTextureParam = 8
	/*Texture specifying per-pixel height.*/
	BaseMaterial3DTextureHeightmap BaseMaterial3DTextureParam = 9
	/*Texture specifying per-pixel subsurface scattering.*/
	BaseMaterial3DTextureSubsurfaceScattering BaseMaterial3DTextureParam = 10
	/*Texture specifying per-pixel transmittance for subsurface scattering.*/
	BaseMaterial3DTextureSubsurfaceTransmittance BaseMaterial3DTextureParam = 11
	/*Texture specifying per-pixel backlight color.*/
	BaseMaterial3DTextureBacklight BaseMaterial3DTextureParam = 12
	/*Texture specifying per-pixel refraction strength.*/
	BaseMaterial3DTextureRefraction BaseMaterial3DTextureParam = 13
	/*Texture specifying per-pixel detail mask blending value.*/
	BaseMaterial3DTextureDetailMask BaseMaterial3DTextureParam = 14
	/*Texture specifying per-pixel detail color.*/
	BaseMaterial3DTextureDetailAlbedo BaseMaterial3DTextureParam = 15
	/*Texture specifying per-pixel detail normal.*/
	BaseMaterial3DTextureDetailNormal BaseMaterial3DTextureParam = 16
	/*Texture holding ambient occlusion, roughness, and metallic.*/
	BaseMaterial3DTextureOrm BaseMaterial3DTextureParam = 17
	/*Represents the size of the [enum TextureParam] enum.*/
	BaseMaterial3DTextureMax BaseMaterial3DTextureParam = 18
)

type BaseMaterial3DTransparency

type BaseMaterial3DTransparency = classdb.BaseMaterial3DTransparency
const (
	/*The material will not use transparency. This is the fastest to render.*/
	BaseMaterial3DTransparencyDisabled BaseMaterial3DTransparency = 0
	/*The material will use the texture's alpha values for transparency. This is the slowest to render, and disables shadow casting.*/
	BaseMaterial3DTransparencyAlpha BaseMaterial3DTransparency = 1
	/*The material will cut off all values below a threshold, the rest will remain opaque. The opaque portions will be rendered in the depth prepass. This is faster to render than alpha blending, but slower than opaque rendering. This also supports casting shadows.*/
	BaseMaterial3DTransparencyAlphaScissor BaseMaterial3DTransparency = 2
	/*The material will cut off all values below a spatially-deterministic threshold, the rest will remain opaque. This is faster to render than alpha blending, but slower than opaque rendering. This also supports casting shadows. Alpha hashing is suited for hair rendering.*/
	BaseMaterial3DTransparencyAlphaHash BaseMaterial3DTransparency = 3
	/*The material will use the texture's alpha value for transparency, but will discard fragments with an alpha of less than 0.99 during the depth prepass and fragments with an alpha less than 0.1 during the shadow pass. This also supports casting shadows.*/
	BaseMaterial3DTransparencyAlphaDepthPrePass BaseMaterial3DTransparency = 4
	/*Represents the size of the [enum Transparency] enum.*/
	BaseMaterial3DTransparencyMax BaseMaterial3DTransparency = 5
)

type Basis

type Basis = gd.Basis

func NewBasisRotatedAround

func NewBasisRotatedAround(axis Vector3, angle Radians) Basis

NewBasisRotatedAround constructs a pure rotation basis matrix, rotated around the given axis by angle (in radians). The axis must be a normalized vector.

func NewBasisScaledBy

func NewBasisScaledBy(scale Vector3) Basis

NewBasisScaledBy constructs a pure scale basis matrix with no rotation or shearing. The scale values are set as the diagonal of the matrix, and the other parts of the matrix are zero.

type BitMap

type BitMap = classdb.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.

type Bone2D

type Bone2D = classdb.Bone2D

A hierarchy of [Bone2D]s 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 [member rest] transform that you can reset to with [method apply_rest]. 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.

type BoneAttachment3D

type BoneAttachment3D = classdb.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.

type BoneMap

type BoneMap = classdb.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.

type Bool

type Bool = gd.Bool

type BoxContainer

type BoxContainer = classdb.BoxContainer

A container that arranges its child controls horizontally or vertically, rearranging them automatically when their minimum size changes.

type BoxContainerAlignmentMode

type BoxContainerAlignmentMode = classdb.BoxContainerAlignmentMode
const (
	/*The child controls will be arranged at the beginning of the container, i.e. top if orientation is vertical, left if orientation is horizontal (right for RTL layout).*/
	BoxContainerAlignmentBegin BoxContainerAlignmentMode = 0
	/*The child controls will be centered in the container.*/
	BoxContainerAlignmentCenter BoxContainerAlignmentMode = 1
	/*The child controls will be arranged at the end of the container, i.e. bottom if orientation is vertical, right if orientation is horizontal (left for RTL layout).*/
	BoxContainerAlignmentEnd BoxContainerAlignmentMode = 2
)

type BoxMesh

type BoxMesh = classdb.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 [code]Vector3(3, 2, 1)[/code]. This is equivalent to adding [code]UV *= vec2(3.0, 2.0)[/code] in a vertex shader. [b]Note:[/b] 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 [member subdivide_depth], [member subdivide_height] and [member subdivide_width] until you no longer notice UV jittering.

type BoxOccluder3D

type BoxOccluder3D = classdb.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.

type BoxShape3D

type BoxShape3D = classdb.BoxShape3D

A 3D box shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. [b]Performance:[/b] BoxShape3D is fast to check collisions against. It is faster than CapsuleShape3D and CylinderShape3D, but slower than SphereShape3D.

type Button

type Button = classdb.Button

Button is the standard themed button. It can contain text and an icon, and it will display them according to the current Theme. [b]Example of creating a button and assigning an action when pressed by code:[/b] [codeblocks] [gdscript] func _ready():

var button = Button.new()
button.text = "Click me"
button.pressed.connect(self._button_pressed)
add_child(button)

func _button_pressed():

print("Hello world!")

[/gdscript] [csharp] public override void _Ready()

{
    var button = new Button();
    button.Text = "Click me";
    button.Pressed += ButtonPressed;
    AddChild(button);
}

private void ButtonPressed()

{
    GD.Print("Hello world!");
}

[/csharp] [/codeblocks] See also BaseButton which contains common properties and methods associated with this node. [b]Note:[/b] 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.

type ButtonGroup

type ButtonGroup = classdb.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 [member BaseButton.toggle_mode] set to [code]true[/code].

type CPUParticles2D

type CPUParticles2D = classdb.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.

type CPUParticles2DDrawOrder

type CPUParticles2DDrawOrder = classdb.CPUParticles2DDrawOrder
const (
	/*Particles are drawn in the order emitted.*/
	CPUParticles2DDrawOrderIndex CPUParticles2DDrawOrder = 0
	/*Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front.*/
	CPUParticles2DDrawOrderLifetime CPUParticles2DDrawOrder = 1
)

type CPUParticles2DEmissionShape

type CPUParticles2DEmissionShape = classdb.CPUParticles2DEmissionShape
const (
	/*All particles will be emitted from a single point.*/
	CPUParticles2DEmissionShapePoint CPUParticles2DEmissionShape = 0
	/*Particles will be emitted in the volume of a sphere flattened to two dimensions.*/
	CPUParticles2DEmissionShapeSphere CPUParticles2DEmissionShape = 1
	/*Particles will be emitted on the surface of a sphere flattened to two dimensions.*/
	CPUParticles2DEmissionShapeSphereSurface CPUParticles2DEmissionShape = 2
	/*Particles will be emitted in the area of a rectangle.*/
	CPUParticles2DEmissionShapeRectangle CPUParticles2DEmissionShape = 3
	/*Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors].*/
	CPUParticles2DEmissionShapePoints CPUParticles2DEmissionShape = 4
	/*Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].*/
	CPUParticles2DEmissionShapeDirectedPoints CPUParticles2DEmissionShape = 5
	/*Represents the size of the [enum EmissionShape] enum.*/
	CPUParticles2DEmissionShapeMax CPUParticles2DEmissionShape = 6
)

type CPUParticles2DParameter

type CPUParticles2DParameter = classdb.CPUParticles2DParameter
const (
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set initial velocity properties.*/
	CPUParticles2DParamInitialLinearVelocity CPUParticles2DParameter = 0
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angular velocity properties.*/
	CPUParticles2DParamAngularVelocity CPUParticles2DParameter = 1
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set orbital velocity properties.*/
	CPUParticles2DParamOrbitVelocity CPUParticles2DParameter = 2
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set linear acceleration properties.*/
	CPUParticles2DParamLinearAccel CPUParticles2DParameter = 3
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set radial acceleration properties.*/
	CPUParticles2DParamRadialAccel CPUParticles2DParameter = 4
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set tangential acceleration properties.*/
	CPUParticles2DParamTangentialAccel CPUParticles2DParameter = 5
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set damping properties.*/
	CPUParticles2DParamDamping CPUParticles2DParameter = 6
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angle properties.*/
	CPUParticles2DParamAngle CPUParticles2DParameter = 7
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set scale properties.*/
	CPUParticles2DParamScale CPUParticles2DParameter = 8
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set hue variation properties.*/
	CPUParticles2DParamHueVariation CPUParticles2DParameter = 9
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation speed properties.*/
	CPUParticles2DParamAnimSpeed CPUParticles2DParameter = 10
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation offset properties.*/
	CPUParticles2DParamAnimOffset CPUParticles2DParameter = 11
	/*Represents the size of the [enum Parameter] enum.*/
	CPUParticles2DParamMax CPUParticles2DParameter = 12
)

type CPUParticles2DParticleFlags

type CPUParticles2DParticleFlags = classdb.CPUParticles2DParticleFlags
const (
	/*Use with [method set_particle_flag] to set [member particle_flag_align_y].*/
	CPUParticles2DParticleFlagAlignYToVelocity CPUParticles2DParticleFlags = 0
	/*Present for consistency with 3D particle nodes, not used in 2D.*/
	CPUParticles2DParticleFlagRotateY CPUParticles2DParticleFlags = 1
	/*Present for consistency with 3D particle nodes, not used in 2D.*/
	CPUParticles2DParticleFlagDisableZ CPUParticles2DParticleFlags = 2
	/*Represents the size of the [enum ParticleFlags] enum.*/
	CPUParticles2DParticleFlagMax CPUParticles2DParticleFlags = 3
)

type CPUParticles3D

type CPUParticles3D = classdb.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.

type CPUParticles3DDrawOrder

type CPUParticles3DDrawOrder = classdb.CPUParticles3DDrawOrder
const (
	/*Particles are drawn in the order emitted.*/
	CPUParticles3DDrawOrderIndex CPUParticles3DDrawOrder = 0
	/*Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front.*/
	CPUParticles3DDrawOrderLifetime CPUParticles3DDrawOrder = 1
	/*Particles are drawn in order of depth.*/
	CPUParticles3DDrawOrderViewDepth CPUParticles3DDrawOrder = 2
)

type CPUParticles3DEmissionShape

type CPUParticles3DEmissionShape = classdb.CPUParticles3DEmissionShape
const (
	/*All particles will be emitted from a single point.*/
	CPUParticles3DEmissionShapePoint CPUParticles3DEmissionShape = 0
	/*Particles will be emitted in the volume of a sphere.*/
	CPUParticles3DEmissionShapeSphere CPUParticles3DEmissionShape = 1
	/*Particles will be emitted on the surface of a sphere.*/
	CPUParticles3DEmissionShapeSphereSurface CPUParticles3DEmissionShape = 2
	/*Particles will be emitted in the volume of a box.*/
	CPUParticles3DEmissionShapeBox CPUParticles3DEmissionShape = 3
	/*Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors].*/
	CPUParticles3DEmissionShapePoints CPUParticles3DEmissionShape = 4
	/*Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].*/
	CPUParticles3DEmissionShapeDirectedPoints CPUParticles3DEmissionShape = 5
	/*Particles will be emitted in a ring or cylinder.*/
	CPUParticles3DEmissionShapeRing CPUParticles3DEmissionShape = 6
	/*Represents the size of the [enum EmissionShape] enum.*/
	CPUParticles3DEmissionShapeMax CPUParticles3DEmissionShape = 7
)

type CPUParticles3DParameter

type CPUParticles3DParameter = classdb.CPUParticles3DParameter
const (
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set initial velocity properties.*/
	CPUParticles3DParamInitialLinearVelocity CPUParticles3DParameter = 0
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angular velocity properties.*/
	CPUParticles3DParamAngularVelocity CPUParticles3DParameter = 1
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set orbital velocity properties.*/
	CPUParticles3DParamOrbitVelocity CPUParticles3DParameter = 2
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set linear acceleration properties.*/
	CPUParticles3DParamLinearAccel CPUParticles3DParameter = 3
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set radial acceleration properties.*/
	CPUParticles3DParamRadialAccel CPUParticles3DParameter = 4
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set tangential acceleration properties.*/
	CPUParticles3DParamTangentialAccel CPUParticles3DParameter = 5
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set damping properties.*/
	CPUParticles3DParamDamping CPUParticles3DParameter = 6
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angle properties.*/
	CPUParticles3DParamAngle CPUParticles3DParameter = 7
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set scale properties.*/
	CPUParticles3DParamScale CPUParticles3DParameter = 8
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set hue variation properties.*/
	CPUParticles3DParamHueVariation CPUParticles3DParameter = 9
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation speed properties.*/
	CPUParticles3DParamAnimSpeed CPUParticles3DParameter = 10
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation offset properties.*/
	CPUParticles3DParamAnimOffset CPUParticles3DParameter = 11
	/*Represents the size of the [enum Parameter] enum.*/
	CPUParticles3DParamMax CPUParticles3DParameter = 12
)

type CPUParticles3DParticleFlags

type CPUParticles3DParticleFlags = classdb.CPUParticles3DParticleFlags
const (
	/*Use with [method set_particle_flag] to set [member particle_flag_align_y].*/
	CPUParticles3DParticleFlagAlignYToVelocity CPUParticles3DParticleFlags = 0
	/*Use with [method set_particle_flag] to set [member particle_flag_rotate_y].*/
	CPUParticles3DParticleFlagRotateY CPUParticles3DParticleFlags = 1
	/*Use with [method set_particle_flag] to set [member particle_flag_disable_z].*/
	CPUParticles3DParticleFlagDisableZ CPUParticles3DParticleFlags = 2
	/*Represents the size of the [enum ParticleFlags] enum.*/
	CPUParticles3DParticleFlagMax CPUParticles3DParticleFlags = 3
)

type CSGBox3D

type CSGBox3D = classdb.CSGBox3D

This node allows you to create a box for use with the CSG system. [b]Note:[/b] 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.

type CSGCombiner3D

type CSGCombiner3D = classdb.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. [b]Note:[/b] 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.

type CSGCylinder3D

type CSGCylinder3D = classdb.CSGCylinder3D

This node allows you to create a cylinder (or cone) for use with the CSG system. [b]Note:[/b] 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.

type CSGMesh3D

type CSGMesh3D = classdb.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. [b]Note:[/b] 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.

type CSGPolygon3D

type CSGPolygon3D = classdb.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. [b]Note:[/b] 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.

type CSGPolygon3DMode

type CSGPolygon3DMode = classdb.CSGPolygon3DMode
const (
	/*The [member polygon] shape is extruded along the negative Z axis.*/
	CSGPolygon3DModeDepth CSGPolygon3DMode = 0
	/*The [member polygon] shape is extruded by rotating it around the Y axis.*/
	CSGPolygon3DModeSpin CSGPolygon3DMode = 1
	/*The [member polygon] shape is extruded along the [Path3D] specified in [member path_node].*/
	CSGPolygon3DModePath CSGPolygon3DMode = 2
)

type CSGPolygon3DPathIntervalType

type CSGPolygon3DPathIntervalType = classdb.CSGPolygon3DPathIntervalType
const (
	/*When [member mode] is set to [constant MODE_PATH], [member path_interval] will determine the distance, in meters, each interval of the path will extrude.*/
	CSGPolygon3DPathIntervalDistance CSGPolygon3DPathIntervalType = 0
	/*When [member mode] is set to [constant MODE_PATH], [member path_interval] will subdivide the polygons along the path.*/
	CSGPolygon3DPathIntervalSubdivide CSGPolygon3DPathIntervalType = 1
)

type CSGPolygon3DPathRotation

type CSGPolygon3DPathRotation = classdb.CSGPolygon3DPathRotation
const (
	/*The [member polygon] shape is not rotated.
	  [b]Note:[/b] Requires the path Z coordinates to continually decrease to ensure viable shapes.*/
	CSGPolygon3DPathRotationPolygon CSGPolygon3DPathRotation = 0
	/*The [member polygon] shape is rotated along the path, but it is not rotated around the path axis.
	  [b]Note:[/b] Requires the path Z coordinates to continually decrease to ensure viable shapes.*/
	CSGPolygon3DPathRotationPath CSGPolygon3DPathRotation = 1
	/*The [member polygon] shape follows the path and its rotations around the path axis.*/
	CSGPolygon3DPathRotationPathFollow CSGPolygon3DPathRotation = 2
)

type CSGPrimitive3D

type CSGPrimitive3D = classdb.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. [b]Note:[/b] 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.

type CSGShape3D

type CSGShape3D = classdb.CSGShape3D

This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot. [b]Note:[/b] 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.

type CSGShape3DOperation

type CSGShape3DOperation = classdb.CSGShape3DOperation
const (
	/*Geometry of both primitives is merged, intersecting geometry is removed.*/
	CSGShape3DOperationUnion CSGShape3DOperation = 0
	/*Only intersecting geometry remains, the rest is removed.*/
	CSGShape3DOperationIntersection CSGShape3DOperation = 1
	/*The second shape is subtracted from the first, leaving a dent with its shape.*/
	CSGShape3DOperationSubtraction CSGShape3DOperation = 2
)

type CSGSphere3D

type CSGSphere3D = classdb.CSGSphere3D

This node allows you to create a sphere for use with the CSG system. [b]Note:[/b] 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.

type CSGTorus3D

type CSGTorus3D = classdb.CSGTorus3D

This node allows you to create a torus for use with the CSG system. [b]Note:[/b] 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.

type Callable

type Callable = gd.Callable

type CallbackTweener

type CallbackTweener = classdb.CallbackTweener

CallbackTweener is used to call a method in a tweening sequence. See [method Tween.tween_callback] for more usage information. The tweener will finish automatically if the callback's target object is freed. [b]Note:[/b] [method Tween.tween_callback] is the only correct way to create CallbackTweener. Any CallbackTweener created manually will not function correctly.

type Camera2D

type Camera2D = classdb.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 [member Viewport.canvas_transform] in Viewport (you can obtain the current Viewport by using [method Node.get_viewport]). Note that the Camera2D node's [code]position[/code] doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use [method get_screen_center_position] to get the real position.

type Camera2DAnchorMode

type Camera2DAnchorMode = classdb.Camera2DAnchorMode
const (
	/*The camera's position is fixed so that the top-left corner is always at the origin.*/
	Camera2DAnchorModeFixedTopLeft Camera2DAnchorMode = 0
	/*The camera's position takes into account vertical/horizontal offsets and the screen size.*/
	Camera2DAnchorModeDragCenter Camera2DAnchorMode = 1
)

type Camera2DCamera2DProcessCallback

type Camera2DCamera2DProcessCallback = classdb.Camera2DCamera2DProcessCallback
const (
	/*The camera updates during physics frames (see [constant Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS]).*/
	Camera2DCamera2dProcessPhysics Camera2DCamera2DProcessCallback = 0
	/*The camera updates during process frames (see [constant Node.NOTIFICATION_INTERNAL_PROCESS]).*/
	Camera2DCamera2dProcessIdle Camera2DCamera2DProcessCallback = 1
)

type Camera3D

type Camera3D = classdb.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.

type Camera3DDopplerTracking

type Camera3DDopplerTracking = classdb.Camera3DDopplerTracking
const (
	/*Disables [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] simulation (default).*/
	Camera3DDopplerTrackingDisabled Camera3DDopplerTracking = 0
	/*Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] by tracking positions of objects that are changed in [code]_process[/code]. Changes in the relative velocity of this camera compared to those objects affect how audio is perceived (changing the audio's [member AudioStreamPlayer3D.pitch_scale]).*/
	Camera3DDopplerTrackingIdleStep Camera3DDopplerTracking = 1
	/*Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] by tracking positions of objects that are changed in [code]_physics_process[/code]. Changes in the relative velocity of this camera compared to those objects affect how audio is perceived (changing the audio's [member AudioStreamPlayer3D.pitch_scale]).*/
	Camera3DDopplerTrackingPhysicsStep Camera3DDopplerTracking = 2
)

type Camera3DKeepAspect

type Camera3DKeepAspect = classdb.Camera3DKeepAspect
const (
	/*Preserves the horizontal aspect ratio; also known as Vert- scaling. This is usually the best option for projects running in portrait mode, as taller aspect ratios will benefit from a wider vertical FOV.*/
	Camera3DKeepWidth Camera3DKeepAspect = 0
	/*Preserves the vertical aspect ratio; also known as Hor+ scaling. This is usually the best option for projects running in landscape mode, as wider aspect ratios will automatically benefit from a wider horizontal FOV.*/
	Camera3DKeepHeight Camera3DKeepAspect = 1
)

type Camera3DProjectionType

type Camera3DProjectionType = classdb.Camera3DProjectionType
const (
	/*Perspective projection. Objects on the screen becomes smaller when they are far away.*/
	Camera3DProjectionPerspective Camera3DProjectionType = 0
	/*Orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are.*/
	Camera3DProjectionOrthogonal Camera3DProjectionType = 1
	/*Frustum projection. This mode allows adjusting [member frustum_offset] to create "tilted frustum" effects.*/
	Camera3DProjectionFrustum Camera3DProjectionType = 2
)

type CameraAttributes

type CameraAttributes = classdb.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.

type CameraAttributesPhysical

type CameraAttributesPhysical = classdb.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 [Camera3D]s [member Camera3D.far], [member Camera3D.near], [member Camera3D.fov], and [member Camera3D.keep_aspect] 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. [b]Note:[/b] Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility.

type CameraAttributesPractical

type CameraAttributesPractical = classdb.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.

type CameraFeed

type CameraFeed = classdb.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. [b]Note:[/b] 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.

type CameraFeedFeedDataType

type CameraFeedFeedDataType = classdb.CameraFeedFeedDataType
const (
	/*No image set for the feed.*/
	CameraFeedFeedNoimage CameraFeedFeedDataType = 0
	/*Feed supplies RGB images.*/
	CameraFeedFeedRgb CameraFeedFeedDataType = 1
	/*Feed supplies YCbCr images that need to be converted to RGB.*/
	CameraFeedFeedYcbcr CameraFeedFeedDataType = 2
	/*Feed supplies separate Y and CbCr images that need to be combined and converted to RGB.*/
	CameraFeedFeedYcbcrSep CameraFeedFeedDataType = 3
)

type CameraFeedFeedPosition

type CameraFeedFeedPosition = classdb.CameraFeedFeedPosition
const (
	/*Unspecified position.*/
	CameraFeedFeedUnspecified CameraFeedFeedPosition = 0
	/*Camera is mounted at the front of the device.*/
	CameraFeedFeedFront CameraFeedFeedPosition = 1
	/*Camera is mounted at the back of the device.*/
	CameraFeedFeedBack CameraFeedFeedPosition = 2
)

type CameraServerFeedImage

type CameraServerFeedImage = classdb.CameraServerFeedImage
const (
	/*The RGBA camera image.*/
	CameraServerFeedRgbaImage CameraServerFeedImage = 0
	/*The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image.*/
	CameraServerFeedYcbcrImage CameraServerFeedImage = 0
	/*The Y component camera image.*/
	CameraServerFeedYImage CameraServerFeedImage = 0
	/*The CbCr component camera image.*/
	CameraServerFeedCbcrImage CameraServerFeedImage = 1
)

type CameraTexture

type CameraTexture = classdb.CameraTexture

This texture gives access to the camera texture provided by a CameraFeed. [b]Note:[/b] Many cameras supply YCbCr images which need to be converted in a shader.

type CanvasGroup

type CanvasGroup = classdb.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 [member CanvasItem.self_modulate] property of CanvasGroup to achieve this effect). [b]Note:[/b] 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: [codeblock] 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;
}

[/codeblock] [b]Note:[/b] Since CanvasGroup and [member CanvasItem.clip_children] both utilize the backbuffer, children of a CanvasGroup who have their [member CanvasItem.clip_children] set to anything other than [constant CanvasItem.CLIP_CHILDREN_DISABLED] will not function correctly.

type CanvasItem

type CanvasItem = classdb.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, [method queue_redraw] is called by the engine, then [constant NOTIFICATION_DRAW] 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 [code]draw_*[/code] functions). However, they can only be used inside [method _draw], its corresponding [method Object._notification] or methods connected to the [signal 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 [member modulate] or [member self_modulate]), change its Z-index, blend mode, and more.

// CanvasItem methods that can be overridden by a [Class] that extends it.
type CanvasItem interface {
	//Called when [CanvasItem] has been requested to redraw (after [method queue_redraw] is called, either manually or by the engine).
	//Corresponds to the [constant NOTIFICATION_DRAW] notification in [method Object._notification].
	Draw(godot Context)
}

type CanvasItemClipChildrenMode

type CanvasItemClipChildrenMode = classdb.CanvasItemClipChildrenMode
const (
	/*Child draws over parent and is not clipped.*/
	CanvasItemClipChildrenDisabled CanvasItemClipChildrenMode = 0
	/*Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn.*/
	CanvasItemClipChildrenOnly CanvasItemClipChildrenMode = 1
	/*Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area.*/
	CanvasItemClipChildrenAndDraw CanvasItemClipChildrenMode = 2
	/*Represents the size of the [enum ClipChildrenMode] enum.*/
	CanvasItemClipChildrenMax CanvasItemClipChildrenMode = 3
)

type CanvasItemMaterial

type CanvasItemMaterial = classdb.CanvasItemMaterial

[CanvasItemMaterial]s 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.

type CanvasItemMaterialBlendMode

type CanvasItemMaterialBlendMode = classdb.CanvasItemMaterialBlendMode
const (
	/*Mix blending mode. Colors are assumed to be independent of the alpha (opacity) value.*/
	CanvasItemMaterialBlendModeMix CanvasItemMaterialBlendMode = 0
	/*Additive blending mode.*/
	CanvasItemMaterialBlendModeAdd CanvasItemMaterialBlendMode = 1
	/*Subtractive blending mode.*/
	CanvasItemMaterialBlendModeSub CanvasItemMaterialBlendMode = 2
	/*Multiplicative blending mode.*/
	CanvasItemMaterialBlendModeMul CanvasItemMaterialBlendMode = 3
	/*Mix blending mode. Colors are assumed to be premultiplied by the alpha (opacity) value.*/
	CanvasItemMaterialBlendModePremultAlpha CanvasItemMaterialBlendMode = 4
)

type CanvasItemMaterialLightMode

type CanvasItemMaterialLightMode = classdb.CanvasItemMaterialLightMode
const (
	/*Render the material using both light and non-light sensitive material properties.*/
	CanvasItemMaterialLightModeNormal CanvasItemMaterialLightMode = 0
	/*Render the material as if there were no light.*/
	CanvasItemMaterialLightModeUnshaded CanvasItemMaterialLightMode = 1
	/*Render the material as if there were only light.*/
	CanvasItemMaterialLightModeLightOnly CanvasItemMaterialLightMode = 2
)

type CanvasItemTextureFilter

type CanvasItemTextureFilter = classdb.CanvasItemTextureFilter
const (
	/*The [CanvasItem] will inherit the filter from its parent.*/
	CanvasItemTextureFilterParentNode CanvasItemTextureFilter = 0
	/*The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	CanvasItemTextureFilterNearest CanvasItemTextureFilter = 1
	/*The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	CanvasItemTextureFilterLinear CanvasItemTextureFilter = 2
	/*The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look pixelated from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	CanvasItemTextureFilterNearestWithMipmaps CanvasItemTextureFilter = 3
	/*The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look smooth from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	CanvasItemTextureFilterLinearWithMipmaps CanvasItemTextureFilter = 4
	/*The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look pixelated from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
	  [b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] is usually more appropriate in this case.*/
	CanvasItemTextureFilterNearestWithMipmapsAnisotropic CanvasItemTextureFilter = 5
	/*The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look smooth from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
	  [b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant TEXTURE_FILTER_LINEAR_WITH_MIPMAPS] is usually more appropriate in this case.*/
	CanvasItemTextureFilterLinearWithMipmapsAnisotropic CanvasItemTextureFilter = 6
	/*Represents the size of the [enum TextureFilter] enum.*/
	CanvasItemTextureFilterMax CanvasItemTextureFilter = 7
)

type CanvasItemTextureRepeat

type CanvasItemTextureRepeat = classdb.CanvasItemTextureRepeat
const (
	/*The [CanvasItem] will inherit the filter from its parent.*/
	CanvasItemTextureRepeatParentNode CanvasItemTextureRepeat = 0
	/*Texture will not repeat.*/
	CanvasItemTextureRepeatDisabled CanvasItemTextureRepeat = 1
	/*Texture will repeat normally.*/
	CanvasItemTextureRepeatEnabled CanvasItemTextureRepeat = 2
	/*Texture will repeat in a 2x2 tiled mode, where elements at even positions are mirrored.*/
	CanvasItemTextureRepeatMirror CanvasItemTextureRepeat = 3
	/*Represents the size of the [enum TextureRepeat] enum.*/
	CanvasItemTextureRepeatMax CanvasItemTextureRepeat = 4
)

type CanvasLayer

type CanvasLayer = classdb.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 [code]0[/code], so a CanvasLayer with index [code]-1[/code] will be drawn below, and a CanvasLayer with index [code]1[/code] will be drawn above. This order will hold regardless of the [member CanvasItem.z_index] of the nodes within each layer. [CanvasLayer]s can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers [code]1[/code] and higher) or backgrounds (on layers [code]-1[/code] and lower). [b]Note:[/b] Embedded [Window]s are placed on layer [code]1024[/code]. [CanvasItem]s on layers [code]1025[/code] and higher appear in front of embedded windows. [b]Note:[/b] Each CanvasLayer is drawn on one specific Viewport and cannot be shared between multiple [Viewport]s, see [member custom_viewport]. When using multiple [Viewport]s, for example in a split-screen game, you need create an individual CanvasLayer for each Viewport you want it to be drawn on.

type CanvasModulate

type CanvasModulate = classdb.CanvasModulate

CanvasModulate applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but [CanvasLayer]s can be used to render things independently.

type CanvasTexture

type CanvasTexture = classdb.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). [b]Note:[/b] 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.

type CapsuleMesh

type CapsuleMesh = classdb.CapsuleMesh

Class representing a capsule-shaped PrimitiveMesh.

type CapsuleShape2D

type CapsuleShape2D = classdb.CapsuleShape2D

A 2D capsule shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D. [b]Performance:[/b] CapsuleShape2D is fast to check collisions against, but it is slower than RectangleShape2D and CircleShape2D.

type CapsuleShape3D

type CapsuleShape3D = classdb.CapsuleShape3D

A 3D capsule shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. [b]Performance:[/b] CapsuleShape3D is fast to check collisions against. It is faster than CylinderShape3D, but slower than SphereShape3D and BoxShape3D.

type CenterContainer

type CenterContainer = classdb.CenterContainer

CenterContainer is a container that keeps all of its child controls in its center at their minimum size.

type CharFXTransform

type CharFXTransform = classdb.CharFXTransform

By setting various properties on this object, you can control how individual characters will be displayed in a RichTextEffect.

type CharacterBody2D

type CharacterBody2D = classdb.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 ([method move_and_slide] method) in addition to the general collision detection provided by [method PhysicsBody2D.move_and_collide]. 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.

type CharacterBody2DMotionMode

type CharacterBody2DMotionMode = classdb.CharacterBody2DMotionMode
const (
	/*Apply when notions of walls, ceiling and floor are relevant. In this mode the body motion will react to slopes (acceleration/slowdown). This mode is suitable for sided games like platformers.*/
	CharacterBody2DMotionModeGrounded CharacterBody2DMotionMode = 0
	/*Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for top-down games.*/
	CharacterBody2DMotionModeFloating CharacterBody2DMotionMode = 1
)

type CharacterBody2DPlatformOnLeave

type CharacterBody2DPlatformOnLeave = classdb.CharacterBody2DPlatformOnLeave
const (
	/*Add the last platform velocity to the [member velocity] when you leave a moving platform.*/
	CharacterBody2DPlatformOnLeaveAddVelocity CharacterBody2DPlatformOnLeave = 0
	/*Add the last platform velocity to the [member velocity] when you leave a moving platform, but any downward motion is ignored. It's useful to keep full jump height even when the platform is moving down.*/
	CharacterBody2DPlatformOnLeaveAddUpwardVelocity CharacterBody2DPlatformOnLeave = 1
	/*Do nothing when leaving a platform.*/
	CharacterBody2DPlatformOnLeaveDoNothing CharacterBody2DPlatformOnLeave = 2
)

type CharacterBody3D

type CharacterBody3D = classdb.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 ([method move_and_slide] method) in addition to the general collision detection provided by [method PhysicsBody3D.move_and_collide]. 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.

type CharacterBody3DMotionMode

type CharacterBody3DMotionMode = classdb.CharacterBody3DMotionMode
const (
	/*Apply when notions of walls, ceiling and floor are relevant. In this mode the body motion will react to slopes (acceleration/slowdown). This mode is suitable for grounded games like platformers.*/
	CharacterBody3DMotionModeGrounded CharacterBody3DMotionMode = 0
	/*Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for games without ground like space games.*/
	CharacterBody3DMotionModeFloating CharacterBody3DMotionMode = 1
)

type CharacterBody3DPlatformOnLeave

type CharacterBody3DPlatformOnLeave = classdb.CharacterBody3DPlatformOnLeave
const (
	/*Add the last platform velocity to the [member velocity] when you leave a moving platform.*/
	CharacterBody3DPlatformOnLeaveAddVelocity CharacterBody3DPlatformOnLeave = 0
	/*Add the last platform velocity to the [member velocity] when you leave a moving platform, but any downward motion is ignored. It's useful to keep full jump height even when the platform is moving down.*/
	CharacterBody3DPlatformOnLeaveAddUpwardVelocity CharacterBody3DPlatformOnLeave = 1
	/*Do nothing when leaving a platform.*/
	CharacterBody3DPlatformOnLeaveDoNothing CharacterBody3DPlatformOnLeave = 2
)

type CheckBox

type CheckBox = classdb.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 [b]no[/b] 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 [member BaseButton.button_group] specifies a ButtonGroup, CheckBox changes its appearance to that of a radio button and uses the various [code]radio_*[/code] theme properties.

type CheckButton

type CheckButton = classdb.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 [b]immediate[/b] 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.

type CircleShape2D

type CircleShape2D = classdb.CircleShape2D

A 2D circle shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D. [b]Performance:[/b] CircleShape2D is fast to check collisions against. It is faster than RectangleShape2D and CapsuleShape2D.

type Class

type Class[T, S gd.IsClass] struct {
	gd.Class[T, S]
}

Class can be embedded inside of a struct to represent a new Class type. The extended class will be available by calling the [Class.Super] method.

type ClockDirection

type ClockDirection = gd.ClockDirection
const (
	/*Clockwise rotation. Used by some methods (e.g. [method Image.rotate_90]).*/
	Clockwise ClockDirection = 0
	/*Counter-clockwise rotation. Used by some methods (e.g. [method Image.rotate_90]).*/
	Counterclockwise ClockDirection = 1
)

type CodeEdit

type CodeEdit = classdb.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. [b]Note:[/b] Regardless of locale, CodeEdit will by default always use left-to-right text direction to correctly display source code.

// CodeEdit methods that can be overridden by a [Class] that extends it.
type CodeEdit interface {
	//Override this method to define how the selected entry should be inserted. If [param replace] is true, any existing text should be replaced.
	ConfirmCodeCompletion(godot Context, replace bool)
	//Override this method to define what happens when the user requests code completion. If [param force] is true, any checks should be bypassed.
	RequestCodeCompletion(godot Context, force bool)
	//Override this method to define what items in [param candidates] should be displayed.
	//Both [param candidates] and the return is a [Array] of [Dictionary], see [method get_code_completion_option] for [Dictionary] content.
	FilterCodeCompletionCandidates(godot Context, candidates gd.ArrayOf[gd.Dictionary]) gd.ArrayOf[gd.Dictionary]
}

type CodeEditCodeCompletionKind

type CodeEditCodeCompletionKind = classdb.CodeEditCodeCompletionKind
const (
	/*Marks the option as a class.*/
	CodeEditKindClass CodeEditCodeCompletionKind = 0
	/*Marks the option as a function.*/
	CodeEditKindFunction CodeEditCodeCompletionKind = 1
	/*Marks the option as a Godot signal.*/
	CodeEditKindSignal CodeEditCodeCompletionKind = 2
	/*Marks the option as a variable.*/
	CodeEditKindVariable CodeEditCodeCompletionKind = 3
	/*Marks the option as a member.*/
	CodeEditKindMember CodeEditCodeCompletionKind = 4
	/*Marks the option as an enum entry.*/
	CodeEditKindEnum CodeEditCodeCompletionKind = 5
	/*Marks the option as a constant.*/
	CodeEditKindConstant CodeEditCodeCompletionKind = 6
	/*Marks the option as a Godot node path.*/
	CodeEditKindNodePath CodeEditCodeCompletionKind = 7
	/*Marks the option as a file path.*/
	CodeEditKindFilePath CodeEditCodeCompletionKind = 8
	/*Marks the option as unclassified or plain text.*/
	CodeEditKindPlainText CodeEditCodeCompletionKind = 9
)

type CodeEditCodeCompletionLocation

type CodeEditCodeCompletionLocation = classdb.CodeEditCodeCompletionLocation
const (
	/*The option is local to the location of the code completion query - e.g. a local variable. Subsequent value of location represent options from the outer class, the exact value represent how far they are (in terms of inner classes).*/
	CodeEditLocationLocal CodeEditCodeCompletionLocation = 0
	/*The option is from the containing class or a parent class, relative to the location of the code completion query. Perform a bitwise OR with the class depth (e.g. 0 for the local class, 1 for the parent, 2 for the grandparent, etc) to store the depth of an option in the class or a parent class.*/
	CodeEditLocationParentMask CodeEditCodeCompletionLocation = 256
	/*The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons).*/
	CodeEditLocationOtherUserCode CodeEditCodeCompletionLocation = 512
	/*The option is from other engine code, not covered by the other enum constants - e.g. built-in classes.*/
	CodeEditLocationOther CodeEditCodeCompletionLocation = 1024
)

type CodeHighlighter

type CodeHighlighter = classdb.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.

type CollisionObject2D

type CollisionObject2D = classdb.CollisionObject2D

Abstract base class for 2D physics objects. CollisionObject2D can hold any number of [Shape2D]s for collision. Each shape must be assigned to a [i]shape owner[/i]. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the [code]shape_owner_*[/code] methods. [b]Note:[/b] 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 methods that can be overridden by a [Class] that extends it.
type CollisionObject2D interface {
	//Accepts unhandled [InputEvent]s. [param shape_idx] is the child index of the clicked [Shape2D]. Connect to [signal input_event] to easily pick up these events.
	//[b]Note:[/b] [method _input_event] requires [member input_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be set.
	InputEvent(godot Context, viewport Viewport, event InputEvent, shape_idx gd.Int)
	//Called when the mouse pointer enters any of this object's shapes. Requires [member input_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be set. Note that moving between different shapes within a single [CollisionObject2D] won't cause this function to be called.
	MouseEnter(godot Context)
	//Called when the mouse pointer exits all this object's shapes. Requires [member input_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be set. Note that moving between different shapes within a single [CollisionObject2D] won't cause this function to be called.
	MouseExit(godot Context)
	//Called when the mouse pointer enters any of this object's shapes or moves from one shape to another. [param shape_idx] is the child index of the newly entered [Shape2D]. Requires [member input_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be called.
	MouseShapeEnter(godot Context, shape_idx gd.Int)
	//Called when the mouse pointer exits any of this object's shapes. [param shape_idx] is the child index of the exited [Shape2D]. Requires [member input_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be called.
	MouseShapeExit(godot Context, shape_idx gd.Int)
}

type CollisionObject2DDisableMode

type CollisionObject2DDisableMode = classdb.CollisionObject2DDisableMode
const (
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], remove from the physics simulation to stop all physics interactions with this [CollisionObject2D].
	  Automatically re-added to the physics simulation when the [Node] is processed again.*/
	CollisionObject2DDisableModeRemove CollisionObject2DDisableMode = 0
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], make the body static. Doesn't affect [Area2D]. [PhysicsBody2D] can't be affected by forces or other bodies while static.
	  Automatically set [PhysicsBody2D] back to its original mode when the [Node] is processed again.*/
	CollisionObject2DDisableModeMakeStatic CollisionObject2DDisableMode = 1
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], do not affect the physics simulation.*/
	CollisionObject2DDisableModeKeepActive CollisionObject2DDisableMode = 2
)

type CollisionObject3D

type CollisionObject3D = classdb.CollisionObject3D

Abstract base class for 3D physics objects. CollisionObject3D can hold any number of [Shape3D]s for collision. Each shape must be assigned to a [i]shape owner[/i]. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the [code]shape_owner_*[/code] methods. [b]Warning:[/b] 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 methods that can be overridden by a [Class] that extends it.
type CollisionObject3D interface {
	//Receives unhandled [InputEvent]s. [param position] is the location in world space of the mouse pointer on the surface of the shape with index [param shape_idx] and [param normal] is the normal vector of the surface at that point. Connect to the [signal input_event] signal to easily pick up these events.
	//[b]Note:[/b] [method _input_event] requires [member input_ray_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be set.
	InputEvent(godot Context, camera Camera3D, event InputEvent, position gd.Vector3, normal gd.Vector3, shape_idx gd.Int)
	//Called when the mouse pointer enters any of this object's shapes. Requires [member input_ray_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be set. Note that moving between different shapes within a single [CollisionObject3D] won't cause this function to be called.
	MouseEnter(godot Context)
	//Called when the mouse pointer exits all this object's shapes. Requires [member input_ray_pickable] to be [code]true[/code] and at least one [member collision_layer] bit to be set. Note that moving between different shapes within a single [CollisionObject3D] won't cause this function to be called.
	MouseExit(godot Context)
}

type CollisionObject3DDisableMode

type CollisionObject3DDisableMode = classdb.CollisionObject3DDisableMode
const (
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], remove from the physics simulation to stop all physics interactions with this [CollisionObject3D].
	  Automatically re-added to the physics simulation when the [Node] is processed again.*/
	CollisionObject3DDisableModeRemove CollisionObject3DDisableMode = 0
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], make the body static. Doesn't affect [Area3D]. [PhysicsBody3D] can't be affected by forces or other bodies while static.
	  Automatically set [PhysicsBody3D] back to its original mode when the [Node] is processed again.*/
	CollisionObject3DDisableModeMakeStatic CollisionObject3DDisableMode = 1
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], do not affect the physics simulation.*/
	CollisionObject3DDisableModeKeepActive CollisionObject3DDisableMode = 2
)

type CollisionPolygon2D

type CollisionPolygon2D = classdb.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. [b]Warning:[/b] 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.

type CollisionPolygon2DBuildMode

type CollisionPolygon2DBuildMode = classdb.CollisionPolygon2DBuildMode
const (
	/*Collisions will include the polygon and its contained area. In this mode the node has the same effect as several [ConvexPolygonShape2D] nodes, one for each convex shape in the convex decomposition of the polygon (but without the overhead of multiple nodes).*/
	CollisionPolygon2DBuildSolids CollisionPolygon2DBuildMode = 0
	/*Collisions will only include the polygon edges. In this mode the node has the same effect as a single [ConcavePolygonShape2D] made of segments, with the restriction that each segment (after the first one) starts where the previous one ends, and the last one ends where the first one starts (forming a closed but hollow polygon).*/
	CollisionPolygon2DBuildSegments CollisionPolygon2DBuildMode = 1
)

type CollisionPolygon3D

type CollisionPolygon3D = classdb.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. [b]Warning:[/b] 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.

type CollisionShape2D

type CollisionShape2D = classdb.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.

type CollisionShape3D

type CollisionShape3D = classdb.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. [b]Warning:[/b] 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 [member shape] resource instead.

type Color

type Color = gd.Color

type ColorPicker

type ColorPicker = classdb.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. [b]Note:[/b] 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.

type ColorPickerButton

type ColorPickerButton = classdb.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. [b]Note:[/b] By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set [member Control.custom_minimum_size] to a big enough value to give the button enough space.

type ColorPickerColorModeType

type ColorPickerColorModeType = classdb.ColorPickerColorModeType
const (
	/*Allows editing the color with Red/Green/Blue sliders.*/
	ColorPickerModeRgb ColorPickerColorModeType = 0
	/*Allows editing the color with Hue/Saturation/Value sliders.*/
	ColorPickerModeHsv ColorPickerColorModeType = 1
	/*Allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).*/
	ColorPickerModeRaw ColorPickerColorModeType = 2
	/*Allows editing the color with Hue/Saturation/Lightness sliders.
	  OKHSL is a new color space similar to HSL but that better match perception by leveraging the Oklab color space which is designed to be simple to use, while doing a good job at predicting perceived lightness, chroma and hue.
	  [url=https://bottosson.github.io/posts/colorpicker/]Okhsv and Okhsl color spaces[/url]*/
	ColorPickerModeOkhsl ColorPickerColorModeType = 3
)

type ColorPickerPickerShapeType

type ColorPickerPickerShapeType = classdb.ColorPickerPickerShapeType
const (
	/*HSV Color Model rectangle color space.*/
	ColorPickerShapeHsvRectangle ColorPickerPickerShapeType = 0
	/*HSV Color Model rectangle color space with a wheel.*/
	ColorPickerShapeHsvWheel ColorPickerPickerShapeType = 1
	/*HSV Color Model circle color space. Use Saturation as a radius.*/
	ColorPickerShapeVhsCircle ColorPickerPickerShapeType = 2
	/*HSL OK Color Model circle color space.*/
	ColorPickerShapeOkhslCircle ColorPickerPickerShapeType = 3
	/*The color space shape and the shape select button are hidden. Can't be selected from the shapes popup.*/
	ColorPickerShapeNone ColorPickerPickerShapeType = 4
)

type ColorRect

type ColorRect = classdb.ColorRect

Displays a rectangle filled with a solid [member color]. If you need to display the border alone, consider using a Panel instead.

type CompressedCubemap

type CompressedCubemap = classdb.CompressedCubemap

A cubemap that is loaded from a [code].ccube[/code] 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 [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. The [b]Lossless[/b] and [b]Lossy[/b] 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 [b]VRAM Compressed[/b] 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.

type CompressedCubemapArray

type CompressedCubemapArray = classdb.CompressedCubemapArray

A cubemap array that is loaded from a [code].ccubearray[/code] 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 [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. The [b]Lossless[/b] and [b]Lossy[/b] 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 [b]VRAM Compressed[/b] 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.

type CompressedTexture2D

type CompressedTexture2D = classdb.CompressedTexture2D

A texture that is loaded from a [code].ctex[/code] 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 [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. The [b]Lossless[/b] and [b]Lossy[/b] 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 [b]VRAM Compressed[/b] 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.

type CompressedTexture2DArray

type CompressedTexture2DArray = classdb.CompressedTexture2DArray

A texture array that is loaded from a [code].ctexarray[/code] 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 [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. The [b]Lossless[/b] and [b]Lossy[/b] 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 [b]VRAM Compressed[/b] 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.

type CompressedTexture3D

type CompressedTexture3D = classdb.CompressedTexture3D

CompressedTexture3D is the VRAM-compressed counterpart of ImageTexture3D. The file extension for CompressedTexture3D files is [code].ctex3d[/code]. 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.

type CompressedTextureLayered

type CompressedTextureLayered = classdb.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.

type ConcavePolygonShape2D

type ConcavePolygonShape2D = classdb.ConcavePolygonShape2D

A 2D polyline shape, intended for use in physics. Used internally in CollisionPolygon2D when it's in [constant CollisionPolygon2D.BUILD_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 [i]hollow[/i] even if the interconnected line segments do enclose an area, which often makes it unsuitable for physics or detection. [b]Note:[/b] When used for collision, ConcavePolygonShape2D is intended to work with static CollisionShape2D nodes like StaticBody2D and will likely not behave well for [CharacterBody2D]s or [RigidBody2D]s in a mode other than Static. [b]Warning:[/b] 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. [b]Performance:[/b] 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 [constant CollisionPolygon2D.BUILD_SOLIDS] mode can be used, which decomposes the polygon into convex ones; see ConvexPolygonShape2D's documentation for instructions.

type ConcavePolygonShape3D

type ConcavePolygonShape3D = classdb.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 [i]hollow[/i] even if the interconnected triangles do enclose a volume, which often makes it unsuitable for physics or detection. [b]Note:[/b] When used for collision, ConcavePolygonShape3D is intended to work with static CollisionShape3D nodes like StaticBody3D and will likely not behave well for [CharacterBody3D]s or [RigidBody3D]s in a mode other than Static. [b]Warning:[/b] 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. [b]Performance:[/b] 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 [ConvexPolygonShape3D]s can be used to represent its collision by using convex decomposition; see ConvexPolygonShape3D's documentation for instructions.

type ConeTwistJoint3D

type ConeTwistJoint3D = classdb.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.

type ConeTwistJoint3DParam

type ConeTwistJoint3DParam = classdb.ConeTwistJoint3DParam
const (
	/*Swing is rotation from side to side, around the axis perpendicular to the twist axis.
	  The swing span defines, how much rotation will not get corrected along the swing axis.
	  Could be defined as looseness in the [ConeTwistJoint3D].
	  If below 0.05, this behavior is locked.*/
	ConeTwistJoint3DParamSwingSpan ConeTwistJoint3DParam = 0
	/*Twist is the rotation around the twist axis, this value defined how far the joint can twist.
	  Twist is locked if below 0.05.*/
	ConeTwistJoint3DParamTwistSpan ConeTwistJoint3DParam = 1
	/*The speed with which the swing or twist will take place.
	  The higher, the faster.*/
	ConeTwistJoint3DParamBias ConeTwistJoint3DParam = 2
	/*The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint.*/
	ConeTwistJoint3DParamSoftness ConeTwistJoint3DParam = 3
	/*Defines, how fast the swing- and twist-speed-difference on both sides gets synced.*/
	ConeTwistJoint3DParamRelaxation ConeTwistJoint3DParam = 4
	/*Represents the size of the [enum Param] enum.*/
	ConeTwistJoint3DParamMax ConeTwistJoint3DParam = 5
)

type ConfigFile

type ConfigFile = classdb.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: [codeblock] [section] some_key=42 string_example="Hello World3D!" a_vector=Vector3(1, 0, 2) [/codeblock] 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: [codeblocks] [gdscript] # Create new ConfigFile object. var config = ConfigFile.new()

# Store some values. config.set_value("Player1", "player_name", "Steve") config.set_value("Player1", "best_score", 10) config.set_value("Player2", "player_name", "V3geta") config.set_value("Player2", "best_score", 9001)

# Save it to a file (overwrite if already exists). config.save("user://scores.cfg") [/gdscript] [csharp] // 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"); [/csharp] [/codeblocks] This example shows how the above file could be loaded: [codeblocks] [gdscript] var score_data = {} var config = ConfigFile.new()

# Load data from a file. var err = config.load("user://scores.cfg")

# If the file didn't load, ignore it. if err != OK:

return

# Iterate over all sections. for player in config.get_sections():

# Fetch the data for each section.
var player_name = config.get_value(player, "player_name")
var player_score = config.get_value(player, "best_score")
score_data[player_name] = player_score

[/gdscript] [csharp] 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;
}

[/csharp] [/codeblocks] Any operation that mutates the ConfigFile such as [method set_value], [method clear], or [method erase_section], only changes what is loaded in memory. If you want to write the change to a file, you have to save the changes with [method save], [method save_encrypted], or [method save_encrypted_pass]. 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 ([code];[/code]). 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. [b]Note:[/b] The file extension given to a ConfigFile does not have any impact on its formatting or behavior. By convention, the [code].cfg[/code] extension is used here, but any other extension such as [code].ini[/code] is also valid. Since neither [code].cfg[/code] nor [code].ini[/code] are standardized, Godot's ConfigFile formatting may differ from files written by other programs.

type ConfirmationDialog

type ConfirmationDialog = classdb.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: [codeblocks] [gdscript] get_cancel_button().pressed.connect(self.canceled) [/gdscript] [csharp] GetCancelButton().Pressed += Canceled; [/csharp] [/codeblocks]

type Container

type Container = classdb.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 methods that can be overridden by a [Class] that extends it.
type Container interface {
	//Implement to return a list of allowed horizontal [enum Control.SizeFlags] for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the Inspector dock.
	//[b]Note:[/b] Having no size flags is equal to having [constant Control.SIZE_SHRINK_BEGIN]. As such, this value is always implicitly allowed.
	GetAllowedSizeFlagsHorizontal(godot Context) gd.PackedInt32Array
	//Implement to return a list of allowed vertical [enum Control.SizeFlags] for child nodes. This doesn't technically prevent the usages of any other size flags, if your implementation requires that. This only limits the options available to the user in the Inspector dock.
	//[b]Note:[/b] Having no size flags is equal to having [constant Control.SIZE_SHRINK_BEGIN]. As such, this value is always implicitly allowed.
	GetAllowedSizeFlagsVertical(godot Context) gd.PackedInt32Array
}

type Context

type Context = gd.Context

Context for ownership and a reference to the Godot API, apart from its use as an ordinary context.Context to signal cancellation, this value is not safe to use concurrently. Each goroutine should create its own Context and use that instead.

newctx := gd.NewContext(oldctx.API())

When a Context is freed, it will free all of the objects that were created using it. A Context should not be used after free, as it will be recycled and will cause values to be unexpectedly freed.

When the context has been passed in as a function argument, always assume that the Context will be freed when the function returns. Classes can be moved between contexts using their [KeepAlive] method.

type Control

type Control = classdb.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. [b]User Interface nodes and input[/b] Godot propagates input events via viewports. Each Viewport is responsible for propagating [InputEvent]s to their child nodes. As the [member SceneTree.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 [method Node._input]. For UI elements specifically, it makes more sense to override the virtual method [method _gui_input], which filters out unrelated input events, such as by checking z-order, [member mouse_filter], focus, or if the event was inside of the control's bounding box. Call [method accept_event] so no other node receives the event. Once you accept an input, it becomes handled so [method Node._unhandled_input] 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 [method grab_focus]. Control nodes lose focus when another node grabs it, or if you hide the node in focus. Sets [member mouse_filter] to [constant MOUSE_FILTER_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 [code]add_theme_*_override[/code] methods, like [method add_theme_font_override]. You can override the theme with the Inspector. [b]Note:[/b] Theme items are [i]not[/i] Object properties. This means you can't access their values using [method Object.get] and [method Object.set]. Instead, use the [code]get_theme_*[/code] and [code]add_theme_*_override[/code] methods provided by this class.

// Control methods that can be overridden by a [Class] that extends it.
type Control interface {
	//Virtual method to be implemented by the user. Returns whether the given [param point] is inside this control.
	//If not overridden, default behavior is checking if the point is within control's Rect.
	//[b]Note:[/b] If you want to check if a point is inside the control, you can use [code]Rect2(Vector2.ZERO, size).has_point(point)[/code].
	HasPoint(godot Context, point gd.Vector2) bool
	//User defined BiDi algorithm override function.
	//Returns an [Array] of [Vector3i] text ranges and text base directions, in the left-to-right order. Ranges should cover full source [param text] without overlaps. BiDi algorithm will be used on each range separately.
	StructuredTextParser(godot Context, args gd.Array, text gd.String) gd.ArrayOf[gd.Vector3i]
	//Virtual method to be implemented by the user. Returns the minimum size for this control. Alternative to [member custom_minimum_size] for controlling minimum size via code. The actual minimum size will be the max value of these two (in each axis separately).
	//If not overridden, defaults to [constant Vector2.ZERO].
	//[b]Note:[/b] This method will not be called when the script is attached to a [Control] node that already overrides its minimum size (e.g. [Label], [Button], [PanelContainer] etc.). It can only be used with most basic GUI nodes, like [Control], [Container], [Panel] etc.
	GetMinimumSize(godot Context) gd.Vector2
	//Virtual method to be implemented by the user. Returns the tooltip text for the position [param at_position] in control's local coordinates, which will typically appear when the cursor is resting over this control. See [method get_tooltip].
	//[b]Note:[/b] If this method returns an empty [String], no tooltip is displayed.
	GetTooltip(godot Context, at_position gd.Vector2) gd.String
	//Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns [code]null[/code] if there is no data to drag. Controls that want to receive drop data should implement [method _can_drop_data] and [method _drop_data]. [param at_position] is local to this control. Drag may be forced with [method force_drag].
	//A preview that will follow the mouse that should represent the data can be set with [method set_drag_preview]. A good time to set the preview is in this method.
	//[codeblocks]
	//[gdscript]
	//func _get_drag_data(position):
	//    var mydata = make_data() # This is your custom method generating the drag data.
	//    set_drag_preview(make_preview(mydata)) # This is your custom method generating the preview of the drag data.
	//    return mydata
	//[/gdscript]
	//[csharp]
	//public override Variant _GetDragData(Vector2 atPosition)
	//{
	//    var myData = MakeData(); // This is your custom method generating the drag data.
	//    SetDragPreview(MakePreview(myData)); // This is your custom method generating the preview of the drag data.
	//    return myData;
	//}
	//[/csharp]
	//[/codeblocks]
	GetDragData(godot Context, at_position gd.Vector2) gd.Variant
	//Godot calls this method to test if [param data] from a control's [method _get_drag_data] can be dropped at [param at_position]. [param at_position] is local to this control.
	//This method should only be used to test the data. Process the data in [method _drop_data].
	//[codeblocks]
	//[gdscript]
	//func _can_drop_data(position, data):
	//    # Check position if it is relevant to you
	//    # Otherwise, just check data
	//    return typeof(data) == TYPE_DICTIONARY and data.has("expected")
	//[/gdscript]
	//[csharp]
	//public override bool _CanDropData(Vector2 atPosition, Variant data)
	//{
	//    // Check position if it is relevant to you
	//    // Otherwise, just check data
	//    return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().ContainsKey("expected");
	//}
	//[/csharp]
	//[/codeblocks]
	CanDropData(godot Context, at_position gd.Vector2, data gd.Variant) bool
	//Godot calls this method to pass you the [param data] from a control's [method _get_drag_data] result. Godot first calls [method _can_drop_data] to test if [param data] is allowed to drop at [param at_position] where [param at_position] is local to this control.
	//[codeblocks]
	//[gdscript]
	//func _can_drop_data(position, data):
	//    return typeof(data) == TYPE_DICTIONARY and data.has("color")
	//
	//func _drop_data(position, data):
	//    var color = data["color"]
	//[/gdscript]
	//[csharp]
	//public override bool _CanDropData(Vector2 atPosition, Variant data)
	//{
	//    return data.VariantType == Variant.Type.Dictionary && dict.AsGodotDictionary().ContainsKey("color");
	//}
	//
	//public override void _DropData(Vector2 atPosition, Variant data)
	//{
	//    Color color = data.AsGodotDictionary()["color"].AsColor();
	//}
	//[/csharp]
	//[/codeblocks]
	DropData(godot Context, at_position gd.Vector2, data gd.Variant)
	//Virtual method to be implemented by the user. Returns a [Control] node that should be used as a tooltip instead of the default one. The [param for_text] includes the contents of the [member tooltip_text] property.
	//The returned node must be of type [Control] or Control-derived. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance (if you want to use a pre-existing node from your scene tree, you can duplicate it and pass the duplicated instance). When [code]null[/code] or a non-Control node is returned, the default tooltip will be used instead.
	//The returned node will be added as child to a [PopupPanel], so you should only provide the contents of that panel. That [PopupPanel] can be themed using [method Theme.set_stylebox] for the type [code]"TooltipPanel"[/code] (see [member tooltip_text] for an example).
	//[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its [member custom_minimum_size] to some non-zero value.
	//[b]Note:[/b] The node (and any relevant children) should be [member CanvasItem.visible] when returned, otherwise, the viewport that instantiates it will not be able to calculate its minimum size reliably.
	//[b]Example of usage with a custom-constructed node:[/b]
	//[codeblocks]
	//[gdscript]
	//func _make_custom_tooltip(for_text):
	//    var label = Label.new()
	//    label.text = for_text
	//    return label
	//[/gdscript]
	//[csharp]
	//public override Control _MakeCustomTooltip(string forText)
	//{
	//    var label = new Label();
	//    label.Text = forText;
	//    return label;
	//}
	//[/csharp]
	//[/codeblocks]
	//[b]Example of usage with a custom scene instance:[/b]
	//[codeblocks]
	//[gdscript]
	//func _make_custom_tooltip(for_text):
	//    var tooltip = preload("res://some_tooltip_scene.tscn").instantiate()
	//    tooltip.get_node("Label").text = for_text
	//    return tooltip
	//[/gdscript]
	//[csharp]
	//public override Control _MakeCustomTooltip(string forText)
	//{
	//    Node tooltip = ResourceLoader.Load<PackedScene>("res://some_tooltip_scene.tscn").Instantiate();
	//    tooltip.GetNode<Label>("Label").Text = forText;
	//    return tooltip;
	//}
	//[/csharp]
	//[/codeblocks]
	MakeCustomTooltip(godot Context, for_text gd.String) gd.Object
	//Virtual method to be implemented by the user. Use this method to process and accept inputs on UI elements. See [method accept_event].
	//[b]Example usage for clicking a control:[/b]
	//[codeblocks]
	//[gdscript]
	//func _gui_input(event):
	//    if event is InputEventMouseButton:
	//        if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
	//            print("I've been clicked D:")
	//[/gdscript]
	//[csharp]
	//public override void _GuiInput(InputEvent @event)
	//{
	//    if (@event is InputEventMouseButton mb)
	//    {
	//        if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)
	//        {
	//            GD.Print("I've been clicked D:");
	//        }
	//    }
	//}
	//[/csharp]
	//[/codeblocks]
	//The event won't trigger if:
	//* clicking outside the control (see [method _has_point]);
	//* control has [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];
	//* control is obstructed by another [Control] on top of it, which doesn't have [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];
	//* control's parent has [member mouse_filter] set to [constant MOUSE_FILTER_STOP] or has accepted the event;
	//* it happens outside the parent's rectangle and the parent has either [member clip_contents] enabled.
	//[b]Note:[/b] Event position is relative to the control origin.
	GuiInput(godot Context, event InputEvent)
}

type ControlAnchor

type ControlAnchor = classdb.ControlAnchor
const (
	/*Snaps one of the 4 anchor's sides to the origin of the node's [code]Rect[/code], in the top left. Use it with one of the [code]anchor_*[/code] member variables, like [member anchor_left]. To change all 4 anchors at once, use [method set_anchors_preset].*/
	ControlAnchorBegin ControlAnchor = 0
	/*Snaps one of the 4 anchor's sides to the end of the node's [code]Rect[/code], in the bottom right. Use it with one of the [code]anchor_*[/code] member variables, like [member anchor_left]. To change all 4 anchors at once, use [method set_anchors_preset].*/
	ControlAnchorEnd ControlAnchor = 1
)

type ControlCursorShape

type ControlCursorShape = classdb.ControlCursorShape
const (
	/*Show the system's arrow mouse cursor when the user hovers the node. Use with [member mouse_default_cursor_shape].*/
	ControlCursorArrow ControlCursorShape = 0
	/*Show the system's I-beam mouse cursor when the user hovers the node. The I-beam pointer has a shape similar to "I". It tells the user they can highlight or insert text.*/
	ControlCursorIbeam ControlCursorShape = 1
	/*Show the system's pointing hand mouse cursor when the user hovers the node.*/
	ControlCursorPointingHand ControlCursorShape = 2
	/*Show the system's cross mouse cursor when the user hovers the node.*/
	ControlCursorCross ControlCursorShape = 3
	/*Show the system's wait mouse cursor when the user hovers the node. Often an hourglass.*/
	ControlCursorWait ControlCursorShape = 4
	/*Show the system's busy mouse cursor when the user hovers the node. Often an arrow with a small hourglass.*/
	ControlCursorBusy ControlCursorShape = 5
	/*Show the system's drag mouse cursor, often a closed fist or a cross symbol, when the user hovers the node. It tells the user they're currently dragging an item, like a node in the Scene dock.*/
	ControlCursorDrag ControlCursorShape = 6
	/*Show the system's drop mouse cursor when the user hovers the node. It can be an open hand. It tells the user they can drop an item they're currently grabbing, like a node in the Scene dock.*/
	ControlCursorCanDrop ControlCursorShape = 7
	/*Show the system's forbidden mouse cursor when the user hovers the node. Often a crossed circle.*/
	ControlCursorForbidden ControlCursorShape = 8
	/*Show the system's vertical resize mouse cursor when the user hovers the node. A double-headed vertical arrow. It tells the user they can resize the window or the panel vertically.*/
	ControlCursorVsize ControlCursorShape = 9
	/*Show the system's horizontal resize mouse cursor when the user hovers the node. A double-headed horizontal arrow. It tells the user they can resize the window or the panel horizontally.*/
	ControlCursorHsize ControlCursorShape = 10
	/*Show the system's window resize mouse cursor when the user hovers the node. The cursor is a double-headed arrow that goes from the bottom left to the top right. It tells the user they can resize the window or the panel both horizontally and vertically.*/
	ControlCursorBdiagsize ControlCursorShape = 11
	/*Show the system's window resize mouse cursor when the user hovers the node. The cursor is a double-headed arrow that goes from the top left to the bottom right, the opposite of [constant CURSOR_BDIAGSIZE]. It tells the user they can resize the window or the panel both horizontally and vertically.*/
	ControlCursorFdiagsize ControlCursorShape = 12
	/*Show the system's move mouse cursor when the user hovers the node. It shows 2 double-headed arrows at a 90 degree angle. It tells the user they can move a UI element freely.*/
	ControlCursorMove ControlCursorShape = 13
	/*Show the system's vertical split mouse cursor when the user hovers the node. On Windows, it's the same as [constant CURSOR_VSIZE].*/
	ControlCursorVsplit ControlCursorShape = 14
	/*Show the system's horizontal split mouse cursor when the user hovers the node. On Windows, it's the same as [constant CURSOR_HSIZE].*/
	ControlCursorHsplit ControlCursorShape = 15
	/*Show the system's help mouse cursor when the user hovers the node, a question mark.*/
	ControlCursorHelp ControlCursorShape = 16
)

type ControlFocusMode

type ControlFocusMode = classdb.ControlFocusMode
const (
	/*The node cannot grab focus. Use with [member focus_mode].*/
	ControlFocusNone ControlFocusMode = 0
	/*The node can only grab focus on mouse clicks. Use with [member focus_mode].*/
	ControlFocusClick ControlFocusMode = 1
	/*The node can grab focus on mouse click, using the arrows and the Tab keys on the keyboard, or using the D-pad buttons on a gamepad. Use with [member focus_mode].*/
	ControlFocusAll ControlFocusMode = 2
)

type ControlGrowDirection

type ControlGrowDirection = classdb.ControlGrowDirection
const (
	/*The control will grow to the left or top to make up if its minimum size is changed to be greater than its current size on the respective axis.*/
	ControlGrowDirectionBegin ControlGrowDirection = 0
	/*The control will grow to the right or bottom to make up if its minimum size is changed to be greater than its current size on the respective axis.*/
	ControlGrowDirectionEnd ControlGrowDirection = 1
	/*The control will grow in both directions equally to make up if its minimum size is changed to be greater than its current size.*/
	ControlGrowDirectionBoth ControlGrowDirection = 2
)

type ControlLayoutDirection

type ControlLayoutDirection = classdb.ControlLayoutDirection
const (
	/*Automatic layout direction, determined from the parent control layout direction.*/
	ControlLayoutDirectionInherited ControlLayoutDirection = 0
	/*Automatic layout direction, determined from the current locale.*/
	ControlLayoutDirectionLocale ControlLayoutDirection = 1
	/*Left-to-right layout direction.*/
	ControlLayoutDirectionLtr ControlLayoutDirection = 2
	/*Right-to-left layout direction.*/
	ControlLayoutDirectionRtl ControlLayoutDirection = 3
)

type ControlLayoutPreset

type ControlLayoutPreset = classdb.ControlLayoutPreset
const (
	/*Snap all 4 anchors to the top-left of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetTopLeft ControlLayoutPreset = 0
	/*Snap all 4 anchors to the top-right of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetTopRight ControlLayoutPreset = 1
	/*Snap all 4 anchors to the bottom-left of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetBottomLeft ControlLayoutPreset = 2
	/*Snap all 4 anchors to the bottom-right of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetBottomRight ControlLayoutPreset = 3
	/*Snap all 4 anchors to the center of the left edge of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetCenterLeft ControlLayoutPreset = 4
	/*Snap all 4 anchors to the center of the top edge of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetCenterTop ControlLayoutPreset = 5
	/*Snap all 4 anchors to the center of the right edge of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetCenterRight ControlLayoutPreset = 6
	/*Snap all 4 anchors to the center of the bottom edge of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetCenterBottom ControlLayoutPreset = 7
	/*Snap all 4 anchors to the center of the parent control's bounds. Use with [method set_anchors_preset].*/
	ControlPresetCenter ControlLayoutPreset = 8
	/*Snap all 4 anchors to the left edge of the parent control. The left offset becomes relative to the left edge and the top offset relative to the top left corner of the node's parent. Use with [method set_anchors_preset].*/
	ControlPresetLeftWide ControlLayoutPreset = 9
	/*Snap all 4 anchors to the top edge of the parent control. The left offset becomes relative to the top left corner, the top offset relative to the top edge, and the right offset relative to the top right corner of the node's parent. Use with [method set_anchors_preset].*/
	ControlPresetTopWide ControlLayoutPreset = 10
	/*Snap all 4 anchors to the right edge of the parent control. The right offset becomes relative to the right edge and the top offset relative to the top right corner of the node's parent. Use with [method set_anchors_preset].*/
	ControlPresetRightWide ControlLayoutPreset = 11
	/*Snap all 4 anchors to the bottom edge of the parent control. The left offset becomes relative to the bottom left corner, the bottom offset relative to the bottom edge, and the right offset relative to the bottom right corner of the node's parent. Use with [method set_anchors_preset].*/
	ControlPresetBottomWide ControlLayoutPreset = 12
	/*Snap all 4 anchors to a vertical line that cuts the parent control in half. Use with [method set_anchors_preset].*/
	ControlPresetVcenterWide ControlLayoutPreset = 13
	/*Snap all 4 anchors to a horizontal line that cuts the parent control in half. Use with [method set_anchors_preset].*/
	ControlPresetHcenterWide ControlLayoutPreset = 14
	/*Snap all 4 anchors to the respective corners of the parent control. Set all 4 offsets to 0 after you applied this preset and the [Control] will fit its parent control. Use with [method set_anchors_preset].*/
	ControlPresetFullRect ControlLayoutPreset = 15
)

type ControlLayoutPresetMode

type ControlLayoutPresetMode = classdb.ControlLayoutPresetMode
const (
	/*The control will be resized to its minimum size.*/
	ControlPresetModeMinsize ControlLayoutPresetMode = 0
	/*The control's width will not change.*/
	ControlPresetModeKeepWidth ControlLayoutPresetMode = 1
	/*The control's height will not change.*/
	ControlPresetModeKeepHeight ControlLayoutPresetMode = 2
	/*The control's size will not change.*/
	ControlPresetModeKeepSize ControlLayoutPresetMode = 3
)

type ControlMouseFilter

type ControlMouseFilter = classdb.ControlMouseFilter
const (
	/*The control will receive mouse movement input events and mouse button input events if clicked on through [method _gui_input]. And the control will receive the [signal mouse_entered] and [signal mouse_exited] signals. These events are automatically marked as handled, and they will not propagate further to other controls. This also results in blocking signals in other controls.*/
	ControlMouseFilterStop ControlMouseFilter = 0
	/*The control will receive mouse movement input events and mouse button input events if clicked on through [method _gui_input]. And the control will receive the [signal mouse_entered] and [signal mouse_exited] signals. If this control does not handle the event, the parent control (if any) will be considered, and so on until there is no more parent control to potentially handle it. This also allows signals to fire in other controls. If no control handled it, the event will be passed to [method Node._shortcut_input] for further processing.*/
	ControlMouseFilterPass ControlMouseFilter = 1
	/*The control will not receive mouse movement input events and mouse button input events if clicked on through [method _gui_input]. The control will also not receive the [signal mouse_entered] nor [signal mouse_exited] signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically.
	  [b]Note:[/b] If the control has received [signal mouse_entered] but not [signal mouse_exited], changing the [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] will cause [signal mouse_exited] to be emitted.*/
	ControlMouseFilterIgnore ControlMouseFilter = 2
)

type ControlSizeFlags

type ControlSizeFlags = classdb.ControlSizeFlags
const (
	/*Tells the parent [Container] to align the node with its start, either the top or the left edge. It is mutually exclusive with [constant SIZE_FILL] and other shrink size flags, but can be used with [constant SIZE_EXPAND] in some containers. Use with [member size_flags_horizontal] and [member size_flags_vertical].
	  [b]Note:[/b] Setting this flag is equal to not having any size flags.*/
	ControlSizeShrinkBegin ControlSizeFlags = 0
	/*Tells the parent [Container] to expand the bounds of this node to fill all the available space without pushing any other node. It is mutually exclusive with shrink size flags. Use with [member size_flags_horizontal] and [member size_flags_vertical].*/
	ControlSizeFill ControlSizeFlags = 1
	/*Tells the parent [Container] to let this node take all the available space on the axis you flag. If multiple neighboring nodes are set to expand, they'll share the space based on their stretch ratio. See [member size_flags_stretch_ratio]. Use with [member size_flags_horizontal] and [member size_flags_vertical].*/
	ControlSizeExpand ControlSizeFlags = 2
	/*Sets the node's size flags to both fill and expand. See [constant SIZE_FILL] and [constant SIZE_EXPAND] for more information.*/
	ControlSizeExpandFill ControlSizeFlags = 3
	/*Tells the parent [Container] to center the node in the available space. It is mutually exclusive with [constant SIZE_FILL] and other shrink size flags, but can be used with [constant SIZE_EXPAND] in some containers. Use with [member size_flags_horizontal] and [member size_flags_vertical].*/
	ControlSizeShrinkCenter ControlSizeFlags = 4
	/*Tells the parent [Container] to align the node with its end, either the bottom or the right edge. It is mutually exclusive with [constant SIZE_FILL] and other shrink size flags, but can be used with [constant SIZE_EXPAND] in some containers. Use with [member size_flags_horizontal] and [member size_flags_vertical].*/
	ControlSizeShrinkEnd ControlSizeFlags = 8
)

type ControlTextDirection

type ControlTextDirection = classdb.ControlTextDirection
const (
	/*Text writing direction is the same as layout direction.*/
	ControlTextDirectionInherited ControlTextDirection = 3
	/*Automatic text writing direction, determined from the current locale and text content.*/
	ControlTextDirectionAuto ControlTextDirection = 0
	/*Left-to-right text writing direction.*/
	ControlTextDirectionLtr ControlTextDirection = 1
	/*Right-to-left text writing direction.*/
	ControlTextDirectionRtl ControlTextDirection = 2
)

type ConvexPolygonShape2D

type ConvexPolygonShape2D = classdb.ConvexPolygonShape2D

A 2D convex polygon shape, intended for use in physics. Used internally in CollisionPolygon2D when it's in [constant CollisionPolygon2D.BUILD_SOLIDS] mode. ConvexPolygonShape2D is [i]solid[/i], 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. [b]Convex decomposition:[/b] 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 [constant CollisionPolygon2D.BUILD_SOLIDS] mode. To generate a collision polygon from a sprite, select the Sprite2D node, go to the [b]Sprite2D[/b] menu that appears above the viewport, and choose [b]Create Polygon2D Sibling[/b]. [b]Performance:[/b] 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.

type ConvexPolygonShape3D

type ConvexPolygonShape3D = classdb.ConvexPolygonShape3D

A 3D convex polyhedron shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. ConvexPolygonShape3D is [i]solid[/i], 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. [b]Convex decomposition:[/b] 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 [b]Mesh[/b] menu that appears above the viewport, and choose [b]Create Multiple Convex Collision Siblings[/b]. Alternatively, [method MeshInstance3D.create_multiple_convex_collisions] can be called in a script to perform this decomposition at run-time. [b]Performance:[/b] 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.

type Corner

type Corner = gd.Corner
const (
	/*Top-left corner.*/
	CornerTopLeft Corner = 0
	/*Top-right corner.*/
	CornerTopRight Corner = 1
	/*Bottom-right corner.*/
	CornerBottomRight Corner = 2
	/*Bottom-left corner.*/
	CornerBottomLeft Corner = 3
)

type Crypto

type Crypto = classdb.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 [X509Certificate]s. [codeblocks] [gdscript] extends Node

var crypto = Crypto.new() var key = CryptoKey.new() var cert = X509Certificate.new()

func _ready():

# Generate new RSA key.
key = crypto.generate_rsa(4096)
# Generate new self-signed certificate with the given key.
cert = crypto.generate_self_signed_certificate(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
var data = "Some data"
var encrypted = crypto.encrypt(key, data.to_utf8_buffer())
# Decryption
var decrypted = crypto.decrypt(key, encrypted)
# Signing
var signature = crypto.sign(HashingContext.HASH_SHA256, data.sha256_buffer(), key)
# Verifying
var verified = crypto.verify(HashingContext.HASH_SHA256, data.sha256_buffer(), signature, key)
# Checks
assert(verified)
assert(data.to_utf8_buffer() == decrypted)

[/gdscript] [csharp] 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);
    }
}

[/csharp] [/codeblocks]

type CryptoKey

type CryptoKey = classdb.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 [method Crypto.generate_self_signed_certificate] and as private key in [method StreamPeerTLS.accept_stream] along with the appropriate certificate.

type Cubemap

type Cubemap = classdb.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. [b]Note:[/b] Godot doesn't support using cubemaps in a PanoramaSkyMaterial. You can use [url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/cubemap_to_panorama.html]this tool[/url] to convert a cubemap to an equirectangular sky map.

type CubemapArray

type CubemapArray = classdb.CubemapArray

[CubemapArray]s are made of an array of [Cubemap]s. Like [Cubemap]s, 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 [CubemapArray]s is that they can be accessed in shader code using a single texture reference. In other words, you can pass multiple [Cubemap]s into a shader using a single CubemapArray. Moreover, [Cubemap]s are allocated in adjacent cache regions on the GPU. This makes [CubemapArray]s the most efficient way to store multiple [Cubemap]s. Internally, Godot uses [CubemapArray]s for many effects, including the Sky if you set [member ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections] to [code]true[/code]. To create such a texture file yourself, reimport your image files using the import presets of the File System dock. [b]Note:[/b] CubemapArray is not supported in the OpenGL 3 rendering backend.

type Curve

type Curve = classdb.Curve

This resource describes a mathematical curve by defining a set of points and tangents at each point. By default, it ranges between [code]0[/code] and [code]1[/code] on the Y axis and positions points relative to the [code]0.5[/code] Y position. See also Gradient which is designed for color interpolation. See also Curve2D and Curve3D.

type Curve2D

type Curve2D = classdb.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.

type Curve3D

type Curve3D = classdb.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.

type CurveTangentMode

type CurveTangentMode = classdb.CurveTangentMode
const (
	/*The tangent on this side of the point is user-defined.*/
	CurveTangentFree CurveTangentMode = 0
	/*The curve calculates the tangent on this side of the point as the slope halfway towards the adjacent point.*/
	CurveTangentLinear CurveTangentMode = 1
	/*The total number of available tangent modes.*/
	CurveTangentModeCount CurveTangentMode = 2
)

type CurveTexture

type CurveTexture = classdb.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.

type CurveTextureTextureMode

type CurveTextureTextureMode = classdb.CurveTextureTextureMode
const (
	/*Store the curve equally across the red, green and blue channels. This uses more video memory, but is more compatible with shaders that only read the green and blue values.*/
	CurveTextureTextureModeRgb CurveTextureTextureMode = 0
	/*Store the curve only in the red channel. This saves video memory, but some custom shaders may not be able to work with this.*/
	CurveTextureTextureModeRed CurveTextureTextureMode = 1
)

type CurveXYZTexture

type CurveXYZTexture = classdb.CurveXYZTexture

A 1D texture where the red, green, and blue color channels correspond to points on 3 Curve resources. Compared to using separate [CurveTexture]s, 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.

type CylinderMesh

type CylinderMesh = classdb.CylinderMesh

Class representing a cylindrical PrimitiveMesh. This class can be used to create cones by setting either the [member top_radius] or [member bottom_radius] properties to [code]0.0[/code].

type CylinderShape3D

type CylinderShape3D = classdb.CylinderShape3D

A 3D cylinder shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. [b]Note:[/b] There are several known bugs with cylinder collision shapes. Using CapsuleShape3D or BoxShape3D instead is recommended. [b]Performance:[/b] CylinderShape3D is fast to check collisions against, but it is slower than CapsuleShape3D, BoxShape3D, and SphereShape3D.

type DTLSServer

type DTLSServer = classdb.DTLSServer

This class is used to store the state of a DTLS server. Upon [method setup] it converts connected PacketPeerUDP to PacketPeerDTLS accepting them via [method take_connection] 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: [codeblocks] [gdscript] # server_node.gd extends Node

var dtls := DTLSServer.new() var server := UDPServer.new() var peers = []

func _ready():

server.listen(4242)
var key = load("key.key") # Your private key.
var cert = load("cert.crt") # Your X509 certificate.
dtls.setup(key, cert)

func _process(delta):

while server.is_connection_available():
    var peer: PacketPeerUDP = server.take_connection()
    var dtls_peer: PacketPeerDTLS = dtls.take_connection(peer)
    if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:
        continue # It is normal that 50% of the connections fails due to cookie exchange.
    print("Peer connected!")
    peers.append(dtls_peer)

for p in peers:
    p.poll() # Must poll to update the state.
    if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:
        while p.get_available_packet_count() > 0:
            print("Received message from client: %s" % p.get_packet().get_string_from_utf8())
            p.put_packet("Hello DTLS client".to_utf8_buffer())

[/gdscript] [csharp] // 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());
                }
            }
        }
    }
}

[/csharp] [/codeblocks] [codeblocks] [gdscript] # client_node.gd extends Node

var dtls := PacketPeerDTLS.new() var udp := PacketPeerUDP.new() var connected = false

func _ready():

udp.connect_to_host("127.0.0.1", 4242)
dtls.connect_to_peer(udp, false) # Use true in production for certificate validation!

func _process(delta):

dtls.poll()
if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:
    if !connected:
        # Try to contact server
        dtls.put_packet("The answer is... 42!".to_utf8_buffer())
    while dtls.get_available_packet_count() > 0:
        print("Connected: %s" % dtls.get_packet().get_string_from_utf8())
        connected = true

[/gdscript] [csharp] // 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;
            }
        }
    }
}

[/csharp] [/codeblocks]

type DampedSpringJoint2D

type DampedSpringJoint2D = classdb.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.

type Decal

type Decal = classdb.Decal

[Decal]s 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 [Texture2D]s 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 [Texture2D]s 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. [b]Note:[/b] 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. [b]Note:[/b] 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. [b]Note:[/b] 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, [member GeometryInstance3D.extra_cull_margin] must be increased on the mesh. Otherwise, the decal may not be visible on the mesh.

type DecalDecalTexture

type DecalDecalTexture = classdb.DecalDecalTexture
const (
	/*[Texture2D] corresponding to [member texture_albedo].*/
	DecalTextureAlbedo DecalDecalTexture = 0
	/*[Texture2D] corresponding to [member texture_normal].*/
	DecalTextureNormal DecalDecalTexture = 1
	/*[Texture2D] corresponding to [member texture_orm].*/
	DecalTextureOrm DecalDecalTexture = 2
	/*[Texture2D] corresponding to [member texture_emission].*/
	DecalTextureEmission DecalDecalTexture = 3
	/*Max size of [enum DecalTexture] enum.*/
	DecalTextureMax DecalDecalTexture = 4
)

type Degrees

type Degrees = xy.Degrees

type Dictionary

type Dictionary = gd.Dictionary

type DirAccess

type DirAccess = classdb.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 [code]res://[/code] and [code]user://[/code]). [codeblock] # Standard var dir = DirAccess.open("user://levels") dir.make_dir("world1") # Static DirAccess.make_dir_absolute("user://levels/world1") [/codeblock] [b]Note:[/b] 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: [codeblocks] [gdscript] func dir_contents(path):

var dir = DirAccess.open(path)
if dir:
    dir.list_dir_begin()
    var file_name = dir.get_next()
    while file_name != "":
        if dir.current_is_dir():
            print("Found directory: " + file_name)
        else:
            print("Found file: " + file_name)
        file_name = dir.get_next()
else:
    print("An error occurred when trying to access the path.")

[/gdscript] [csharp] 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.");
    }
}

[/csharp] [/codeblocks]

type DirectionalLight2D

type DirectionalLight2D = classdb.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). [b]Note:[/b] 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 [member CanvasItem.light_mask].

type DirectionalLight3D

type DirectionalLight3D = classdb.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.

type DirectionalLight3DShadowMode

type DirectionalLight3DShadowMode = classdb.DirectionalLight3DShadowMode
const (
	/*Renders the entire scene's shadow map from an orthogonal point of view. This is the fastest directional shadow mode. May result in blurrier shadows on close objects.*/
	DirectionalLight3DShadowOrthogonal DirectionalLight3DShadowMode = 0
	/*Splits the view frustum in 2 areas, each with its own shadow map. This shadow mode is a compromise between [constant SHADOW_ORTHOGONAL] and [constant SHADOW_PARALLEL_4_SPLITS] in terms of performance.*/
	DirectionalLight3DShadowParallel2Splits DirectionalLight3DShadowMode = 1
	/*Splits the view frustum in 4 areas, each with its own shadow map. This is the slowest directional shadow mode.*/
	DirectionalLight3DShadowParallel4Splits DirectionalLight3DShadowMode = 2
)

type DirectionalLight3DSkyMode

type DirectionalLight3DSkyMode = classdb.DirectionalLight3DSkyMode
const (
	/*Makes the light visible in both scene lighting and sky rendering.*/
	DirectionalLight3DSkyModeLightAndSky DirectionalLight3DSkyMode = 0
	/*Makes the light visible in scene lighting only (including direct lighting and global illumination). When using this mode, the light will not be visible from sky shaders.*/
	DirectionalLight3DSkyModeLightOnly DirectionalLight3DSkyMode = 1
	/*Makes the light visible to sky shaders only. When using this mode the light will not cast light into the scene (either through direct lighting or through global illumination), but can be accessed through sky shaders. This can be useful, for example, when you want to control sky effects without illuminating the scene (during a night cycle, for example).*/
	DirectionalLight3DSkyModeSkyOnly DirectionalLight3DSkyMode = 2
)

type DisplayServerCursorShape

type DisplayServerCursorShape = classdb.DisplayServerCursorShape
const (
	/*Arrow cursor shape. This is the default when not pointing anything that overrides the mouse cursor, such as a [LineEdit] or [TextEdit].*/
	DisplayServerCursorArrow DisplayServerCursorShape = 0
	/*I-beam cursor shape. This is used by default when hovering a control that accepts text input, such as [LineEdit] or [TextEdit].*/
	DisplayServerCursorIbeam DisplayServerCursorShape = 1
	/*Pointing hand cursor shape. This is used by default when hovering a [LinkButton] or a URL tag in a [RichTextLabel].*/
	DisplayServerCursorPointingHand DisplayServerCursorShape = 2
	/*Crosshair cursor. This is intended to be displayed when the user needs precise aim over an element, such as a rectangle selection tool or a color picker.*/
	DisplayServerCursorCross DisplayServerCursorShape = 3
	/*Wait cursor. On most cursor themes, this displays a spinning icon [i]besides[/i] the arrow. Intended to be used for non-blocking operations (when the user can do something else at the moment). See also [constant CURSOR_BUSY].*/
	DisplayServerCursorWait DisplayServerCursorShape = 4
	/*Wait cursor. On most cursor themes, this [i]replaces[/i] the arrow with a spinning icon. Intended to be used for blocking operations (when the user can't do anything else at the moment). See also [constant CURSOR_WAIT].*/
	DisplayServerCursorBusy DisplayServerCursorShape = 5
	/*Dragging hand cursor. This is displayed during drag-and-drop operations. See also [constant CURSOR_CAN_DROP].*/
	DisplayServerCursorDrag DisplayServerCursorShape = 6
	/*"Can drop" cursor. This is displayed during drag-and-drop operations if hovering over a [Control] that can accept the drag-and-drop event. On most cursor themes, this displays a dragging hand with an arrow symbol besides it. See also [constant CURSOR_DRAG].*/
	DisplayServerCursorCanDrop DisplayServerCursorShape = 7
	/*Forbidden cursor. This is displayed during drag-and-drop operations if the hovered [Control] can't accept the drag-and-drop event.*/
	DisplayServerCursorForbidden DisplayServerCursorShape = 8
	/*Vertical resize cursor. Intended to be displayed when the hovered [Control] can be vertically resized using the mouse. See also [constant CURSOR_VSPLIT].*/
	DisplayServerCursorVsize DisplayServerCursorShape = 9
	/*Horizontal resize cursor. Intended to be displayed when the hovered [Control] can be horizontally resized using the mouse. See also [constant CURSOR_HSPLIT].*/
	DisplayServerCursorHsize DisplayServerCursorShape = 10
	/*Secondary diagonal resize cursor (top-right/bottom-left). Intended to be displayed when the hovered [Control] can be resized on both axes at once using the mouse.*/
	DisplayServerCursorBdiagsize DisplayServerCursorShape = 11
	/*Main diagonal resize cursor (top-left/bottom-right). Intended to be displayed when the hovered [Control] can be resized on both axes at once using the mouse.*/
	DisplayServerCursorFdiagsize DisplayServerCursorShape = 12
	/*Move cursor. Intended to be displayed when the hovered [Control] can be moved using the mouse.*/
	DisplayServerCursorMove DisplayServerCursorShape = 13
	/*Vertical split cursor. This is displayed when hovering a [Control] with splits that can be vertically resized using the mouse, such as [VSplitContainer]. On some cursor themes, this cursor may have the same appearance as [constant CURSOR_VSIZE].*/
	DisplayServerCursorVsplit DisplayServerCursorShape = 14
	/*Horizontal split cursor. This is displayed when hovering a [Control] with splits that can be horizontally resized using the mouse, such as [HSplitContainer]. On some cursor themes, this cursor may have the same appearance as [constant CURSOR_HSIZE].*/
	DisplayServerCursorHsplit DisplayServerCursorShape = 15
	/*Help cursor. On most cursor themes, this displays a question mark icon instead of the mouse cursor. Intended to be used when the user has requested help on the next element that will be clicked.*/
	DisplayServerCursorHelp DisplayServerCursorShape = 16
	/*Represents the size of the [enum CursorShape] enum.*/
	DisplayServerCursorMax DisplayServerCursorShape = 17
)

type DisplayServerFeature

type DisplayServerFeature = classdb.DisplayServerFeature
const (
	/*Display server supports global menu. This allows the application to display its menu items in the operating system's top bar. [b]macOS[/b]*/
	DisplayServerFeatureGlobalMenu DisplayServerFeature = 0
	/*Display server supports multiple windows that can be moved outside of the main window. [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureSubwindows DisplayServerFeature = 1
	/*Display server supports touchscreen input. [b]Windows, Linux (X11), Android, iOS, Web[/b]*/
	DisplayServerFeatureTouchscreen DisplayServerFeature = 2
	/*Display server supports mouse input. [b]Windows, macOS, Linux (X11), Android, Web[/b]*/
	DisplayServerFeatureMouse DisplayServerFeature = 3
	/*Display server supports warping mouse coordinates to keep the mouse cursor constrained within an area, but looping when one of the edges is reached. [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureMouseWarp DisplayServerFeature = 4
	/*Display server supports setting and getting clipboard data. See also [constant FEATURE_CLIPBOARD_PRIMARY]. [b]Windows, macOS, Linux (X11), Android, iOS, Web[/b]*/
	DisplayServerFeatureClipboard DisplayServerFeature = 5
	/*Display server supports popping up a virtual keyboard when requested to input text without a physical keyboard. [b]Android, iOS, Web[/b]*/
	DisplayServerFeatureVirtualKeyboard DisplayServerFeature = 6
	/*Display server supports setting the mouse cursor shape to be different from the default. [b]Windows, macOS, Linux (X11), Android, Web[/b]*/
	DisplayServerFeatureCursorShape DisplayServerFeature = 7
	/*Display server supports setting the mouse cursor shape to a custom image. [b]Windows, macOS, Linux (X11), Web[/b]*/
	DisplayServerFeatureCustomCursorShape DisplayServerFeature = 8
	/*Display server supports spawning dialogs using the operating system's native look-and-feel. [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureNativeDialog DisplayServerFeature = 9
	/*Display server supports [url=https://en.wikipedia.org/wiki/Input_method]Input Method Editor[/url], which is commonly used for inputting Chinese/Japanese/Korean text. This is handled by the operating system, rather than by Godot. [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureIme DisplayServerFeature = 10
	/*Display server supports windows can use per-pixel transparency to make windows behind them partially or fully visible. [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureWindowTransparency DisplayServerFeature = 11
	/*Display server supports querying the operating system's display scale factor. This allows for [i]reliable[/i] automatic hiDPI display detection, as opposed to guessing based on the screen resolution and reported display DPI (which can be unreliable due to broken monitor EDID). [b]Windows, macOS[/b]*/
	DisplayServerFeatureHidpi DisplayServerFeature = 12
	/*Display server supports changing the window icon (usually displayed in the top-left corner). [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureIcon DisplayServerFeature = 13
	/*Display server supports changing the window icon (usually displayed in the top-left corner). [b]Windows, macOS[/b]*/
	DisplayServerFeatureNativeIcon DisplayServerFeature = 14
	/*Display server supports changing the screen orientation. [b]Android, iOS[/b]*/
	DisplayServerFeatureOrientation DisplayServerFeature = 15
	/*Display server supports V-Sync status can be changed from the default (which is forced to be enabled platforms not supporting this feature). [b]Windows, macOS, Linux (X11)[/b]*/
	DisplayServerFeatureSwapBuffers DisplayServerFeature = 16
	/*Display server supports Primary clipboard can be used. This is a different clipboard from [constant FEATURE_CLIPBOARD]. [b]Linux (X11)[/b]*/
	DisplayServerFeatureClipboardPrimary DisplayServerFeature = 18
	/*Display server supports text-to-speech. See [code]tts_*[/code] methods. [b]Windows, macOS, Linux (X11), Android, iOS, Web[/b]*/
	DisplayServerFeatureTextToSpeech DisplayServerFeature = 19
	/*Display server supports expanding window content to the title. See [constant WINDOW_FLAG_EXTEND_TO_TITLE]. [b]macOS[/b]*/
	DisplayServerFeatureExtendToTitle DisplayServerFeature = 20
	/*Display server supports reading screen pixels. See [method screen_get_pixel].*/
	DisplayServerFeatureScreenCapture DisplayServerFeature = 21
)

type DisplayServerFileDialogMode

type DisplayServerFileDialogMode = classdb.DisplayServerFileDialogMode
const (
	/*The native file dialog allows selecting one, and only one file.*/
	DisplayServerFileDialogModeOpenFile DisplayServerFileDialogMode = 0
	/*The native file dialog allows selecting multiple files.*/
	DisplayServerFileDialogModeOpenFiles DisplayServerFileDialogMode = 1
	/*The native file dialog only allows selecting a directory, disallowing the selection of any file.*/
	DisplayServerFileDialogModeOpenDir DisplayServerFileDialogMode = 2
	/*The native file dialog allows selecting one file or directory.*/
	DisplayServerFileDialogModeOpenAny DisplayServerFileDialogMode = 3
	/*The native file dialog will warn when a file exists.*/
	DisplayServerFileDialogModeSaveFile DisplayServerFileDialogMode = 4
)

type DisplayServerHandleType

type DisplayServerHandleType = classdb.DisplayServerHandleType
const (
	/*Display handle:
	  - Linux (X11): [code]X11::Display*[/code] for the display.
	  - Android: [code]EGLDisplay[/code] for the display.*/
	DisplayServerDisplayHandle DisplayServerHandleType = 0
	/*Window handle:
	  - Windows: [code]HWND[/code] for the window.
	  - Linux (X11): [code]X11::Window*[/code] for the window.
	  - macOS: [code]NSWindow*[/code] for the window.
	  - iOS: [code]UIViewController*[/code] for the view controller.
	  - Android: [code]jObject[/code] for the activity.*/
	DisplayServerWindowHandle DisplayServerHandleType = 1
	/*Window view:
	  - Windows: [code]HDC[/code] for the window (only with the GL Compatibility renderer).
	  - macOS: [code]NSView*[/code] for the window main view.
	  - iOS: [code]UIView*[/code] for the window main view.*/
	DisplayServerWindowView DisplayServerHandleType = 2
	/*OpenGL context (only with the GL Compatibility renderer):
	  - Windows: [code]HGLRC[/code] for the window (native GL), or [code]EGLContext[/code] for the window (ANGLE).
	  - Linux: [code]GLXContext*[/code] for the window.
	  - macOS: [code]NSOpenGLContext*[/code] for the window (native GL), or [code]EGLContext[/code] for the window (ANGLE).
	  - Android: [code]EGLContext[/code] for the window.*/
	DisplayServerOpenglContext DisplayServerHandleType = 3
)

type DisplayServerMouseMode

type DisplayServerMouseMode = classdb.DisplayServerMouseMode
const (
	/*Makes the mouse cursor visible if it is hidden.*/
	DisplayServerMouseModeVisible DisplayServerMouseMode = 0
	/*Makes the mouse cursor hidden if it is visible.*/
	DisplayServerMouseModeHidden DisplayServerMouseMode = 1
	/*Captures the mouse. The mouse will be hidden and its position locked at the center of the window manager's window.
	  [b]Note:[/b] If you want to process the mouse's movement in this mode, you need to use [member InputEventMouseMotion.relative].*/
	DisplayServerMouseModeCaptured DisplayServerMouseMode = 2
	/*Confines the mouse cursor to the game window, and make it visible.*/
	DisplayServerMouseModeConfined DisplayServerMouseMode = 3
	/*Confines the mouse cursor to the game window, and make it hidden.*/
	DisplayServerMouseModeConfinedHidden DisplayServerMouseMode = 4
)

type DisplayServerScreenOrientation

type DisplayServerScreenOrientation = classdb.DisplayServerScreenOrientation
const (
	/*Default landscape orientation.*/
	DisplayServerScreenLandscape DisplayServerScreenOrientation = 0
	/*Default portrait orientation.*/
	DisplayServerScreenPortrait DisplayServerScreenOrientation = 1
	/*Reverse landscape orientation (upside down).*/
	DisplayServerScreenReverseLandscape DisplayServerScreenOrientation = 2
	/*Reverse portrait orientation (upside down).*/
	DisplayServerScreenReversePortrait DisplayServerScreenOrientation = 3
	/*Automatic landscape orientation (default or reverse depending on sensor).*/
	DisplayServerScreenSensorLandscape DisplayServerScreenOrientation = 4
	/*Automatic portrait orientation (default or reverse depending on sensor).*/
	DisplayServerScreenSensorPortrait DisplayServerScreenOrientation = 5
	/*Automatic landscape or portrait orientation (default or reverse depending on sensor).*/
	DisplayServerScreenSensor DisplayServerScreenOrientation = 6
)

type DisplayServerTTSUtteranceEvent

type DisplayServerTTSUtteranceEvent = classdb.DisplayServerTTSUtteranceEvent
const (
	/*Utterance has begun to be spoken.*/
	DisplayServerTtsUtteranceStarted DisplayServerTTSUtteranceEvent = 0
	/*Utterance was successfully finished.*/
	DisplayServerTtsUtteranceEnded DisplayServerTTSUtteranceEvent = 1
	/*Utterance was canceled, or TTS service was unable to process it.*/
	DisplayServerTtsUtteranceCanceled DisplayServerTTSUtteranceEvent = 2
	/*Utterance reached a word or sentence boundary.*/
	DisplayServerTtsUtteranceBoundary DisplayServerTTSUtteranceEvent = 3
)

type DisplayServerVSyncMode

type DisplayServerVSyncMode = classdb.DisplayServerVSyncMode
const (
	/*No vertical synchronization, which means the engine will display frames as fast as possible (tearing may be visible). Framerate is unlimited (regardless of [member Engine.max_fps]).*/
	DisplayServerVsyncDisabled DisplayServerVSyncMode = 0
	/*Default vertical synchronization mode, the image is displayed only on vertical blanking intervals (no tearing is visible). Framerate is limited by the monitor refresh rate (regardless of [member Engine.max_fps]).*/
	DisplayServerVsyncEnabled DisplayServerVSyncMode = 1
	/*Behaves like [constant VSYNC_DISABLED] when the framerate drops below the screen's refresh rate to reduce stuttering (tearing may be visible). Otherwise, vertical synchronization is enabled to avoid tearing. Framerate is limited by the monitor refresh rate (regardless of [member Engine.max_fps]). Behaves like [constant VSYNC_ENABLED] when using the Compatibility rendering method.*/
	DisplayServerVsyncAdaptive DisplayServerVSyncMode = 2
	/*Displays the most recent image in the queue on vertical blanking intervals, while rendering to the other images (no tearing is visible). Framerate is unlimited (regardless of [member Engine.max_fps]).
	  Although not guaranteed, the images can be rendered as fast as possible, which may reduce input lag (also called "Fast" V-Sync mode). [constant VSYNC_MAILBOX] works best when at least twice as many frames as the display refresh rate are rendered. Behaves like [constant VSYNC_ENABLED] when using the Compatibility rendering method.*/
	DisplayServerVsyncMailbox DisplayServerVSyncMode = 3
)

type DisplayServerVirtualKeyboardType

type DisplayServerVirtualKeyboardType = classdb.DisplayServerVirtualKeyboardType
const (
	/*Default text virtual keyboard.*/
	DisplayServerKeyboardTypeDefault DisplayServerVirtualKeyboardType = 0
	/*Multiline virtual keyboard.*/
	DisplayServerKeyboardTypeMultiline DisplayServerVirtualKeyboardType = 1
	/*Virtual number keypad, useful for PIN entry.*/
	DisplayServerKeyboardTypeNumber DisplayServerVirtualKeyboardType = 2
	/*Virtual number keypad, useful for entering fractional numbers.*/
	DisplayServerKeyboardTypeNumberDecimal DisplayServerVirtualKeyboardType = 3
	/*Virtual phone number keypad.*/
	DisplayServerKeyboardTypePhone DisplayServerVirtualKeyboardType = 4
	/*Virtual keyboard with additional keys to assist with typing email addresses.*/
	DisplayServerKeyboardTypeEmailAddress DisplayServerVirtualKeyboardType = 5
	/*Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization.
	  [b]Note:[/b] This is not supported on Web. Instead, this behaves identically to [constant KEYBOARD_TYPE_DEFAULT].*/
	DisplayServerKeyboardTypePassword DisplayServerVirtualKeyboardType = 6
	/*Virtual keyboard with additional keys to assist with typing URLs.*/
	DisplayServerKeyboardTypeUrl DisplayServerVirtualKeyboardType = 7
)

type DisplayServerWindowEvent

type DisplayServerWindowEvent = classdb.DisplayServerWindowEvent
const (
	/*Sent when the mouse pointer enters the window.*/
	DisplayServerWindowEventMouseEnter DisplayServerWindowEvent = 0
	/*Sent when the mouse pointer exits the window.*/
	DisplayServerWindowEventMouseExit DisplayServerWindowEvent = 1
	/*Sent when the window grabs focus.*/
	DisplayServerWindowEventFocusIn DisplayServerWindowEvent = 2
	/*Sent when the window loses focus.*/
	DisplayServerWindowEventFocusOut DisplayServerWindowEvent = 3
	/*Sent when the user has attempted to close the window (e.g. close button is pressed).*/
	DisplayServerWindowEventCloseRequest DisplayServerWindowEvent = 4
	/*Sent when the device "Back" button is pressed.
	  [b]Note:[/b] This event is implemented only on Android.*/
	DisplayServerWindowEventGoBackRequest DisplayServerWindowEvent = 5
	/*Sent when the window is moved to the display with different DPI, or display DPI is changed.
	  [b]Note:[/b] This flag is implemented only on macOS.*/
	DisplayServerWindowEventDpiChange DisplayServerWindowEvent = 6
	/*Sent when the window title bar decoration is changed (e.g. [constant WINDOW_FLAG_EXTEND_TO_TITLE] is set or window entered/exited full screen mode).
	  [b]Note:[/b] This flag is implemented only on macOS.*/
	DisplayServerWindowEventTitlebarChange DisplayServerWindowEvent = 7
)

type DisplayServerWindowFlags

type DisplayServerWindowFlags = classdb.DisplayServerWindowFlags
const (
	/*The window can't be resized by dragging its resize grip. It's still possible to resize the window using [method window_set_size]. This flag is ignored for full screen windows.*/
	DisplayServerWindowFlagResizeDisabled DisplayServerWindowFlags = 0
	/*The window do not have native title bar and other decorations. This flag is ignored for full-screen windows.*/
	DisplayServerWindowFlagBorderless DisplayServerWindowFlags = 1
	/*The window is floating on top of all other windows. This flag is ignored for full-screen windows.*/
	DisplayServerWindowFlagAlwaysOnTop DisplayServerWindowFlags = 2
	/*The window background can be transparent.
	  [b]Note:[/b] This flag has no effect if [member ProjectSettings.display/window/per_pixel_transparency/allowed] is set to [code]false[/code].
	  [b]Note:[/b] Transparency support is implemented on Linux (X11), macOS and Windows, but availability might vary depending on GPU driver, display manager, and compositor capabilities.*/
	DisplayServerWindowFlagTransparent DisplayServerWindowFlags = 3
	/*The window can't be focused. No-focus window will ignore all input, except mouse clicks.*/
	DisplayServerWindowFlagNoFocus DisplayServerWindowFlags = 4
	/*Window is part of menu or [OptionButton] dropdown. This flag can't be changed when the window is visible. An active popup window will exclusively receive all input, without stealing focus from its parent. Popup windows are automatically closed when uses click outside it, or when an application is switched. Popup window must have transient parent set (see [method window_set_transient]).*/
	DisplayServerWindowFlagPopup DisplayServerWindowFlags = 5
	/*Window content is expanded to the full size of the window. Unlike borderless window, the frame is left intact and can be used to resize the window, title bar is transparent, but have minimize/maximize/close buttons.
	  Use [method window_set_window_buttons_offset] to adjust minimize/maximize/close buttons offset.
	  Use [method window_get_safe_title_margins] to determine area under the title bar that is not covered by decorations.
	  [b]Note:[/b] This flag is implemented only on macOS.*/
	DisplayServerWindowFlagExtendToTitle DisplayServerWindowFlags = 6
	/*All mouse events are passed to the underlying window of the same application.*/
	DisplayServerWindowFlagMousePassthrough DisplayServerWindowFlags = 7
	/*Max value of the [enum WindowFlags].*/
	DisplayServerWindowFlagMax DisplayServerWindowFlags = 8
)

type DisplayServerWindowMode

type DisplayServerWindowMode = classdb.DisplayServerWindowMode
const (
	/*Windowed mode, i.e. [Window] doesn't occupy the whole screen (unless set to the size of the screen).*/
	DisplayServerWindowModeWindowed DisplayServerWindowMode = 0
	/*Minimized window mode, i.e. [Window] is not visible and available on window manager's window list. Normally happens when the minimize button is pressed.*/
	DisplayServerWindowModeMinimized DisplayServerWindowMode = 1
	/*Maximized window mode, i.e. [Window] will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed.*/
	DisplayServerWindowModeMaximized DisplayServerWindowMode = 2
	/*Full screen mode with full multi-window support.
	  Full screen window covers the entire display area of a screen and has no decorations. The display's video mode is not changed.
	  [b]On Windows:[/b] Multi-window full-screen mode has a 1px border of the [member ProjectSettings.rendering/environment/defaults/default_clear_color] color.
	  [b]On macOS:[/b] A new desktop is used to display the running project.
	  [b]Note:[/b] Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple resolutions[/url] when enabling full screen mode.*/
	DisplayServerWindowModeFullscreen DisplayServerWindowMode = 3
	/*A single window full screen mode. This mode has less overhead, but only one window can be open on a given screen at a time (opening a child window or application switching will trigger a full screen transition).
	  Full screen window covers the entire display area of a screen and has no border or decorations. The display's video mode is not changed.
	  [b]On Windows:[/b] Depending on video driver, full screen transition might cause screens to go black for a moment.
	  [b]On macOS:[/b] A new desktop is used to display the running project. Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
	  [b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.
	  [b]Note:[/b] Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple resolutions[/url] when enabling full screen mode.*/
	DisplayServerWindowModeExclusiveFullscreen DisplayServerWindowMode = 4
)

type ENetConnection

type ENetConnection = classdb.ENetConnection

ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol).

type ENetConnectionCompressionMode

type ENetConnectionCompressionMode = classdb.ENetConnectionCompressionMode
const (
	/*No compression. This uses the most bandwidth, but has the upside of requiring the fewest CPU resources. This option may also be used to make network debugging using tools like Wireshark easier.*/
	ENetConnectionCompressNone ENetConnectionCompressionMode = 0
	/*ENet's built-in range encoding. Works well on small packets, but is not the most efficient algorithm on packets larger than 4 KB.*/
	ENetConnectionCompressRangeCoder ENetConnectionCompressionMode = 1
	/*[url=https://fastlz.org/]FastLZ[/url] compression. This option uses less CPU resources compared to [constant COMPRESS_ZLIB], at the expense of using more bandwidth.*/
	ENetConnectionCompressFastlz ENetConnectionCompressionMode = 2
	/*[url=https://www.zlib.net/]Zlib[/url] compression. This option uses less bandwidth compared to [constant COMPRESS_FASTLZ], at the expense of using more CPU resources.*/
	ENetConnectionCompressZlib ENetConnectionCompressionMode = 3
	/*[url=https://facebook.github.io/zstd/]Zstandard[/url] compression. Note that this algorithm is not very efficient on packets smaller than 4 KB. Therefore, it's recommended to use other compression algorithms in most cases.*/
	ENetConnectionCompressZstd ENetConnectionCompressionMode = 4
)

type ENetConnectionEventType

type ENetConnectionEventType = classdb.ENetConnectionEventType
const (
	/*An error occurred during [method service]. You will likely need to [method destroy] the host and recreate it.*/
	ENetConnectionEventError ENetConnectionEventType = -1
	/*No event occurred within the specified time limit.*/
	ENetConnectionEventNone ENetConnectionEventType = 0
	/*A connection request initiated by enet_host_connect has completed. The array will contain the peer which successfully connected.*/
	ENetConnectionEventConnect ENetConnectionEventType = 1
	/*A peer has disconnected. This event is generated on a successful completion of a disconnect initiated by [method ENetPacketPeer.peer_disconnect], if a peer has timed out, or if a connection request initialized by [method connect_to_host] has timed out. The array will contain the peer which disconnected. The data field contains user supplied data describing the disconnection, or 0, if none is available.*/
	ENetConnectionEventDisconnect ENetConnectionEventType = 2
	/*A packet has been received from a peer. The array will contain the peer which sent the packet and the channel number upon which the packet was received. The received packet will be queued to the associated [ENetPacketPeer].*/
	ENetConnectionEventReceive ENetConnectionEventType = 3
)

type ENetConnectionHostStatistic

type ENetConnectionHostStatistic = classdb.ENetConnectionHostStatistic
const (
	/*Total data sent.*/
	ENetConnectionHostTotalSentData ENetConnectionHostStatistic = 0
	/*Total UDP packets sent.*/
	ENetConnectionHostTotalSentPackets ENetConnectionHostStatistic = 1
	/*Total data received.*/
	ENetConnectionHostTotalReceivedData ENetConnectionHostStatistic = 2
	/*Total UDP packets received.*/
	ENetConnectionHostTotalReceivedPackets ENetConnectionHostStatistic = 3
)

type ENetMultiplayerPeer

type ENetMultiplayerPeer = classdb.ENetMultiplayerPeer

A MultiplayerPeer implementation that should be passed to [member MultiplayerAPI.multiplayer_peer] 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. [b]Note:[/b] 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.

type ENetPacketPeer

type ENetPacketPeer = classdb.ENetPacketPeer

A PacketPeer implementation representing a peer of an ENetConnection. This class cannot be instantiated directly but can be retrieved during [method ENetConnection.service] or via [method ENetConnection.get_peers]. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type ENetPacketPeerPeerState

type ENetPacketPeerPeerState = classdb.ENetPacketPeerPeerState
const (
	/*The peer is disconnected.*/
	ENetPacketPeerStateDisconnected ENetPacketPeerPeerState = 0
	/*The peer is currently attempting to connect.*/
	ENetPacketPeerStateConnecting ENetPacketPeerPeerState = 1
	/*The peer has acknowledged the connection request.*/
	ENetPacketPeerStateAcknowledgingConnect ENetPacketPeerPeerState = 2
	/*The peer is currently connecting.*/
	ENetPacketPeerStateConnectionPending ENetPacketPeerPeerState = 3
	/*The peer has successfully connected, but is not ready to communicate with yet ([constant STATE_CONNECTED]).*/
	ENetPacketPeerStateConnectionSucceeded ENetPacketPeerPeerState = 4
	/*The peer is currently connected and ready to communicate with.*/
	ENetPacketPeerStateConnected ENetPacketPeerPeerState = 5
	/*The peer is slated to disconnect after it has no more outgoing packets to send.*/
	ENetPacketPeerStateDisconnectLater ENetPacketPeerPeerState = 6
	/*The peer is currently disconnecting.*/
	ENetPacketPeerStateDisconnecting ENetPacketPeerPeerState = 7
	/*The peer has acknowledged the disconnection request.*/
	ENetPacketPeerStateAcknowledgingDisconnect ENetPacketPeerPeerState = 8
	/*The peer has lost connection, but is not considered truly disconnected (as the peer didn't acknowledge the disconnection request).*/
	ENetPacketPeerStateZombie ENetPacketPeerPeerState = 9
)

type ENetPacketPeerPeerStatistic

type ENetPacketPeerPeerStatistic = classdb.ENetPacketPeerPeerStatistic
const (
	/*Mean packet loss of reliable packets as a ratio with respect to the [constant PACKET_LOSS_SCALE].*/
	ENetPacketPeerPeerPacketLoss ENetPacketPeerPeerStatistic = 0
	/*Packet loss variance.*/
	ENetPacketPeerPeerPacketLossVariance ENetPacketPeerPeerStatistic = 1
	/*The time at which packet loss statistics were last updated (in milliseconds since the connection started). The interval for packet loss statistics updates is 10 seconds, and at least one packet must have been sent since the last statistics update.*/
	ENetPacketPeerPeerPacketLossEpoch ENetPacketPeerPeerStatistic = 2
	/*Mean packet round trip time for reliable packets.*/
	ENetPacketPeerPeerRoundTripTime ENetPacketPeerPeerStatistic = 3
	/*Variance of the mean round trip time.*/
	ENetPacketPeerPeerRoundTripTimeVariance ENetPacketPeerPeerStatistic = 4
	/*Last recorded round trip time for a reliable packet.*/
	ENetPacketPeerPeerLastRoundTripTime ENetPacketPeerPeerStatistic = 5
	/*Variance of the last trip time recorded.*/
	ENetPacketPeerPeerLastRoundTripTimeVariance ENetPacketPeerPeerStatistic = 6
	/*The peer's current throttle status.*/
	ENetPacketPeerPeerPacketThrottle ENetPacketPeerPeerStatistic = 7
	/*The maximum number of unreliable packets that should not be dropped. This value is always greater than or equal to [code]1[/code]. The initial value is equal to [constant PACKET_THROTTLE_SCALE].*/
	ENetPacketPeerPeerPacketThrottleLimit ENetPacketPeerPeerStatistic = 8
	/*Internal value used to increment the packet throttle counter. The value is hardcoded to [code]7[/code] and cannot be changed. You probably want to look at [constant PEER_PACKET_THROTTLE_ACCELERATION] instead.*/
	ENetPacketPeerPeerPacketThrottleCounter ENetPacketPeerPeerStatistic = 9
	/*The time at which throttle statistics were last updated (in milliseconds since the connection started). The interval for throttle statistics updates is [constant PEER_PACKET_THROTTLE_INTERVAL].*/
	ENetPacketPeerPeerPacketThrottleEpoch ENetPacketPeerPeerStatistic = 10
	/*The throttle's acceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent [i]more[/i] often. The default value is [code]2[/code].*/
	ENetPacketPeerPeerPacketThrottleAcceleration ENetPacketPeerPeerStatistic = 11
	/*The throttle's deceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent [i]less[/i] often. The default value is [code]2[/code].*/
	ENetPacketPeerPeerPacketThrottleDeceleration ENetPacketPeerPeerStatistic = 12
	/*The interval over which the lowest mean round trip time should be measured for use by the throttle mechanism (in milliseconds). The default value is [code]5000[/code].*/
	ENetPacketPeerPeerPacketThrottleInterval ENetPacketPeerPeerStatistic = 13
)

type EditorCommandPalette

type EditorCommandPalette = classdb.EditorCommandPalette

Object that holds all the available Commands and their shortcuts text. These Commands can be accessed through [b]Editor > Command Palette[/b] menu. Command key names use slash delimiters to distinguish sections, for example: [code]"example/command1"[/code] then [code]example[/code] will be the section name. [codeblocks] [gdscript] var command_palette = EditorInterface.get_command_palette() # external_command is a function that will be called with the command is executed. var command_callable = Callable(self, "external_command").bind(arguments) command_palette.add_command("command", "test/command",command_callable) [/gdscript] [csharp] EditorCommandPalette commandPalette = EditorInterface.Singleton.GetCommandPalette(); // ExternalCommand is a function that will be called with the command is executed. Callable commandCallable = new Callable(this, MethodName.ExternalCommand); commandPalette.AddCommand("command", "test/command", commandCallable) [/csharp] [/codeblocks] [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_command_palette].

type EditorDebuggerPlugin

type EditorDebuggerPlugin = classdb.EditorDebuggerPlugin

EditorDebuggerPlugin provides functions related to the editor side of the debugger. To interact with the debugger, an instance of this class must be added to the editor via [method EditorPlugin.add_debugger_plugin]. Once added, the [method _setup_session] callback will be called for every EditorDebuggerSession available to the plugin, and when new ones are created (the sessions may be inactive during this stage). You can retrieve the available [EditorDebuggerSession]s via [method get_sessions] or get a specific one via [method get_session]. [codeblocks] [gdscript] @tool extends EditorPlugin

class ExampleEditorDebugger extends EditorDebuggerPlugin:

func _has_capture(prefix):
    # Return true if you wish to handle message with this prefix.
    return prefix == "my_plugin"

func _capture(message, data, session_id):
    if message == "my_plugin:ping":
        get_session(session_id).send_message("my_plugin:echo", data)

func _setup_session(session_id):
    # Add a new tab in the debugger session UI containing a label.
    var label = Label.new()
    label.name = "Example plugin"
    label.text = "Example plugin"
    var session = get_session(session_id)
    # Listens to the session started and stopped signals.
    session.started.connect(func (): print("Session started"))
    session.stopped.connect(func (): print("Session stopped"))
    session.add_session_tab(label)

var debugger = ExampleEditorDebugger.new()

func _enter_tree():

add_debugger_plugin(debugger)

func _exit_tree():

remove_debugger_plugin(debugger)

[/gdscript] [/codeblocks]

// EditorDebuggerPlugin methods that can be overridden by a [Class] that extends it.
type EditorDebuggerPlugin interface {
	//Override this method to be notified whenever a new [EditorDebuggerSession] is created (the session may be inactive during this stage).
	SetupSession(godot Context, session_id gd.Int)
	//Override this method to enable receiving messages from the debugger. If [param capture] is "my_message" then messages starting with "my_message:" will be passes to the [method _capture] method.
	HasCapture(godot Context, capture gd.String) bool
	//Override this method to process incoming messages. The [param session_id] is the ID of the [EditorDebuggerSession] that received the message (which you can retrieve via [method get_session]).
	Capture(godot Context, message gd.String, data gd.Array, session_id gd.Int) bool
}

type EditorDebuggerSession

type EditorDebuggerSession = classdb.EditorDebuggerSession

This class cannot be directly instantiated and must be retrieved via a EditorDebuggerPlugin. You can add tabs to the session UI via [method add_session_tab], send messages via [method send_message], and toggle [EngineProfiler]s via [method toggle_profiler].

type EditorExportPlatform

type EditorExportPlatform = classdb.EditorExportPlatform

Base resource that provides the functionality of exporting a release build of a project to a platform, from the editor. Stores platform-specific metadata such as the name and supported features of the platform, and performs the exporting of projects, PCK files, and ZIP files. Uses an export template for the platform provided at the time of project exporting. Used in scripting by EditorExportPlugin to configure platform-specific customization of scenes and resources. See [method EditorExportPlugin._begin_customize_scenes] and [method EditorExportPlugin._begin_customize_resources] for more details.

type EditorExportPlatformAndroid

type EditorExportPlatformAndroid = classdb.EditorExportPlatformAndroid

type EditorExportPlatformIOS

type EditorExportPlatformIOS = classdb.EditorExportPlatformIOS

type EditorExportPlatformLinuxBSD

type EditorExportPlatformLinuxBSD = classdb.EditorExportPlatformLinuxBSD

type EditorExportPlatformMacOS

type EditorExportPlatformMacOS = classdb.EditorExportPlatformMacOS

type EditorExportPlatformPC

type EditorExportPlatformPC = classdb.EditorExportPlatformPC

type EditorExportPlatformWeb

type EditorExportPlatformWeb = classdb.EditorExportPlatformWeb

The Web exporter customizes how a web build is handled. In the editor's "Export" window, it is created when adding a new "Web" preset. [b]Note:[/b] Godot on Web is rendered inside a [code]<canvas>[/code] tag. Normally, the canvas cannot be positioned or resized manually, but otherwise acts as the main Window of the application.

type EditorExportPlatformWindows

type EditorExportPlatformWindows = classdb.EditorExportPlatformWindows

type EditorExportPlugin

type EditorExportPlugin = classdb.EditorExportPlugin

[EditorExportPlugin]s are automatically invoked whenever the user exports the project. Their most common use is to determine what files are being included in the exported project. For each plugin, [method _export_begin] is called at the beginning of the export process and then [method _export_file] is called for each exported file. To use EditorExportPlugin, register it using the [method EditorPlugin.add_export_plugin] method first.

// EditorExportPlugin methods that can be overridden by a [Class] that extends it.
type EditorExportPlugin interface {
	//Virtual method to be overridden by the user. Called for each exported file, providing arguments that can be used to identify the file. [param path] is the path of the file, [param type] is the [Resource] represented by the file (e.g. [PackedScene]) and [param features] is the list of features for the export.
	//Calling [method skip] inside this callback will make the file not included in the export.
	ExportFile(godot Context, path gd.String, atype gd.String, features gd.PackedStringArray)
	//Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export. [param features] is the list of features for the export, [param is_debug] is [code]true[/code] for debug builds, [param path] is the target path for the exported project. [param flags] is only used when running a runnable profile, e.g. when using native run on Android.
	ExportBegin(godot Context, features gd.PackedStringArray, is_debug bool, path gd.String, flags gd.Int)
	//Virtual method to be overridden by the user. Called when the export is finished.
	ExportEnd(godot Context)
	//Return [code]true[/code] if this plugin will customize resources based on the platform and features used.
	//When enabled, [method _get_customization_configuration_hash], [method _customize_resource] and [method _customize_scene] will be called and must be implemented.
	BeginCustomizeResources(godot Context, platform EditorExportPlatform, features gd.PackedStringArray) bool
	//Customize a resource. If changes are made to it, return the same or a new resource. Otherwise, return [code]null[/code].
	//The [i]path[/i] argument is only used when customizing an actual file, otherwise this means that this resource is part of another one and it will be empty.
	//Implementing this method is required if [method _begin_customize_resources] returns [code]true[/code].
	CustomizeResource(godot Context, resource Resource, path gd.String) Resource
	//Return true if this plugin will customize scenes based on the platform and features used.
	BeginCustomizeScenes(godot Context, platform EditorExportPlatform, features gd.PackedStringArray) bool
	//Customize a scene. If changes are made to it, return the same or a new scene. Otherwise, return [code]null[/code]. If a new scene is returned, it is up to you to dispose of the old one.
	//Implementing this method is required if [method _begin_customize_scenes] returns [code]true[/code].
	CustomizeScene(godot Context, scene Node, path gd.String) Node
	//Return a hash based on the configuration passed (for both scenes and resources). This helps keep separate caches for separate export configurations.
	//Implementing this method is required if [method _begin_customize_resources] returns [code]true[/code].
	GetCustomizationConfigurationHash(godot Context) gd.Int
	//This is called when the customization process for scenes ends.
	EndCustomizeScenes(godot Context)
	//This is called when the customization process for resources ends.
	EndCustomizeResources(godot Context)
	//Return a list of export options that can be configured for this export plugin.
	//Each element in the return value is a [Dictionary] with the following keys:
	//- [code]option[/code]: A dictionary with the structure documented by [method Object.get_property_list], but all keys are optional.
	//- [code]default_value[/code]: The default value for this option.
	//- [code]update_visibility[/code]: An optional boolean value. If set to [code]true[/code], the preset will emit [signal Object.property_list_changed] when the option is changed.
	GetExportOptions(godot Context, platform EditorExportPlatform) gd.ArrayOf[gd.Dictionary]
	//Return [code]true[/code], if the result of [method _get_export_options] has changed and the export options of preset corresponding to [param platform] should be updated.
	ShouldUpdateExportOptions(godot Context, platform EditorExportPlatform) bool
	//Check the requirements for the given [param option] and return a non-empty warning string if they are not met.
	//[b]Note:[/b] Use [method get_option] to check the value of the export options.
	GetExportOptionWarning(godot Context, platform EditorExportPlatform, option gd.String) gd.String
	//Return a [PackedStringArray] of additional features this preset, for the given [param platform], should have.
	GetExportFeatures(godot Context, platform EditorExportPlatform, debug bool) gd.PackedStringArray
	//Return the name identifier of this plugin (for future identification by the exporter). The plugins are sorted by name before exporting.
	//Implementing this method is required.
	GetName(godot Context) gd.String
	//Return [code]true[/code] if the plugin supports the given [param platform].
	SupportsPlatform(godot Context, platform EditorExportPlatform) bool
	//Virtual method to be overridden by the user. This is called to retrieve the set of Android dependencies provided by this plugin. Each returned Android dependency should have the format of an Android remote binary dependency: [code]org.godot.example:my-plugin:0.0.0[/code]
	//For more information see [url=https://developer.android.com/build/dependencies?agpversion=4.1#dependency-types]Android documentation on dependencies[/url].
	//[b]Note:[/b] Only supported on Android and requires [member EditorExportPlatformAndroid.gradle_build/use_gradle_build] to be enabled.
	GetAndroidDependencies(godot Context, platform EditorExportPlatform, debug bool) gd.PackedStringArray
	//Virtual method to be overridden by the user. This is called to retrieve the URLs of Maven repositories for the set of Android dependencies provided by this plugin.
	//For more information see [url=https://docs.gradle.org/current/userguide/dependency_management.html#sec:maven_repo]Gradle documentation on dependency management[/url].
	//[b]Note:[/b] Google's Maven repo and the Maven Central repo are already included by default.
	//[b]Note:[/b] Only supported on Android and requires [member EditorExportPlatformAndroid.gradle_build/use_gradle_build] to be enabled.
	GetAndroidDependenciesMavenRepos(godot Context, platform EditorExportPlatform, debug bool) gd.PackedStringArray
	//Virtual method to be overridden by the user. This is called to retrieve the local paths of the Android libraries archive (AAR) files provided by this plugin.
	//[b]Note:[/b] Relative paths [b]must[/b] be relative to Godot's [code]res://addons/[/code] directory. For example, an AAR file located under [code]res://addons/hello_world_plugin/HelloWorld.release.aar[/code] can be returned as an absolute path using [code]res://addons/hello_world_plugin/HelloWorld.release.aar[/code] or a relative path using [code]hello_world_plugin/HelloWorld.release.aar[/code].
	//[b]Note:[/b] Only supported on Android and requires [member EditorExportPlatformAndroid.gradle_build/use_gradle_build] to be enabled.
	GetAndroidLibraries(godot Context, platform EditorExportPlatform, debug bool) gd.PackedStringArray
	//Virtual method to be overridden by the user. This is used at export time to update the contents of the [code]activity[/code] element in the generated Android manifest.
	//[b]Note:[/b] Only supported on Android and requires [member EditorExportPlatformAndroid.gradle_build/use_gradle_build] to be enabled.
	GetAndroidManifestActivityElementContents(godot Context, platform EditorExportPlatform, debug bool) gd.String
	//Virtual method to be overridden by the user. This is used at export time to update the contents of the [code]application[/code] element in the generated Android manifest.
	//[b]Note:[/b] Only supported on Android and requires [member EditorExportPlatformAndroid.gradle_build/use_gradle_build] to be enabled.
	GetAndroidManifestApplicationElementContents(godot Context, platform EditorExportPlatform, debug bool) gd.String
	//Virtual method to be overridden by the user. This is used at export time to update the contents of the [code]manifest[/code] element in the generated Android manifest.
	//[b]Note:[/b] Only supported on Android and requires [member EditorExportPlatformAndroid.gradle_build/use_gradle_build] to be enabled.
	GetAndroidManifestElementContents(godot Context, platform EditorExportPlatform, debug bool) gd.String
}

type EditorFeatureProfile

type EditorFeatureProfile = classdb.EditorFeatureProfile

An editor feature profile can be used to disable specific features of the Godot editor. When disabled, the features won't appear in the editor, which makes the editor less cluttered. This is useful in education settings to reduce confusion or when working in a team. For example, artists and level designers could use a feature profile that disables the script editor to avoid accidentally making changes to files they aren't supposed to edit. To manage editor feature profiles visually, use [b]Editor > Manage Feature Profiles...[/b] at the top of the editor window.

type EditorFeatureProfileFeature

type EditorFeatureProfileFeature = classdb.EditorFeatureProfileFeature
const (
	/*The 3D editor. If this feature is disabled, the 3D editor won't display but 3D nodes will still display in the Create New Node dialog.*/
	EditorFeatureProfileFeature3d EditorFeatureProfileFeature = 0
	/*The Script tab, which contains the script editor and class reference browser. If this feature is disabled, the Script tab won't display.*/
	EditorFeatureProfileFeatureScript EditorFeatureProfileFeature = 1
	/*The AssetLib tab. If this feature is disabled, the AssetLib tab won't display.*/
	EditorFeatureProfileFeatureAssetLib EditorFeatureProfileFeature = 2
	/*Scene tree editing. If this feature is disabled, the Scene tree dock will still be visible but will be read-only.*/
	EditorFeatureProfileFeatureSceneTree EditorFeatureProfileFeature = 3
	/*The Node dock. If this feature is disabled, signals and groups won't be visible and modifiable from the editor.*/
	EditorFeatureProfileFeatureNodeDock EditorFeatureProfileFeature = 4
	/*The FileSystem dock. If this feature is disabled, the FileSystem dock won't be visible.*/
	EditorFeatureProfileFeatureFilesystemDock EditorFeatureProfileFeature = 5
	/*The Import dock. If this feature is disabled, the Import dock won't be visible.*/
	EditorFeatureProfileFeatureImportDock EditorFeatureProfileFeature = 6
	/*The History dock. If this feature is disabled, the History dock won't be visible.*/
	EditorFeatureProfileFeatureHistoryDock EditorFeatureProfileFeature = 7
	/*Represents the size of the [enum Feature] enum.*/
	EditorFeatureProfileFeatureMax EditorFeatureProfileFeature = 8
)

type EditorFileDialog

type EditorFileDialog = classdb.EditorFileDialog

EditorFileDialog is an enhanced version of FileDialog available only to editor plugins. Additional features include list of favorited/recent files and the ability to see files as thumbnails grid instead of list.

type EditorFileDialogAccess

type EditorFileDialogAccess = classdb.EditorFileDialogAccess
const (
	/*The [EditorFileDialog] can only view [code]res://[/code] directory contents.*/
	EditorFileDialogAccessResources EditorFileDialogAccess = 0
	/*The [EditorFileDialog] can only view [code]user://[/code] directory contents.*/
	EditorFileDialogAccessUserdata EditorFileDialogAccess = 1
	/*The [EditorFileDialog] can view the entire local file system.*/
	EditorFileDialogAccessFilesystem EditorFileDialogAccess = 2
)

type EditorFileDialogDisplayMode

type EditorFileDialogDisplayMode = classdb.EditorFileDialogDisplayMode
const (
	/*The [EditorFileDialog] displays resources as thumbnails.*/
	EditorFileDialogDisplayThumbnails EditorFileDialogDisplayMode = 0
	/*The [EditorFileDialog] displays resources as a list of filenames.*/
	EditorFileDialogDisplayList EditorFileDialogDisplayMode = 1
)

type EditorFileDialogFileMode

type EditorFileDialogFileMode = classdb.EditorFileDialogFileMode
const (
	/*The [EditorFileDialog] can select only one file. Accepting the window will open the file.*/
	EditorFileDialogFileModeOpenFile EditorFileDialogFileMode = 0
	/*The [EditorFileDialog] can select multiple files. Accepting the window will open all files.*/
	EditorFileDialogFileModeOpenFiles EditorFileDialogFileMode = 1
	/*The [EditorFileDialog] can select only one directory. Accepting the window will open the directory.*/
	EditorFileDialogFileModeOpenDir EditorFileDialogFileMode = 2
	/*The [EditorFileDialog] can select a file or directory. Accepting the window will open it.*/
	EditorFileDialogFileModeOpenAny EditorFileDialogFileMode = 3
	/*The [EditorFileDialog] can select only one file. Accepting the window will save the file.*/
	EditorFileDialogFileModeSaveFile EditorFileDialogFileMode = 4
)

type EditorFileSystem

type EditorFileSystem = classdb.EditorFileSystem

This object holds information of all resources in the filesystem, their types, etc. [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_resource_filesystem].

type EditorFileSystemDirectory

type EditorFileSystemDirectory = classdb.EditorFileSystemDirectory

A more generalized, low-level variation of the directory concept.

type EditorFileSystemImportFormatSupportQuery

type EditorFileSystemImportFormatSupportQuery = classdb.EditorFileSystemImportFormatSupportQuery

This class is used to query and configure a certain import format. It is used in conjunction with asset format import plugins.

// EditorFileSystemImportFormatSupportQuery methods that can be overridden by a [Class] that extends it.
type EditorFileSystemImportFormatSupportQuery interface {
	//Return whether this importer is active.
	IsActive(godot Context) bool
	//Return the file extensions supported.
	GetFileExtensions(godot Context) gd.PackedStringArray
	//Query support. Return false if import must not continue.
	Query(godot Context) bool
}

type EditorImportPlugin

type EditorImportPlugin = classdb.EditorImportPlugin

[EditorImportPlugin]s provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers. EditorImportPlugins work by associating with specific file extensions and a resource type. See [method _get_recognized_extensions] and [method _get_resource_type]. They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the [code].godot/imported[/code] directory (see [member ProjectSettings.application/config/use_hidden_project_data_directory]). Below is an example EditorImportPlugin that imports a Mesh from a file with the extension ".special" or ".spec": [codeblocks] [gdscript] @tool extends EditorImportPlugin

func _get_importer_name():

return "my.special.plugin"

func _get_visible_name():

return "Special Mesh"

func _get_recognized_extensions():

return ["special", "spec"]

func _get_save_extension():

return "mesh"

func _get_resource_type():

return "Mesh"

func _get_preset_count():

return 1

func _get_preset_name(preset_index):

return "Default"

func _get_import_options(path, preset_index):

return [{"name": "my_option", "default_value": false}]

func _import(source_file, save_path, options, platform_variants, gen_files):

var file = FileAccess.open(source_file, FileAccess.READ)
if file == null:
    return FAILED
var mesh = ArrayMesh.new()
# Fill the Mesh with data read in "file", left as an exercise to the reader.

var filename = save_path + "." + _get_save_extension()
return ResourceSaver.save(mesh, filename)

[/gdscript] [csharp] using Godot;

public partial class MySpecialPlugin : EditorImportPlugin

{
    public override string _GetImporterName()
    {
        return "my.special.plugin";
    }

    public override string _GetVisibleName()
    {
        return "Special Mesh";
    }

    public override string[] _GetRecognizedExtensions()
    {
        return new string[] { "special", "spec" };
    }

    public override string _GetSaveExtension()
    {
        return "mesh";
    }

    public override string _GetResourceType()
    {
        return "Mesh";
    }

    public override int _GetPresetCount()
    {
        return 1;
    }

    public override string _GetPresetName(int presetIndex)
    {
        return "Default";
    }

    public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetImportOptions(string path, int presetIndex)
    {
        return new Godot.Collections.Array<Godot.Collections.Dictionary>
        {
            new Godot.Collections.Dictionary
            {
                { "name", "myOption" },
                { "default_value", false },
            }
        };
    }

    public override int _Import(string sourceFile, string savePath, Godot.Collections.Dictionary options, Godot.Collections.Array<string> platformVariants, Godot.Collections.Array<string> genFiles)
    {
        using var file = FileAccess.Open(sourceFile, FileAccess.ModeFlags.Read);
        if (file.GetError() != Error.Ok)
        {
            return (int)Error.Failed;
        }

        var mesh = new ArrayMesh();
        // Fill the Mesh with data read in "file", left as an exercise to the reader.
        string filename = $"{savePath}.{_GetSaveExtension()}";
        return (int)ResourceSaver.Save(mesh, filename);
    }
}

[/csharp] [/codeblocks] To use EditorImportPlugin, register it using the [method EditorPlugin.add_import_plugin] method first.

// EditorImportPlugin methods that can be overridden by a [Class] that extends it.
type EditorImportPlugin interface {
	//Gets the unique name of the importer.
	GetImporterName(godot Context) gd.String
	//Gets the name to display in the import window. You should choose this name as a continuation to "Import as", e.g. "Import as Special Mesh".
	GetVisibleName(godot Context) gd.String
	//Gets the number of initial presets defined by the plugin. Use [method _get_import_options] to get the default options for the preset and [method _get_preset_name] to get the name of the preset.
	GetPresetCount(godot Context) gd.Int
	//Gets the name of the options preset at this index.
	GetPresetName(godot Context, preset_index gd.Int) gd.String
	//Gets the list of file extensions to associate with this loader (case-insensitive). e.g. [code]["obj"][/code].
	GetRecognizedExtensions(godot Context) gd.PackedStringArray
	//Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: [code]name[/code], [code]default_value[/code], [code]property_hint[/code] (optional), [code]hint_string[/code] (optional), [code]usage[/code] (optional).
	GetImportOptions(godot Context, path gd.String, preset_index gd.Int) gd.ArrayOf[gd.Dictionary]
	//Gets the extension used to save this resource in the [code].godot/imported[/code] directory (see [member ProjectSettings.application/config/use_hidden_project_data_directory]).
	GetSaveExtension(godot Context) gd.String
	//Gets the Godot resource type associated with this loader. e.g. [code]"Mesh"[/code] or [code]"Animation"[/code].
	GetResourceType(godot Context) gd.String
	//Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is [code]1.0[/code].
	GetPriority(godot Context) gd.Float
	//Gets the order of this importer to be run when importing resources. Importers with [i]lower[/i] import orders will be called first, and higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported. The default import order is [code]0[/code] unless overridden by a specific importer. See [enum ResourceImporter.ImportOrder] for some predefined values.
	GetImportOrder(godot Context) gd.Int
	//This method can be overridden to hide specific import options if conditions are met. This is mainly useful for hiding options that depend on others if one of them is disabled. For example:
	//[codeblocks]
	//[gdscript]
	//func _get_option_visibility(option, options):
	//    # Only show the lossy quality setting if the compression mode is set to "Lossy".
	//    if option == "compress/lossy_quality" and options.has("compress/mode"):
	//        return int(options["compress/mode"]) == COMPRESS_LOSSY # This is a constant that you set
	//
	//    return true
	//[/gdscript]
	//[csharp]
	//public void _GetOptionVisibility(string option, Godot.Collections.Dictionary options)
	//{
	//    // Only show the lossy quality setting if the compression mode is set to "Lossy".
	//    if (option == "compress/lossy_quality" && options.ContainsKey("compress/mode"))
	//    {
	//        return (int)options["compress/mode"] == CompressLossy; // This is a constant you set
	//    }
	//
	//    return true;
	//}
	//[/csharp]
	//[/codeblocks]
	//Returns [code]true[/code] to make all options always visible.
	GetOptionVisibility(godot Context, path gd.String, option_name gd.StringName, options gd.Dictionary) bool
	//Imports [param source_file] into [param save_path] with the import [param options] specified. The [param platform_variants] and [param gen_files] arrays will be modified by this function.
	//This method must be overridden to do the actual importing work. See this class' description for an example of overriding this method.
	Import(godot Context, source_file gd.String, save_path gd.String, options gd.Dictionary, platform_variants gd.ArrayOf[gd.String], gen_files gd.ArrayOf[gd.String]) int64
}

type EditorInspector

type EditorInspector = classdb.EditorInspector

This is the control that implements property editing in the editor's Settings dialogs, the Inspector dock, etc. To get the EditorInspector used in the editor's Inspector dock, use [method EditorInterface.get_inspector]. EditorInspector will show properties in the same order as the array returned by [method Object.get_property_list]. If a property's name is path-like (i.e. if it contains forward slashes), EditorInspector will create nested sections for "directories" along the path. For example, if a property is named [code]highlighting/gdscript/node_path_color[/code], it will be shown as "Node Path Color" inside the "GDScript" section nested inside the "Highlighting" section. If a property has [constant PROPERTY_USAGE_GROUP] usage, it will group subsequent properties whose name starts with the property's hint string. The group ends when a property does not start with that hint string or when a new group starts. An empty group name effectively ends the current group. EditorInspector will create a top-level section for each group. For example, if a property with group usage is named [code]Collide With[/code] and its hint string is [code]collide_with_[/code], a subsequent [code]collide_with_area[/code] property will be shown as "Area" inside the "Collide With" section. There is also a special case: when the hint string contains the name of a property, that property is grouped too. This is mainly to help grouping properties like [code]font[/code], [code]font_color[/code] and [code]font_size[/code] (using the hint string [code]font_[/code]). If a property has [constant PROPERTY_USAGE_SUBGROUP] usage, a subgroup will be created in the same way as a group, and a second-level section will be created for each subgroup. [b]Note:[/b] Unlike sections created from path-like property names, EditorInspector won't capitalize the name for sections created from groups. So properties with group usage usually use capitalized names instead of snake_cased names.

type EditorInspectorPlugin

type EditorInspectorPlugin = classdb.EditorInspectorPlugin

EditorInspectorPlugin allows adding custom property editors to EditorInspector. When an object is edited, the [method _can_handle] function is called and must return [code]true[/code] if the object type is supported. If supported, the function [method _parse_begin] will be called, allowing to place custom controls at the beginning of the class. Subsequently, the [method _parse_category] and [method _parse_property] are called for every category and property. They offer the ability to add custom controls to the inspector too. Finally, [method _parse_end] will be called. On each of these calls, the "add" functions can be called. To use EditorInspectorPlugin, register it using the [method EditorPlugin.add_inspector_plugin] method first.

// EditorInspectorPlugin methods that can be overridden by a [Class] that extends it.
type EditorInspectorPlugin interface {
	//Returns [code]true[/code] if this object can be handled by this plugin.
	CanHandle(godot Context, object gd.Object) bool
	//Called to allow adding controls at the beginning of the property list for [param object].
	ParseBegin(godot Context, object gd.Object)
	//Called to allow adding controls at the beginning of a category in the property list for [param object].
	ParseCategory(godot Context, object gd.Object, category gd.String)
	//Called to allow adding controls at the beginning of a group or a sub-group in the property list for [param object].
	ParseGroup(godot Context, object gd.Object, group gd.String)
	//Called to allow adding property-specific editors to the property list for [param object]. The added editor control must extend [EditorProperty]. Returning [code]true[/code] removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one.
	ParseProperty(godot Context, object gd.Object, atype gd.VariantType, name gd.String, hint_type gd.PropertyHint, hint_string gd.String, usage_flags gd.PropertyUsageFlags, wide bool) bool
	//Called to allow adding controls at the end of the property list for [param object].
	ParseEnd(godot Context, object gd.Object)
}

type EditorNode3DGizmo

type EditorNode3DGizmo = classdb.EditorNode3DGizmo

Gizmo that is used for providing custom visualization and editing (handles and subgizmos) for Node3D objects. Can be overridden to create custom gizmos, but for simple gizmos creating a EditorNode3DGizmoPlugin is usually recommended.

// EditorNode3DGizmo methods that can be overridden by a [Class] that extends it.
type EditorNode3DGizmo interface {
	//Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call [method clear] at the beginning of this method and then add visual elements depending on the node's properties.
	Redraw(godot Context)
	//Override this method to return the name of an edited handle (handles must have been previously added by [method add_handles]). Handles can be named for reference to the user when editing.
	//The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method add_handles] for more information).
	GetHandleName(godot Context, id gd.Int, secondary bool) gd.String
	//Override this method to return [code]true[/code] whenever the given handle should be highlighted in the editor.
	//The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method add_handles] for more information).
	IsHandleHighlighted(godot Context, id gd.Int, secondary bool) bool
	//Override this method to return the current value of a handle. This value will be requested at the start of an edit and used as the [code]restore[/code] argument in [method _commit_handle].
	//The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method add_handles] for more information).
	GetHandleValue(godot Context, id gd.Int, secondary bool) gd.Variant
	BeginHandleAction(godot Context, id gd.Int, secondary bool)
	//Override this method to update the node properties when the user drags a gizmo handle (previously added with [method add_handles]). The provided [param point] is the mouse position in screen coordinates and the [param camera] can be used to convert it to raycasts.
	//The [param secondary] argument is [code]true[/code] when the edited handle is secondary (see [method add_handles] for more information).
	SetHandle(godot Context, id gd.Int, secondary bool, camera Camera3D, point gd.Vector2)
	//Override this method to commit a handle being edited (handles must have been previously added by [method add_handles]). This usually means creating an [UndoRedo] action for the change, using the current handle value as "do" and the [param restore] argument as "undo".
	//If the [param cancel] argument is [code]true[/code], the [param restore] value should be directly set, without any [UndoRedo] action.
	//The [param secondary] argument is [code]true[/code] when the committed handle is secondary (see [method add_handles] for more information).
	CommitHandle(godot Context, id gd.Int, secondary bool, restore gd.Variant, cancel bool)
	//Override this method to allow selecting subgizmos using mouse clicks. Given a [param camera] and a [param point] in screen coordinates, this method should return which subgizmo should be selected. The returned value should be a unique subgizmo identifier, which can have any non-negative value and will be used in other virtual methods like [method _get_subgizmo_transform] or [method _commit_subgizmos].
	SubgizmosIntersectRay(godot Context, camera Camera3D, point gd.Vector2) gd.Int
	//Override this method to allow selecting subgizmos using mouse drag box selection. Given a [param camera] and a [param frustum], this method should return which subgizmos are contained within the frustum. The [param frustum] argument consists of an array with all the [Plane]s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, which can have any non-negative value and will be used in other virtual methods like [method _get_subgizmo_transform] or [method _commit_subgizmos].
	SubgizmosIntersectFrustum(godot Context, camera Camera3D, frustum gd.ArrayOf[gd.Plane]) gd.PackedInt32Array
	//Override this method to update the node properties during subgizmo editing (see [method _subgizmos_intersect_ray] and [method _subgizmos_intersect_frustum]). The [param transform] is given in the [Node3D]'s local coordinate system.
	SetSubgizmoTransform(godot Context, id gd.Int, transform gd.Transform3D)
	//Override this method to return the current transform of a subgizmo. This transform will be requested at the start of an edit and used as the [code]restore[/code] argument in [method _commit_subgizmos].
	GetSubgizmoTransform(godot Context, id gd.Int) gd.Transform3D
	//Override this method to commit a group of subgizmos being edited (see [method _subgizmos_intersect_ray] and [method _subgizmos_intersect_frustum]). This usually means creating an [UndoRedo] action for the change, using the current transforms as "do" and the [param restores] transforms as "undo".
	//If the [param cancel] argument is [code]true[/code], the [param restores] transforms should be directly set, without any [UndoRedo] action.
	CommitSubgizmos(godot Context, ids gd.PackedInt32Array, restores gd.ArrayOf[gd.Transform3D], cancel bool)
}

type EditorNode3DGizmoPlugin

type EditorNode3DGizmoPlugin = classdb.EditorNode3DGizmoPlugin

EditorNode3DGizmoPlugin allows you to define a new type of Gizmo. There are two main ways to do so: extending EditorNode3DGizmoPlugin for the simpler gizmos, or creating a new EditorNode3DGizmo type. See the tutorial in the documentation for more info. To use EditorNode3DGizmoPlugin, register it using the [method EditorPlugin.add_node_3d_gizmo_plugin] method first.

// EditorNode3DGizmoPlugin methods that can be overridden by a [Class] that extends it.
type EditorNode3DGizmoPlugin interface {
	//Override this method to define which Node3D nodes have a gizmo from this plugin. Whenever a [Node3D] node is added to a scene this method is called, if it returns [code]true[/code] the node gets a generic [EditorNode3DGizmo] assigned and is added to this plugin's list of active gizmos.
	HasGizmo(godot Context, for_node_3d Node3D) bool
	//Override this method to return a custom [EditorNode3DGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. See also [method _has_gizmo].
	CreateGizmo(godot Context, for_node_3d Node3D) EditorNode3DGizmo
	//Override this method to provide the name that will appear in the gizmo visibility menu.
	GetGizmoName(godot Context) gd.String
	//Override this method to set the gizmo's priority. Gizmos with higher priority will have precedence when processing inputs like handles or subgizmos selection.
	//All built-in editor gizmos return a priority of [code]-1[/code]. If not overridden, this method will return [code]0[/code], which means custom gizmos will automatically get higher priority than built-in gizmos.
	GetPriority(godot Context) gd.Int
	//Override this method to define whether the gizmos handled by this plugin can be hidden or not. Returns [code]true[/code] if not overridden.
	CanBeHidden(godot Context) bool
	//Override this method to define whether Node3D with this gizmo should be selectable even when the gizmo is hidden.
	IsSelectableWhenHidden(godot Context) bool
	//Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call [method EditorNode3DGizmo.clear] at the beginning of this method and then add visual elements depending on the node's properties.
	Redraw(godot Context, gizmo EditorNode3DGizmo)
	//Override this method to provide gizmo's handle names. The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method EditorNode3DGizmo.add_handles] for more information). Called for this plugin's active gizmos.
	GetHandleName(godot Context, gizmo EditorNode3DGizmo, handle_id gd.Int, secondary bool) gd.String
	//Override this method to return [code]true[/code] whenever to given handle should be highlighted in the editor. The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method EditorNode3DGizmo.add_handles] for more information). Called for this plugin's active gizmos.
	IsHandleHighlighted(godot Context, gizmo EditorNode3DGizmo, handle_id gd.Int, secondary bool) bool
	//Override this method to return the current value of a handle. This value will be requested at the start of an edit and used as the [code]restore[/code] argument in [method _commit_handle].
	//The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method EditorNode3DGizmo.add_handles] for more information).
	//Called for this plugin's active gizmos.
	GetHandleValue(godot Context, gizmo EditorNode3DGizmo, handle_id gd.Int, secondary bool) gd.Variant
	BeginHandleAction(godot Context, gizmo EditorNode3DGizmo, handle_id gd.Int, secondary bool)
	//Override this method to update the node's properties when the user drags a gizmo handle (previously added with [method EditorNode3DGizmo.add_handles]). The provided [param screen_pos] is the mouse position in screen coordinates and the [param camera] can be used to convert it to raycasts.
	//The [param secondary] argument is [code]true[/code] when the edited handle is secondary (see [method EditorNode3DGizmo.add_handles] for more information).
	//Called for this plugin's active gizmos.
	SetHandle(godot Context, gizmo EditorNode3DGizmo, handle_id gd.Int, secondary bool, camera Camera3D, screen_pos gd.Vector2)
	//Override this method to commit a handle being edited (handles must have been previously added by [method EditorNode3DGizmo.add_handles] during [method _redraw]). This usually means creating an [UndoRedo] action for the change, using the current handle value as "do" and the [param restore] argument as "undo".
	//If the [param cancel] argument is [code]true[/code], the [param restore] value should be directly set, without any [UndoRedo] action.
	//The [param secondary] argument is [code]true[/code] when the committed handle is secondary (see [method EditorNode3DGizmo.add_handles] for more information).
	//Called for this plugin's active gizmos.
	CommitHandle(godot Context, gizmo EditorNode3DGizmo, handle_id gd.Int, secondary bool, restore gd.Variant, cancel bool)
	//Override this method to allow selecting subgizmos using mouse clicks. Given a [param camera] and a [param screen_pos] in screen coordinates, this method should return which subgizmo should be selected. The returned value should be a unique subgizmo identifier, which can have any non-negative value and will be used in other virtual methods like [method _get_subgizmo_transform] or [method _commit_subgizmos]. Called for this plugin's active gizmos.
	SubgizmosIntersectRay(godot Context, gizmo EditorNode3DGizmo, camera Camera3D, screen_pos gd.Vector2) gd.Int
	//Override this method to allow selecting subgizmos using mouse drag box selection. Given a [param camera] and [param frustum_planes], this method should return which subgizmos are contained within the frustums. The [param frustum_planes] argument consists of an array with all the [Plane]s that make up the selection frustum. The returned value should contain a list of unique subgizmo identifiers, these identifiers can have any non-negative value and will be used in other virtual methods like [method _get_subgizmo_transform] or [method _commit_subgizmos]. Called for this plugin's active gizmos.
	SubgizmosIntersectFrustum(godot Context, gizmo EditorNode3DGizmo, camera Camera3D, frustum_planes gd.ArrayOf[gd.Plane]) gd.PackedInt32Array
	//Override this method to return the current transform of a subgizmo. As with all subgizmo methods, the transform should be in local space respect to the gizmo's Node3D. This transform will be requested at the start of an edit and used in the [code]restore[/code] argument in [method _commit_subgizmos]. Called for this plugin's active gizmos.
	GetSubgizmoTransform(godot Context, gizmo EditorNode3DGizmo, subgizmo_id gd.Int) gd.Transform3D
	//Override this method to update the node properties during subgizmo editing (see [method _subgizmos_intersect_ray] and [method _subgizmos_intersect_frustum]). The [param transform] is given in the Node3D's local coordinate system. Called for this plugin's active gizmos.
	SetSubgizmoTransform(godot Context, gizmo EditorNode3DGizmo, subgizmo_id gd.Int, transform gd.Transform3D)
	//Override this method to commit a group of subgizmos being edited (see [method _subgizmos_intersect_ray] and [method _subgizmos_intersect_frustum]). This usually means creating an [UndoRedo] action for the change, using the current transforms as "do" and the [param restores] transforms as "undo".
	//If the [param cancel] argument is [code]true[/code], the [param restores] transforms should be directly set, without any [UndoRedo] action. As with all subgizmo methods, transforms are given in local space respect to the gizmo's Node3D. Called for this plugin's active gizmos.
	CommitSubgizmos(godot Context, gizmo EditorNode3DGizmo, ids gd.PackedInt32Array, restores gd.ArrayOf[gd.Transform3D], cancel bool)
}

type EditorPaths

type EditorPaths = classdb.EditorPaths

This editor-only singleton returns OS-specific paths to various data folders and files. It can be used in editor plugins to ensure files are saved in the correct location on each operating system. [b]Note:[/b] This singleton is not accessible in exported projects. Attempting to access it in an exported project will result in a script error as the singleton won't be declared. To prevent script errors in exported projects, use [method Engine.has_singleton] to check whether the singleton is available before using it. [b]Note:[/b] On the Linux/BSD platform, Godot complies with the [url=https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html]XDG Base Directory Specification[/url]. You can override environment variables following the specification to change the editor and project data paths.

type EditorPlugin

type EditorPlugin = classdb.EditorPlugin

Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also EditorScript to add functions to the editor. [b]Note:[/b] Some names in this class contain "left" or "right" (e.g. [constant DOCK_SLOT_LEFT_UL]). These APIs assume left-to-right layout, and would be backwards when using right-to-left layout. These names are kept for compatibility reasons.

// EditorPlugin methods that can be overridden by a [Class] that extends it.
type EditorPlugin interface {
	//Called when there is a root node in the current edited scene, [method _handles] is implemented and an [InputEvent] happens in the 2D viewport. Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] consumes the [param event], otherwise forwards [param event] to other Editor classes.
	//[b]Example:[/b]
	//[codeblocks]
	//[gdscript]
	//# Prevents the InputEvent from reaching other Editor classes.
	//func _forward_canvas_gui_input(event):
	//    return true
	//[/gdscript]
	//[csharp]
	//// Prevents the InputEvent from reaching other Editor classes.
	//public override bool ForwardCanvasGuiInput(InputEvent @event)
	//{
	//    return true;
	//}
	//[/csharp]
	//[/codeblocks]
	//Must [code]return false[/code] in order to forward the [InputEvent] to other Editor classes.
	//[b]Example:[/b]
	//[codeblocks]
	//[gdscript]
	//# Consumes InputEventMouseMotion and forwards other InputEvent types.
	//func _forward_canvas_gui_input(event):
	//    if (event is InputEventMouseMotion):
	//        return true
	//    return false
	//[/gdscript]
	//[csharp]
	//// Consumes InputEventMouseMotion and forwards other InputEvent types.
	//public override bool _ForwardCanvasGuiInput(InputEvent @event)
	//{
	//    if (@event is InputEventMouseMotion)
	//    {
	//        return true;
	//    }
	//    return false;
	//}
	//[/csharp]
	//[/codeblocks]
	ForwardCanvasGuiInput(godot Context, event InputEvent) bool
	//Called by the engine when the 2D editor's viewport is updated. Use the [code]overlay[/code] [Control] for drawing. You can update the viewport manually by calling [method update_overlays].
	//[codeblocks]
	//[gdscript]
	//func _forward_canvas_draw_over_viewport(overlay):
	//    # Draw a circle at cursor position.
	//    overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color.WHITE)
	//
	//func _forward_canvas_gui_input(event):
	//    if event is InputEventMouseMotion:
	//        # Redraw viewport when cursor is moved.
	//        update_overlays()
	//        return true
	//    return false
	//[/gdscript]
	//[csharp]
	//public override void _ForwardCanvasDrawOverViewport(Control viewportControl)
	//{
	//    // Draw a circle at cursor position.
	//    viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, Colors.White);
	//}
	//
	//public override bool _ForwardCanvasGuiInput(InputEvent @event)
	//{
	//    if (@event is InputEventMouseMotion)
	//    {
	//        // Redraw viewport when cursor is moved.
	//        UpdateOverlays();
	//        return true;
	//    }
	//    return false;
	//}
	//[/csharp]
	//[/codeblocks]
	ForwardCanvasDrawOverViewport(godot Context, viewport_control Control)
	//This method is the same as [method _forward_canvas_draw_over_viewport], except it draws on top of everything. Useful when you need an extra layer that shows over anything else.
	//You need to enable calling of this method by using [method set_force_draw_over_forwarding_enabled].
	ForwardCanvasForceDrawOverViewport(godot Context, viewport_control Control)
	//Called when there is a root node in the current edited scene, [method _handles] is implemented, and an [InputEvent] happens in the 3D viewport. The return value decides whether the [InputEvent] is consumed or forwarded to other [EditorPlugin]s. See [enum AfterGUIInput] for options.
	//[b]Example:[/b]
	//[codeblocks]
	//[gdscript]
	//# Prevents the InputEvent from reaching other Editor classes.
	//func _forward_3d_gui_input(camera, event):
	//    return EditorPlugin.AFTER_GUI_INPUT_STOP
	//[/gdscript]
	//[csharp]
	//// Prevents the InputEvent from reaching other Editor classes.
	//public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event)
	//{
	//    return EditorPlugin.AfterGuiInput.Stop;
	//}
	//[/csharp]
	//[/codeblocks]
	//Must [code]return EditorPlugin.AFTER_GUI_INPUT_PASS[/code] in order to forward the [InputEvent] to other Editor classes.
	//[b]Example:[/b]
	//[codeblocks]
	//[gdscript]
	//# Consumes InputEventMouseMotion and forwards other InputEvent types.
	//func _forward_3d_gui_input(camera, event):
	//    return EditorPlugin.AFTER_GUI_INPUT_STOP if event is InputEventMouseMotion else EditorPlugin.AFTER_GUI_INPUT_PASS
	//[/gdscript]
	//[csharp]
	//// Consumes InputEventMouseMotion and forwards other InputEvent types.
	//public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event)
	//{
	//    return @event is InputEventMouseMotion ? EditorPlugin.AfterGuiInput.Stop : EditorPlugin.AfterGuiInput.Pass;
	//}
	//[/csharp]
	//[/codeblocks]
	Forward3dGuiInput(godot Context, viewport_camera Camera3D, event InputEvent) gd.Int
	//Called by the engine when the 3D editor's viewport is updated. Use the [code]overlay[/code] [Control] for drawing. You can update the viewport manually by calling [method update_overlays].
	//[codeblocks]
	//[gdscript]
	//func _forward_3d_draw_over_viewport(overlay):
	//    # Draw a circle at cursor position.
	//    overlay.draw_circle(overlay.get_local_mouse_position(), 64)
	//
	//func _forward_3d_gui_input(camera, event):
	//    if event is InputEventMouseMotion:
	//        # Redraw viewport when cursor is moved.
	//        update_overlays()
	//        return EditorPlugin.AFTER_GUI_INPUT_STOP
	//    return EditorPlugin.AFTER_GUI_INPUT_PASS
	//[/gdscript]
	//[csharp]
	//public override void _Forward3DDrawOverViewport(Control viewportControl)
	//{
	//    // Draw a circle at cursor position.
	//    viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, Colors.White);
	//}
	//
	//public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D viewportCamera, InputEvent @event)
	//{
	//    if (@event is InputEventMouseMotion)
	//    {
	//        // Redraw viewport when cursor is moved.
	//        UpdateOverlays();
	//        return EditorPlugin.AfterGuiInput.Stop;
	//    }
	//    return EditorPlugin.AfterGuiInput.Pass;
	//}
	//[/csharp]
	//[/codeblocks]
	Forward3dDrawOverViewport(godot Context, viewport_control Control)
	//This method is the same as [method _forward_3d_draw_over_viewport], except it draws on top of everything. Useful when you need an extra layer that shows over anything else.
	//You need to enable calling of this method by using [method set_force_draw_over_forwarding_enabled].
	Forward3dForceDrawOverViewport(godot Context, viewport_control Control)
	//Override this method in your plugin to provide the name of the plugin when displayed in the Godot editor.
	//For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", and "AssetLib" buttons.
	GetPluginName(godot Context) gd.String
	//Override this method in your plugin to return a [Texture2D] in order to give it an icon.
	//For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", and "AssetLib" buttons.
	//Ideally, the plugin icon should be white with a transparent background and 16x16 pixels in size.
	//[codeblocks]
	//[gdscript]
	//func _get_plugin_icon():
	//    # You can use a custom icon:
	//    return preload("res://addons/my_plugin/my_plugin_icon.svg")
	//    # Or use a built-in icon:
	//    return EditorInterface.get_editor_theme().get_icon("Node", "EditorIcons")
	//[/gdscript]
	//[csharp]
	//public override Texture2D _GetPluginIcon()
	//{
	//    // You can use a custom icon:
	//    return ResourceLoader.Load<Texture2D>("res://addons/my_plugin/my_plugin_icon.svg");
	//    // Or use a built-in icon:
	//    return EditorInterface.Singleton.GetEditorTheme().GetIcon("Node", "EditorIcons");
	//}
	//[/csharp]
	//[/codeblocks]
	GetPluginIcon(godot Context) Texture2D
	//Returns [code]true[/code] if this is a main screen editor plugin (it goes in the workspace selector together with [b]2D[/b], [b]3D[/b], [b]Script[/b] and [b]AssetLib[/b]).
	//When the plugin's workspace is selected, other main screen plugins will be hidden, but your plugin will not appear automatically. It needs to be added as a child of [method EditorInterface.get_base_control] and made visible inside [method _make_visible].
	//Use [method _get_plugin_name] and [method _get_plugin_icon] to customize the plugin button's appearance.
	//[codeblock]
	//var plugin_control
	//
	//func _enter_tree():
	//    plugin_control = preload("my_plugin_control.tscn").instantiate()
	//    EditorInterface.get_editor_main_screen().add_child(plugin_control)
	//    plugin_control.hide()
	//
	//func _has_main_screen():
	//    return true
	//
	//func _make_visible(visible):
	//    plugin_control.visible = visible
	//
	//func _get_plugin_name():
	//    return "My Super Cool Plugin 3000"
	//
	//func _get_plugin_icon():
	//    return EditorInterface.get_editor_theme().get_icon("Node", "EditorIcons")
	//[/codeblock]
	HasMainScreen(godot Context) bool
	//This function will be called when the editor is requested to become visible. It is used for plugins that edit a specific object type.
	//Remember that you have to manage the visibility of all your editor controls manually.
	MakeVisible(godot Context, visible bool)
	//This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.
	//[param object] can be [code]null[/code] if the plugin was editing an object, but there is no longer any selected object handled by this plugin. It can be used to cleanup editing state.
	Edit(godot Context, object gd.Object)
	//Implement this function if your plugin edits a specific type of object (Resource or Node). If you return [code]true[/code], then you will get the functions [method _edit] and [method _make_visible] called when the editor requests them. If you have declared the methods [method _forward_canvas_gui_input] and [method _forward_3d_gui_input] these will be called too.
	//[b]Note:[/b] Each plugin should handle only one type of objects at a time. If a plugin handles more types of objects and they are edited at the same time, it will result in errors.
	Handles(godot Context, object gd.Object) bool
	//Override this method to provide a state data you want to be saved, like view position, grid settings, folding, etc. This is used when saving the scene (so state is kept when opening it again) and for switching tabs (so state can be restored when the tab returns). This data is automatically saved for each scene in an [code]editstate[/code] file in the editor metadata folder. If you want to store global (scene-independent) editor data for your plugin, you can use [method _get_window_layout] instead.
	//Use [method _set_state] to restore your saved state.
	//[b]Note:[/b] This method should not be used to save important settings that should persist with the project.
	//[b]Note:[/b] You must implement [method _get_plugin_name] for the state to be stored and restored correctly.
	//[codeblock]
	//func _get_state():
	//    var state = {"zoom": zoom, "preferred_color": my_color}
	//    return state
	//[/codeblock]
	GetState(godot Context) gd.Dictionary
	//Restore the state saved by [method _get_state]. This method is called when the current scene tab is changed in the editor.
	//[b]Note:[/b] Your plugin must implement [method _get_plugin_name], otherwise it will not be recognized and this method will not be called.
	//[codeblock]
	//func _set_state(data):
	//    zoom = data.get("zoom", 1.0)
	//    preferred_color = data.get("my_color", Color.WHITE)
	//[/codeblock]
	SetState(godot Context, state gd.Dictionary)
	//Clear all the state and reset the object being edited to zero. This ensures your plugin does not keep editing a currently existing node, or a node from the wrong scene.
	Clear(godot Context)
	//Override this method to provide a custom message that lists unsaved changes. The editor will call this method when exiting or when closing a scene, and display the returned string in a confirmation dialog. Return empty string if the plugin has no unsaved changes.
	//When closing a scene, [param for_scene] is the path to the scene being closed. You can use it to handle built-in resources in that scene.
	//If the user confirms saving, [method _save_external_data] will be called, before closing the editor.
	//[codeblock]
	//func _get_unsaved_status(for_scene):
	//    if not unsaved:
	//        return ""
	//
	//    if for_scene.is_empty():
	//        return "Save changes in MyCustomPlugin before closing?"
	//    else:
	//        return "Scene %s has changes from MyCustomPlugin. Save before closing?" % for_scene.get_file()
	//
	//func _save_external_data():
	//    unsaved = false
	//[/codeblock]
	//If the plugin has no scene-specific changes, you can ignore the calls when closing scenes:
	//[codeblock]
	//func _get_unsaved_status(for_scene):
	//    if not for_scene.is_empty():
	//        return ""
	//[/codeblock]
	GetUnsavedStatus(godot Context, for_scene gd.String) gd.String
	//This method is called after the editor saves the project or when it's closed. It asks the plugin to save edited external scenes/resources.
	SaveExternalData(godot Context)
	//This method is called when the editor is about to save the project, switch to another tab, etc. It asks the plugin to apply any pending state changes to ensure consistency.
	//This is used, for example, in shader editors to let the plugin know that it must apply the shader code being written by the user to the object.
	ApplyChanges(godot Context)
	//This is for editors that edit script-based objects. You can return a list of breakpoints in the format ([code]script:line[/code]), for example: [code]res://path_to_script.gd:25[/code].
	GetBreakpoints(godot Context) gd.PackedStringArray
	//Restore the plugin GUI layout and data saved by [method _get_window_layout]. This method is called for every plugin on editor startup. Use the provided [param configuration] file to read your saved data.
	//[codeblock]
	//func _set_window_layout(configuration):
	//    $Window.position = configuration.get_value("MyPlugin", "window_position", Vector2())
	//    $Icon.modulate = configuration.get_value("MyPlugin", "icon_color", Color.WHITE)
	//[/codeblock]
	SetWindowLayout(godot Context, configuration ConfigFile)
	//Override this method to provide the GUI layout of the plugin or any other data you want to be stored. This is used to save the project's editor layout when [method queue_save_layout] is called or the editor layout was changed (for example changing the position of a dock). The data is stored in the [code]editor_layout.cfg[/code] file in the editor metadata directory.
	//Use [method _set_window_layout] to restore your saved layout.
	//[codeblock]
	//func _get_window_layout(configuration):
	//    configuration.set_value("MyPlugin", "window_position", $Window.position)
	//    configuration.set_value("MyPlugin", "icon_color", $Icon.modulate)
	//[/codeblock]
	GetWindowLayout(godot Context, configuration ConfigFile)
	//This method is called when the editor is about to run the project. The plugin can then perform required operations before the project runs.
	//This method must return a boolean. If this method returns [code]false[/code], the project will not run. The run is aborted immediately, so this also prevents all other plugins' [method _build] methods from running.
	Build(godot Context) bool
	//Called by the engine when the user enables the [EditorPlugin] in the Plugin tab of the project settings window.
	EnablePlugin(godot Context)
	//Called by the engine when the user disables the [EditorPlugin] in the Plugin tab of the project settings window.
	DisablePlugin(godot Context)
}

type EditorPluginAfterGUIInput

type EditorPluginAfterGUIInput = classdb.EditorPluginAfterGUIInput
const (
	/*Forwards the [InputEvent] to other EditorPlugins.*/
	EditorPluginAfterGuiInputPass EditorPluginAfterGUIInput = 0
	/*Prevents the [InputEvent] from reaching other Editor classes.*/
	EditorPluginAfterGuiInputStop EditorPluginAfterGUIInput = 1
	/*Pass the [InputEvent] to other editor plugins except the main [Node3D] one. This can be used to prevent node selection changes and work with sub-gizmos instead.*/
	EditorPluginAfterGuiInputCustom EditorPluginAfterGUIInput = 2
)

type EditorPluginCustomControlContainer

type EditorPluginCustomControlContainer = classdb.EditorPluginCustomControlContainer
const (
	/*Main editor toolbar, next to play buttons.*/
	EditorPluginContainerToolbar EditorPluginCustomControlContainer = 0
	/*The toolbar that appears when 3D editor is active.*/
	EditorPluginContainerSpatialEditorMenu EditorPluginCustomControlContainer = 1
	/*Left sidebar of the 3D editor.*/
	EditorPluginContainerSpatialEditorSideLeft EditorPluginCustomControlContainer = 2
	/*Right sidebar of the 3D editor.*/
	EditorPluginContainerSpatialEditorSideRight EditorPluginCustomControlContainer = 3
	/*Bottom panel of the 3D editor.*/
	EditorPluginContainerSpatialEditorBottom EditorPluginCustomControlContainer = 4
	/*The toolbar that appears when 2D editor is active.*/
	EditorPluginContainerCanvasEditorMenu EditorPluginCustomControlContainer = 5
	/*Left sidebar of the 2D editor.*/
	EditorPluginContainerCanvasEditorSideLeft EditorPluginCustomControlContainer = 6
	/*Right sidebar of the 2D editor.*/
	EditorPluginContainerCanvasEditorSideRight EditorPluginCustomControlContainer = 7
	/*Bottom panel of the 2D editor.*/
	EditorPluginContainerCanvasEditorBottom EditorPluginCustomControlContainer = 8
	/*Bottom section of the inspector.*/
	EditorPluginContainerInspectorBottom EditorPluginCustomControlContainer = 9
	/*Tab of Project Settings dialog, to the left of other tabs.*/
	EditorPluginContainerProjectSettingTabLeft EditorPluginCustomControlContainer = 10
	/*Tab of Project Settings dialog, to the right of other tabs.*/
	EditorPluginContainerProjectSettingTabRight EditorPluginCustomControlContainer = 11
)

type EditorPluginDockSlot

type EditorPluginDockSlot = classdb.EditorPluginDockSlot
const (
	/*Dock slot, left side, upper-left (empty in default layout).*/
	EditorPluginDockSlotLeftUl EditorPluginDockSlot = 0
	/*Dock slot, left side, bottom-left (empty in default layout).*/
	EditorPluginDockSlotLeftBl EditorPluginDockSlot = 1
	/*Dock slot, left side, upper-right (in default layout includes Scene and Import docks).*/
	EditorPluginDockSlotLeftUr EditorPluginDockSlot = 2
	/*Dock slot, left side, bottom-right (in default layout includes FileSystem dock).*/
	EditorPluginDockSlotLeftBr EditorPluginDockSlot = 3
	/*Dock slot, right side, upper-left (in default layout includes Inspector, Node, and History docks).*/
	EditorPluginDockSlotRightUl EditorPluginDockSlot = 4
	/*Dock slot, right side, bottom-left (empty in default layout).*/
	EditorPluginDockSlotRightBl EditorPluginDockSlot = 5
	/*Dock slot, right side, upper-right (empty in default layout).*/
	EditorPluginDockSlotRightUr EditorPluginDockSlot = 6
	/*Dock slot, right side, bottom-right (empty in default layout).*/
	EditorPluginDockSlotRightBr EditorPluginDockSlot = 7
	/*Represents the size of the [enum DockSlot] enum.*/
	EditorPluginDockSlotMax EditorPluginDockSlot = 8
)

type EditorProperty

type EditorProperty = classdb.EditorProperty

A custom control for editing properties that can be added to the EditorInspector. It is added via EditorInspectorPlugin.

// EditorProperty methods that can be overridden by a [Class] that extends it.
type EditorProperty interface {
	//When this virtual function is called, you must update your editor.
	UpdateProperty(godot Context)
	//Called when the read-only status of the property is changed. It may be used to change custom controls into a read-only or modifiable state.
	SetReadOnly(godot Context, read_only bool)
}

type EditorResourceConversionPlugin

type EditorResourceConversionPlugin = classdb.EditorResourceConversionPlugin

EditorResourceConversionPlugin is invoked when the context menu is brought up for a resource in the editor inspector. Relevant conversion plugins will appear as menu options to convert the given resource to a target type. Below shows an example of a basic plugin that will convert an ImageTexture to a PortableCompressedTexture2D. [codeblocks] [gdscript] extends EditorResourceConversionPlugin

func _handles(resource: Resource):

return resource is ImageTexture

func _converts_to():

return "PortableCompressedTexture2D"

func _convert(itex: Resource):

var ptex = PortableCompressedTexture2D.new()
ptex.create_from_image(itex.get_image(), PortableCompressedTexture2D.COMPRESSION_MODE_LOSSLESS)
return ptex

[/gdscript] [/codeblocks] To use an EditorResourceConversionPlugin, register it using the [method EditorPlugin.add_resource_conversion_plugin] method first.

// EditorResourceConversionPlugin methods that can be overridden by a [Class] that extends it.
type EditorResourceConversionPlugin interface {
	//Returns the class name of the target type of [Resource] that this plugin converts source resources to.
	ConvertsTo(godot Context) gd.String
	//Called to determine whether a particular [Resource] can be converted to the target resource type by this plugin.
	Handles(godot Context, resource Resource) bool
	//Takes an input [Resource] and converts it to the type given in [method _converts_to]. The returned [Resource] is the result of the conversion, and the input [Resource] remains unchanged.
	Convert(godot Context, resource Resource) Resource
}

type EditorResourcePicker

type EditorResourcePicker = classdb.EditorResourcePicker

This Control node is used in the editor's Inspector dock to allow editing of Resource type properties. It provides options for creating, loading, saving and converting resources. Can be used with EditorInspectorPlugin to recreate the same behavior. [b]Note:[/b] This Control does not include any editor for the resource, as editing is controlled by the Inspector dock itself or sub-Inspectors.

// EditorResourcePicker methods that can be overridden by a [Class] that extends it.
type EditorResourcePicker interface {
	//This virtual method is called when updating the context menu of [EditorResourcePicker]. Implement this method to override the "New ..." items with your own options. [param menu_node] is a reference to the [PopupMenu] node.
	//[b]Note:[/b] Implement [method _handle_menu_selected] to handle these custom items.
	SetCreateOptions(godot Context, menu_node gd.Object)
	//This virtual method can be implemented to handle context menu items not handled by default. See [method _set_create_options].
	HandleMenuSelected(godot Context, id gd.Int) bool
}

type EditorResourcePreview

type EditorResourcePreview = classdb.EditorResourcePreview

This node is used to generate previews for resources or files. [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_resource_previewer].

type EditorResourcePreviewGenerator

type EditorResourcePreviewGenerator = classdb.EditorResourcePreviewGenerator

Custom code to generate previews. Please check [code]file_dialog/thumbnail_size[/code] in EditorSettings to find out the right size to do previews at.

// EditorResourcePreviewGenerator methods that can be overridden by a [Class] that extends it.
type EditorResourcePreviewGenerator interface {
	//Returns [code]true[/code] if your generator supports the resource of type [param type].
	Handles(godot Context, atype gd.String) bool
	//Generate a preview from a given resource with the specified size. This must always be implemented.
	//Returning an empty texture is an OK way to fail and let another generator take care.
	//Care must be taken because this function is always called from a thread (not the main thread).
	//[param metadata] dictionary can be modified to store file-specific metadata that can be used in [method EditorResourceTooltipPlugin._make_tooltip_for_path] (like image size, sample length etc.).
	Generate(godot Context, resource Resource, size gd.Vector2i, metadata gd.Dictionary) Texture2D
	//Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call [method _generate].
	//Returning an empty texture is an OK way to fail and let another generator take care.
	//Care must be taken because this function is always called from a thread (not the main thread).
	//[param metadata] dictionary can be modified to store file-specific metadata that can be used in [method EditorResourceTooltipPlugin._make_tooltip_for_path] (like image size, sample length etc.).
	GenerateFromPath(godot Context, path gd.String, size gd.Vector2i, metadata gd.Dictionary) Texture2D
	//If this function returns [code]true[/code], the generator will automatically generate the small previews from the normal preview texture generated by the methods [method _generate] or [method _generate_from_path].
	//By default, it returns [code]false[/code].
	GenerateSmallPreviewAutomatically(godot Context) bool
	//If this function returns [code]true[/code], the generator will call [method _generate] or [method _generate_from_path] for small previews as well.
	//By default, it returns [code]false[/code].
	CanGenerateSmallPreview(godot Context) bool
}

type EditorResourceTooltipPlugin

type EditorResourceTooltipPlugin = classdb.EditorResourceTooltipPlugin

Resource tooltip plugins are used by FileSystemDock to generate customized tooltips for specific resources. E.g. tooltip for a Texture2D displays a bigger preview and the texture's dimensions. A plugin must be first registered with [method FileSystemDock.add_resource_tooltip_plugin]. When the user hovers a resource in filesystem dock which is handled by the plugin, [method _make_tooltip_for_path] is called to create the tooltip. It works similarly to [method Control._make_custom_tooltip].

// EditorResourceTooltipPlugin methods that can be overridden by a [Class] that extends it.
type EditorResourceTooltipPlugin interface {
	//Return [code]true[/code] if the plugin is going to handle the given [Resource] [param type].
	Handles(godot Context, atype gd.String) bool
	//Create and return a tooltip that will be displayed when the user hovers a resource under the given [param path] in filesystem dock.
	//The [param metadata] dictionary is provided by preview generator (see [method EditorResourcePreviewGenerator._generate]).
	//[param base] is the base default tooltip, which is a [VBoxContainer] with a file name, type and size labels. If another plugin handled the same file type, [param base] will be output from the previous plugin. For best result, make sure the base tooltip is part of the returned [Control].
	//[b]Note:[/b] It's unadvised to use [method ResourceLoader.load], especially with heavy resources like models or textures, because it will make the editor unresponsive when creating the tooltip. You can use [method request_thumbnail] if you want to display a preview in your tooltip.
	//[b]Note:[/b] If you decide to discard the [param base], make sure to call [method Node.queue_free], because it's not freed automatically.
	//[codeblock]
	//func _make_tooltip_for_path(path, metadata, base):
	//    var t_rect = TextureRect.new()
	//    request_thumbnail(path, t_rect)
	//    base.add_child(t_rect) # The TextureRect will appear at the bottom of the tooltip.
	//    return base
	//[/codeblock]
	MakeTooltipForPath(godot Context, path gd.String, metadata gd.Dictionary, base Control) Control
}

type EditorSceneFormatImporter

type EditorSceneFormatImporter = classdb.EditorSceneFormatImporter

EditorSceneFormatImporter allows to define an importer script for a third-party 3D format. To use EditorSceneFormatImporter, register it using the [method EditorPlugin.add_scene_format_importer_plugin] method first.

// EditorSceneFormatImporter methods that can be overridden by a [Class] that extends it.
type EditorSceneFormatImporter interface {
	GetImportFlags(godot Context) gd.Int
	GetExtensions(godot Context) gd.PackedStringArray
	ImportScene(godot Context, path gd.String, flags gd.Int, options gd.Dictionary) gd.Object
	GetImportOptions(godot Context, path gd.String)
	GetOptionVisibility(godot Context, path gd.String, for_animation bool, option gd.String) gd.Variant
}

type EditorSceneFormatImporterBlend

type EditorSceneFormatImporterBlend = classdb.EditorSceneFormatImporterBlend

Imports Blender scenes in the [code].blend[/code] file format through the glTF 2.0 3D import pipeline. This importer requires Blender to be installed by the user, so that it can be used to export the scene as glTF 2.0. The location of the Blender binary is set via the [code]filesystem/import/blender/blender3_path[/code] editor setting. This importer is only used if [member ProjectSettings.filesystem/import/blender/enabled] is enabled, otherwise [code].blend[/code] files present in the project folder are not imported. Blend import requires Blender 3.0. Internally, the EditorSceneFormatImporterBlend uses the Blender glTF "Use Original" mode to reference external textures.

type EditorSceneFormatImporterFBX

type EditorSceneFormatImporterFBX = classdb.EditorSceneFormatImporterFBX

Imports Autodesk FBX 3D scenes by way of converting them to glTF 2.0 using the FBX2glTF command line tool. The location of the FBX2glTF binary is set via the [code]filesystem/import/fbx/fbx2gltf_path[/code] editor setting. This importer is only used if [member ProjectSettings.filesystem/import/fbx/enabled] is enabled, otherwise [code].fbx[/code] files present in the project folder are not imported.

type EditorSceneFormatImporterGLTF

type EditorSceneFormatImporterGLTF = classdb.EditorSceneFormatImporterGLTF

type EditorScenePostImport

type EditorScenePostImport = classdb.EditorScenePostImport

Imported scenes can be automatically modified right after import by setting their [b]Custom Script[/b] Import property to a [code]tool[/code] script that inherits from this class. The [method _post_import] callback receives the imported scene's root node and returns the modified version of the scene. Usage example: [codeblocks] [gdscript] @tool # Needed so it runs in editor. extends EditorScenePostImport

# This sample changes all node names. # Called right after the scene is imported and gets the root node. func _post_import(scene):

# Change all node names to "modified_[oldnodename]"
iterate(scene)
return scene # Remember to return the imported scene

func iterate(node):

if node != null:
    node.name = "modified_" + node.name
    for child in node.get_children():
        iterate(child)

[/gdscript] [csharp] using Godot;

// This sample changes all node names. // Called right after the scene is imported and gets the root node. [Tool] public partial class NodeRenamer : EditorScenePostImport

{
    public override GodotObject _PostImport(Node scene)
    {
        // Change all node names to "modified_[oldnodename]"
        Iterate(scene);
        return scene; // Remember to return the imported scene
    }

    public void Iterate(Node node)
    {
        if (node != null)
        {
            node.Name = $"modified_{node.Name}";
            foreach (Node child in node.GetChildren())
            {
                Iterate(child);
            }
        }
    }
}

[/csharp] [/codeblocks]

// EditorScenePostImport methods that can be overridden by a [Class] that extends it.
type EditorScenePostImport interface {
	//Called after the scene was imported. This method must return the modified version of the scene.
	PostImport(godot Context, scene Node) gd.Object
}

type EditorScenePostImportPlugin

type EditorScenePostImportPlugin = classdb.EditorScenePostImportPlugin

This plugin type exists to modify the process of importing scenes, allowing to change the content as well as add importer options at every stage of the process.

// EditorScenePostImportPlugin methods that can be overridden by a [Class] that extends it.
type EditorScenePostImportPlugin interface {
	//Override to add internal import options. These will appear in the 3D scene import dialog. Add options via [method add_import_option] and [method add_import_option_advanced].
	GetInternalImportOptions(godot Context, category gd.Int)
	//Return true or false whether a given option should be visible. Return null to ignore.
	GetInternalOptionVisibility(godot Context, category gd.Int, for_animation bool, option gd.String) gd.Variant
	//Return true whether updating the 3D view of the import dialog needs to be updated if an option has changed.
	GetInternalOptionUpdateViewRequired(godot Context, category gd.Int, option gd.String) gd.Variant
	//Process a specific node or resource for a given category.
	InternalProcess(godot Context, category gd.Int, base_node Node, node Node, resource Resource)
	//Override to add general import options. These will appear in the main import dock on the editor. Add options via [method add_import_option] and [method add_import_option_advanced].
	GetImportOptions(godot Context, path gd.String)
	//Return true or false whether a given option should be visible. Return null to ignore.
	GetOptionVisibility(godot Context, path gd.String, for_animation bool, option gd.String) gd.Variant
	//Pre Process the scene. This function is called right after the scene format loader loaded the scene and no changes have been made.
	PreProcess(godot Context, scene Node)
	//Post process the scene. This function is called after the final scene has been configured.
	PostProcess(godot Context, scene Node)
}

type EditorScenePostImportPluginInternalImportCategory

type EditorScenePostImportPluginInternalImportCategory = classdb.EditorScenePostImportPluginInternalImportCategory
const (
	EditorScenePostImportPluginInternalImportCategoryNode           EditorScenePostImportPluginInternalImportCategory = 0
	EditorScenePostImportPluginInternalImportCategoryMesh3dNode     EditorScenePostImportPluginInternalImportCategory = 1
	EditorScenePostImportPluginInternalImportCategoryMesh           EditorScenePostImportPluginInternalImportCategory = 2
	EditorScenePostImportPluginInternalImportCategoryMaterial       EditorScenePostImportPluginInternalImportCategory = 3
	EditorScenePostImportPluginInternalImportCategoryAnimation      EditorScenePostImportPluginInternalImportCategory = 4
	EditorScenePostImportPluginInternalImportCategoryAnimationNode  EditorScenePostImportPluginInternalImportCategory = 5
	EditorScenePostImportPluginInternalImportCategorySkeleton3dNode EditorScenePostImportPluginInternalImportCategory = 6
	EditorScenePostImportPluginInternalImportCategoryMax            EditorScenePostImportPluginInternalImportCategory = 7
)

type EditorScript

type EditorScript = classdb.EditorScript

Scripts extending this class and implementing its [method _run] method can be executed from the Script Editor's [b]File > Run[/b] menu option (or by pressing [kbd]Ctrl + Shift + X[/kbd]) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using [EditorPlugin]s instead. [b]Note:[/b] Extending scripts need to have [code]tool[/code] mode enabled. [b]Example script:[/b] [codeblocks] [gdscript] @tool extends EditorScript

func _run():

print("Hello from the Godot Editor!")

[/gdscript] [csharp] using Godot;

[Tool] public partial class HelloEditor : EditorScript

{
    public override void _Run()
    {
        GD.Print("Hello from the Godot Editor!");
    }
}

[/csharp] [/codeblocks] [b]Note:[/b] The script is run in the Editor context, which means the output is visible in the console window started with the Editor (stdout) instead of the usual Godot [b]Output[/b] dock. [b]Note:[/b] EditorScript is RefCounted, meaning it is destroyed when nothing references it. This can cause errors during asynchronous operations if there are no references to the script.

// EditorScript methods that can be overridden by a [Class] that extends it.
type EditorScript interface {
	//This method is executed by the Editor when [b]File > Run[/b] is used.
	Run(godot Context)
}

type EditorScriptPicker

type EditorScriptPicker = classdb.EditorScriptPicker

Similar to EditorResourcePicker this Control node is used in the editor's Inspector dock, but only to edit the [code]script[/code] property of a Node. Default options for creating new resources of all possible subtypes are replaced with dedicated buttons that open the "Attach Node Script" dialog. Can be used with EditorInspectorPlugin to recreate the same behavior. [b]Note:[/b] You must set the [member script_owner] for the custom context menu items to work.

type EditorSelection

type EditorSelection = classdb.EditorSelection

This object manages the SceneTree selection in the editor. [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_selection].

type EditorSettings

type EditorSettings = classdb.EditorSettings

Object that holds the project-independent editor settings. These settings are generally visible in the [b]Editor > Editor Settings[/b] menu. Property names use slash delimiters to distinguish sections. Setting values can be of any Variant type. It's recommended to use [code]snake_case[/code] for editor settings to be consistent with the Godot editor itself. Accessing the settings can be done using the following methods, such as: [codeblocks] [gdscript] var settings = EditorInterface.get_editor_settings() # `settings.set("some/property", 10)` also works as this class overrides `_set()` internally. settings.set_setting("some/property", 10) # `settings.get("some/property")` also works as this class overrides `_get()` internally. settings.get_setting("some/property") var list_of_settings = settings.get_property_list() [/gdscript] [csharp] EditorSettings settings = EditorInterface.Singleton.GetEditorSettings(); // `settings.set("some/property", value)` also works as this class overrides `_set()` internally. settings.SetSetting("some/property", Value); // `settings.get("some/property", value)` also works as this class overrides `_get()` internally. settings.GetSetting("some/property"); Godot.Collections.Array<Godot.Collections.Dictionary> listOfSettings = settings.GetPropertyList(); [/csharp] [/codeblocks] [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_editor_settings].

type EditorSpinSlider

type EditorSpinSlider = classdb.EditorSpinSlider

This Control node is used in the editor's Inspector dock to allow editing of numeric values. Can be used with EditorInspectorPlugin to recreate the same behavior. If the [member Range.step] value is [code]1[/code], the EditorSpinSlider will display up/down arrows, similar to SpinBox. If the [member Range.step] value is not [code]1[/code], a slider will be displayed instead.

type EditorSyntaxHighlighter

type EditorSyntaxHighlighter = classdb.EditorSyntaxHighlighter

Base class that all [SyntaxHighlighter]s used by the ScriptEditor extend from. Add a syntax highlighter to an individual script by calling [method ScriptEditorBase.add_syntax_highlighter]. To apply to all scripts on open, call [method ScriptEditor.register_syntax_highlighter].

// EditorSyntaxHighlighter methods that can be overridden by a [Class] that extends it.
type EditorSyntaxHighlighter interface {
	//Virtual method which can be overridden to return the syntax highlighter name.
	GetName(godot Context) gd.String
	//Virtual method which can be overridden to return the supported language names.
	GetSupportedLanguages(godot Context) gd.PackedStringArray
}

type EditorTranslationParserPlugin

type EditorTranslationParserPlugin = classdb.EditorTranslationParserPlugin

EditorTranslationParserPlugin is invoked when a file is being parsed to extract strings that require translation. To define the parsing and string extraction logic, override the [method _parse_file] method in script. Add the extracted strings to argument [code]msgids[/code] or [code]msgids_context_plural[/code] if context or plural is used. When adding to [code]msgids_context_plural[/code], you must add the data using the format [code]["A", "B", "C"][/code], where [code]A[/code] represents the extracted string, [code]B[/code] represents the context, and [code]C[/code] represents the plural version of the extracted string. If you want to add only context but not plural, put [code]""[/code] for the plural slot. The idea is the same if you only want to add plural but not context. See the code below for concrete examples. The extracted strings will be written into a POT file selected by user under "POT Generation" in "Localization" tab in "Project Settings" menu. Below shows an example of a custom parser that extracts strings from a CSV file to write into a POT. [codeblocks] [gdscript] @tool extends EditorTranslationParserPlugin

func _parse_file(path, msgids, msgids_context_plural):

var file = FileAccess.open(path, FileAccess.READ)
var text = file.get_as_text()
var split_strs = text.split(",", false)
for s in split_strs:
    msgids.append(s)
    #print("Extracted string: " + s)

func _get_recognized_extensions():

return ["csv"]

[/gdscript] [csharp] using Godot;

[Tool] public partial class CustomParser : EditorTranslationParserPlugin

{
    public override void _ParseFile(string path, Godot.Collections.Array<string> msgids, Godot.Collections.Array<Godot.Collections.Array> msgidsContextPlural)
    {
        using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);
        string text = file.GetAsText();
        string[] splitStrs = text.Split(",", allowEmpty: false);
        foreach (string s in splitStrs)
        {
            msgids.Add(s);
            //GD.Print($"Extracted string: {s}");
        }
    }

    public override string[] _GetRecognizedExtensions()
    {
        return new string[] { "csv" };
    }
}

[/csharp] [/codeblocks] To add a translatable string associated with context or plural, add it to [code]msgids_context_plural[/code]: [codeblocks] [gdscript] # This will add a message with msgid "Test 1", msgctxt "context", and msgid_plural "test 1 plurals". msgids_context_plural.append(["Test 1", "context", "test 1 plurals"]) # This will add a message with msgid "A test without context" and msgid_plural "plurals". msgids_context_plural.append(["A test without context", "", "plurals"]) # This will add a message with msgid "Only with context" and msgctxt "a friendly context". msgids_context_plural.append(["Only with context", "a friendly context", ""]) [/gdscript] [csharp] // This will add a message with msgid "Test 1", msgctxt "context", and msgid_plural "test 1 plurals". msgidsContextPlural.Add(new Godot.Collections.Array{"Test 1", "context", "test 1 Plurals"}); // This will add a message with msgid "A test without context" and msgid_plural "plurals". msgidsContextPlural.Add(new Godot.Collections.Array{"A test without context", "", "plurals"}); // This will add a message with msgid "Only with context" and msgctxt "a friendly context". msgidsContextPlural.Add(new Godot.Collections.Array{"Only with context", "a friendly context", ""}); [/csharp] [/codeblocks] [b]Note:[/b] If you override parsing logic for standard script types (GDScript, C#, etc.), it would be better to load the [code]path[/code] argument using [method ResourceLoader.load]. This is because built-in scripts are loaded as Resource type, not FileAccess type. For example: [codeblocks] [gdscript] func _parse_file(path, msgids, msgids_context_plural):

var res = ResourceLoader.load(path, "Script")
var text = res.source_code
# Parsing logic.

func _get_recognized_extensions():

return ["gd"]

[/gdscript] [csharp] public override void _ParseFile(string path, Godot.Collections.Array<string> msgids, Godot.Collections.Array<Godot.Collections.Array> msgidsContextPlural)

{
    var res = ResourceLoader.Load<Script>(path, "Script");
    string text = res.SourceCode;
    // Parsing logic.
}

public override string[] _GetRecognizedExtensions()

{
    return new string[] { "gd" };
}

[/csharp] [/codeblocks] To use EditorTranslationParserPlugin, register it using the [method EditorPlugin.add_translation_parser_plugin] method first.

// EditorTranslationParserPlugin methods that can be overridden by a [Class] that extends it.
type EditorTranslationParserPlugin interface {
	//Override this method to define a custom parsing logic to extract the translatable strings.
	ParseFile(godot Context, path gd.String, msgids gd.ArrayOf[gd.String], msgids_context_plural gd.ArrayOf[gd.Array])
	//Gets the list of file extensions to associate with this parser, e.g. [code]["csv"][/code].
	GetRecognizedExtensions(godot Context) gd.PackedStringArray
}

type EditorUndoRedoManager

type EditorUndoRedoManager = classdb.EditorUndoRedoManager

EditorUndoRedoManager is a manager for UndoRedo objects associated with edited scenes. Each scene has its own undo history and EditorUndoRedoManager ensures that each action performed in the editor gets associated with a proper scene. For actions not related to scenes (ProjectSettings edits, external resources, etc.), a separate global history is used. The usage is mostly the same as UndoRedo. You create and commit actions and the manager automatically decides under-the-hood what scenes it belongs to. The scene is deduced based on the first operation in an action, using the object from the operation. The rules are as follows: - If the object is a Node, use the currently edited scene; - If the object is a built-in resource, use the scene from its path; - If the object is external resource or anything else, use global history. This guessing can sometimes yield false results, so you can provide a custom context object when creating an action. EditorUndoRedoManager is intended to be used by Godot editor plugins. You can obtain it using [method EditorPlugin.get_undo_redo]. For non-editor uses or plugins that don't need to integrate with the editor's undo history, use UndoRedo instead. The manager's API is mostly the same as in UndoRedo, so you can refer to its documentation for more examples. The main difference is that EditorUndoRedoManager uses object + method name for actions, instead of Callable.

type EditorUndoRedoManagerSpecialHistory

type EditorUndoRedoManagerSpecialHistory = classdb.EditorUndoRedoManagerSpecialHistory
const (
	/*Global history not associated with any scene, but with external resources etc.*/
	EditorUndoRedoManagerGlobalHistory EditorUndoRedoManagerSpecialHistory = 0
	/*History associated with remote inspector. Used when live editing a running project.*/
	EditorUndoRedoManagerRemoteHistory EditorUndoRedoManagerSpecialHistory = -9
	/*Invalid "null" history. It's a special value, not associated with any object.*/
	EditorUndoRedoManagerInvalidHistory EditorUndoRedoManagerSpecialHistory = -99
)

type EditorVCSInterface

type EditorVCSInterface = classdb.EditorVCSInterface

Defines the API that the editor uses to extract information from the underlying VCS. The implementation of this API is included in VCS plugins, which are GDExtension plugins that inherit EditorVCSInterface and are attached (on demand) to the singleton instance of EditorVCSInterface. Instead of performing the task themselves, all the virtual functions listed below are calling the internally overridden functions in the VCS plugins to provide a plug-n-play experience. A custom VCS plugin is supposed to inherit from EditorVCSInterface and override each of these virtual functions.

// EditorVCSInterface methods that can be overridden by a [Class] that extends it.
type EditorVCSInterface interface {
	//Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at [param project_path].
	Initialize(godot Context, project_path gd.String) bool
	//Set user credentials in the underlying VCS. [param username] and [param password] are used only during HTTPS authentication unless not already mentioned in the remote URL. [param ssh_public_key_path], [param ssh_private_key_path], and [param ssh_passphrase] are only used during SSH authentication.
	SetCredentials(godot Context, username gd.String, password gd.String, ssh_public_key_path gd.String, ssh_private_key_path gd.String, ssh_passphrase gd.String)
	//Returns an [Array] of [Dictionary] items (see [method create_status_file]), each containing the status data of every modified file in the project folder.
	GetModifiedFilesData(godot Context) gd.ArrayOf[gd.Dictionary]
	//Stages the file present at [param file_path] to the staged area.
	StageFile(godot Context, file_path gd.String)
	//Unstages the file present at [param file_path] from the staged area to the unstaged area.
	UnstageFile(godot Context, file_path gd.String)
	//Discards the changes made in a file present at [param file_path].
	DiscardFile(godot Context, file_path gd.String)
	//Commits the currently staged changes and applies the commit [param msg] to the resulting commit.
	Commit(godot Context, msg gd.String)
	//Returns an array of [Dictionary] items (see [method create_diff_file], [method create_diff_hunk], [method create_diff_line], [method add_line_diffs_into_diff_hunk] and [method add_diff_hunks_into_diff_file]), each containing information about a diff. If [param identifier] is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.
	GetDiff(godot Context, identifier gd.String, area gd.Int) gd.ArrayOf[gd.Dictionary]
	//Shuts down VCS plugin instance. Called when the user either closes the editor or shuts down the VCS plugin through the editor UI.
	ShutDown(godot Context) bool
	//Returns the name of the underlying VCS provider.
	GetVcsName(godot Context) gd.String
	//Returns an [Array] of [Dictionary] items (see [method create_commit]), each containing the data for a past commit.
	GetPreviousCommits(godot Context, max_commits gd.Int) gd.ArrayOf[gd.Dictionary]
	//Gets an instance of an [Array] of [String]s containing available branch names in the VCS.
	GetBranchList(godot Context) gd.ArrayOf[gd.String]
	//Returns an [Array] of [String]s, each containing the name of a remote configured in the VCS.
	GetRemotes(godot Context) gd.ArrayOf[gd.String]
	//Creates a new branch named [param branch_name] in the VCS.
	CreateBranch(godot Context, branch_name gd.String)
	//Remove a branch from the local VCS.
	RemoveBranch(godot Context, branch_name gd.String)
	//Creates a new remote destination with name [param remote_name] and points it to [param remote_url]. This can be an HTTPS remote or an SSH remote.
	CreateRemote(godot Context, remote_name gd.String, remote_url gd.String)
	//Remove a remote from the local VCS.
	RemoveRemote(godot Context, remote_name gd.String)
	//Gets the current branch name defined in the VCS.
	GetCurrentBranchName(godot Context) gd.String
	//Checks out a [param branch_name] in the VCS.
	CheckoutBranch(godot Context, branch_name gd.String) bool
	//Pulls changes from the remote. This can give rise to merge conflicts.
	Pull(godot Context, remote gd.String)
	//Pushes changes to the [param remote]. If [param force] is [code]true[/code], a force push will override the change history already present on the remote.
	Push(godot Context, remote gd.String, force bool)
	//Fetches new changes from the [param remote], but doesn't write changes to the current working directory. Equivalent to [code]git fetch[/code].
	Fetch(godot Context, remote gd.String)
	//Returns an [Array] of [Dictionary] items (see [method create_diff_hunk]), each containing a line diff between a file at [param file_path] and the [param text] which is passed in.
	GetLineDiff(godot Context, file_path gd.String, text gd.String) gd.ArrayOf[gd.Dictionary]
}

type EditorVCSInterfaceChangeType

type EditorVCSInterfaceChangeType = classdb.EditorVCSInterfaceChangeType
const (
	/*A new file has been added.*/
	EditorVCSInterfaceChangeTypeNew EditorVCSInterfaceChangeType = 0
	/*An earlier added file has been modified.*/
	EditorVCSInterfaceChangeTypeModified EditorVCSInterfaceChangeType = 1
	/*An earlier added file has been renamed.*/
	EditorVCSInterfaceChangeTypeRenamed EditorVCSInterfaceChangeType = 2
	/*An earlier added file has been deleted.*/
	EditorVCSInterfaceChangeTypeDeleted EditorVCSInterfaceChangeType = 3
	/*An earlier added file has been typechanged.*/
	EditorVCSInterfaceChangeTypeTypechange EditorVCSInterfaceChangeType = 4
	/*A file is left unmerged.*/
	EditorVCSInterfaceChangeTypeUnmerged EditorVCSInterfaceChangeType = 5
)

type EditorVCSInterfaceTreeArea

type EditorVCSInterfaceTreeArea = classdb.EditorVCSInterfaceTreeArea
const (
	/*A commit is encountered from the commit area.*/
	EditorVCSInterfaceTreeAreaCommit EditorVCSInterfaceTreeArea = 0
	/*A file is encountered from the staged area.*/
	EditorVCSInterfaceTreeAreaStaged EditorVCSInterfaceTreeArea = 1
	/*A file is encountered from the unstaged area.*/
	EditorVCSInterfaceTreeAreaUnstaged EditorVCSInterfaceTreeArea = 2
)

type EncodedObjectAsID

type EncodedObjectAsID = classdb.EncodedObjectAsID

Utility class which holds a reference to the internal identifier of an Object instance, as given by [method Object.get_instance_id]. This ID can then be used to retrieve the object instance with [method @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.

type EngineProfiler

type EngineProfiler = classdb.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 methods that can be overridden by a [Class] that extends it.
type EngineProfiler interface {
	//Called when the profiler is enabled/disabled, along with a set of [param options].
	Toggle(godot Context, enable bool, options gd.Array)
	//Called when data is added to profiler using [method EngineDebugger.profiler_add_frame_data].
	AddFrame(godot Context, data gd.Array)
	//Called once every engine iteration when the profiler is active with information about the current frame. All time values are in seconds. Lower values represent faster processing times and are therefore considered better.
	Tick(godot Context, frame_time gd.Float, process_time gd.Float, physics_time gd.Float, physics_frame_time gd.Float)
}

type Environment

type Environment = classdb.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

type EnvironmentAmbientSource

type EnvironmentAmbientSource = classdb.EnvironmentAmbientSource
const (
	/*Gather ambient light from whichever source is specified as the background.*/
	EnvironmentAmbientSourceBg EnvironmentAmbientSource = 0
	/*Disable ambient light. This provides a slight performance boost over [constant AMBIENT_SOURCE_SKY].*/
	EnvironmentAmbientSourceDisabled EnvironmentAmbientSource = 1
	/*Specify a specific [Color] for ambient light. This provides a slight performance boost over [constant AMBIENT_SOURCE_SKY].*/
	EnvironmentAmbientSourceColor EnvironmentAmbientSource = 2
	/*Gather ambient light from the [Sky] regardless of what the background is.*/
	EnvironmentAmbientSourceSky EnvironmentAmbientSource = 3
)

type EnvironmentBGMode

type EnvironmentBGMode = classdb.EnvironmentBGMode
const (
	/*Clears the background using the clear color defined in [member ProjectSettings.rendering/environment/defaults/default_clear_color].*/
	EnvironmentBgClearColor EnvironmentBGMode = 0
	/*Clears the background using a custom clear color.*/
	EnvironmentBgColor EnvironmentBGMode = 1
	/*Displays a user-defined sky in the background.*/
	EnvironmentBgSky EnvironmentBGMode = 2
	/*Displays a [CanvasLayer] in the background.*/
	EnvironmentBgCanvas EnvironmentBGMode = 3
	/*Keeps on screen every pixel drawn in the background. This is the fastest background mode, but it can only be safely used in fully-interior scenes (no visible sky or sky reflections). If enabled in a scene where the background is visible, "ghost trail" artifacts will be visible when moving the camera.*/
	EnvironmentBgKeep EnvironmentBGMode = 4
	/*Displays a camera feed in the background.*/
	EnvironmentBgCameraFeed EnvironmentBGMode = 5
	/*Represents the size of the [enum BGMode] enum.*/
	EnvironmentBgMax EnvironmentBGMode = 6
)

type EnvironmentGlowBlendMode

type EnvironmentGlowBlendMode = classdb.EnvironmentGlowBlendMode
const (
	/*Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources.*/
	EnvironmentGlowBlendModeAdditive EnvironmentGlowBlendMode = 0
	/*Screen glow blending mode. Increases brightness, used frequently with bloom.*/
	EnvironmentGlowBlendModeScreen EnvironmentGlowBlendMode = 1
	/*Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom).*/
	EnvironmentGlowBlendModeSoftlight EnvironmentGlowBlendMode = 2
	/*Replace glow blending mode. Replaces all pixels' color by the glow value. This can be used to simulate a full-screen blur effect by tweaking the glow parameters to match the original image's brightness.*/
	EnvironmentGlowBlendModeReplace EnvironmentGlowBlendMode = 3
	/*Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect.*/
	EnvironmentGlowBlendModeMix EnvironmentGlowBlendMode = 4
)

type EnvironmentReflectionSource

type EnvironmentReflectionSource = classdb.EnvironmentReflectionSource
const (
	/*Use the background for reflections.*/
	EnvironmentReflectionSourceBg EnvironmentReflectionSource = 0
	/*Disable reflections. This provides a slight performance boost over other options.*/
	EnvironmentReflectionSourceDisabled EnvironmentReflectionSource = 1
	/*Use the [Sky] for reflections regardless of what the background is.*/
	EnvironmentReflectionSourceSky EnvironmentReflectionSource = 2
)

type EnvironmentSDFGIYScale

type EnvironmentSDFGIYScale = classdb.EnvironmentSDFGIYScale
const (
	/*Use 50% scale for SDFGI on the Y (vertical) axis. SDFGI cells will be twice as short as they are wide. This allows providing increased GI detail and reduced light leaking with thin floors and ceilings. This is usually the best choice for scenes that don't feature much verticality.*/
	EnvironmentSdfgiYScale50Percent EnvironmentSDFGIYScale = 0
	/*Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales.*/
	EnvironmentSdfgiYScale75Percent EnvironmentSDFGIYScale = 1
	/*Use 100% scale for SDFGI on the Y (vertical) axis. SDFGI cells will be as tall as they are wide. This is usually the best choice for highly vertical scenes. The downside is that light leaking may become more noticeable with thin floors and ceilings.*/
	EnvironmentSdfgiYScale100Percent EnvironmentSDFGIYScale = 2
)

type EnvironmentToneMapper

type EnvironmentToneMapper = classdb.EnvironmentToneMapper
const (
	/*Linear tonemapper operator. Reads the linear data and passes it on unmodified. This can cause bright lighting to look blown out, with noticeable clipping in the output colors.*/
	EnvironmentToneMapperLinear EnvironmentToneMapper = 0
	/*Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code]. This avoids clipping bright highlights, but the resulting image can look a bit dull.*/
	EnvironmentToneMapperReinhardt EnvironmentToneMapper = 1
	/*Filmic tonemapper operator. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than [constant TONE_MAPPER_REINHARDT].*/
	EnvironmentToneMapperFilmic EnvironmentToneMapper = 2
	/*Use the Academy Color Encoding System tonemapper. ACES is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. ACES typically has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and [constant TONE_MAPPER_FILMIC].
	  [b]Note:[/b] This tonemapping operator is called "ACES Fitted" in Godot 3.x.*/
	EnvironmentToneMapperAces EnvironmentToneMapper = 3
)

type Error

type Error = gd.Error
const (
	/*Methods that return [enum Error] return [constant OK] when no error occurred.
	  Since [constant OK] has value 0, and all other error constants are positive integers, it can also be used in boolean checks.
	  [b]Example:[/b]
	  [codeblock]
	  var error = method_that_returns_error()
	  if error != OK:
	      printerr("Failure!")

	  # Or, alternatively:
	  if error:
	      printerr("Still failing!")
	  [/codeblock]
	  [b]Note:[/b] Many functions do not return an error code, but will print error messages to standard output.*/
	Ok Error = 0
	/*Generic error.*/
	Failed Error = 1
	/*Unavailable error.*/
	ErrUnavailable Error = 2
	/*Unconfigured error.*/
	ErrUnconfigured Error = 3
	/*Unauthorized error.*/
	ErrUnauthorized Error = 4
	/*Parameter range error.*/
	ErrParameterRangeError Error = 5
	/*Out of memory (OOM) error.*/
	ErrOutOfMemory Error = 6
	/*File: Not found error.*/
	ErrFileNotFound Error = 7
	/*File: Bad drive error.*/
	ErrFileBadDrive Error = 8
	/*File: Bad path error.*/
	ErrFileBadPath Error = 9
	/*File: No permission error.*/
	ErrFileNoPermission Error = 10
	/*File: Already in use error.*/
	ErrFileAlreadyInUse Error = 11
	/*File: Can't open error.*/
	ErrFileCantOpen Error = 12
	/*File: Can't write error.*/
	ErrFileCantWrite Error = 13
	/*File: Can't read error.*/
	ErrFileCantRead Error = 14
	/*File: Unrecognized error.*/
	ErrFileUnrecognized Error = 15
	/*File: Corrupt error.*/
	ErrFileCorrupt Error = 16
	/*File: Missing dependencies error.*/
	ErrFileMissingDependencies Error = 17
	/*File: End of file (EOF) error.*/
	ErrFileEof Error = 18
	/*Can't open error.*/
	ErrCantOpen Error = 19
	/*Can't create error.*/
	ErrCantCreate Error = 20
	/*Query failed error.*/
	ErrQueryFailed Error = 21
	/*Already in use error.*/
	ErrAlreadyInUse Error = 22
	/*Locked error.*/
	ErrLocked Error = 23
	/*Timeout error.*/
	ErrTimeout Error = 24
	/*Can't connect error.*/
	ErrCantConnect Error = 25
	/*Can't resolve error.*/
	ErrCantResolve Error = 26
	/*Connection error.*/
	ErrConnectionError Error = 27
	/*Can't acquire resource error.*/
	ErrCantAcquireResource Error = 28
	/*Can't fork process error.*/
	ErrCantFork Error = 29
	/*Invalid data error.*/
	ErrInvalidData Error = 30
	/*Invalid parameter error.*/
	ErrInvalidParameter Error = 31
	/*Already exists error.*/
	ErrAlreadyExists Error = 32
	/*Does not exist error.*/
	ErrDoesNotExist Error = 33
	/*Database: Read error.*/
	ErrDatabaseCantRead Error = 34
	/*Database: Write error.*/
	ErrDatabaseCantWrite Error = 35
	/*Compilation failed error.*/
	ErrCompilationFailed Error = 36
	/*Method not found error.*/
	ErrMethodNotFound Error = 37
	/*Linking failed error.*/
	ErrLinkFailed Error = 38
	/*Script failed error.*/
	ErrScriptFailed Error = 39
	/*Cycling link (import cycle) error.*/
	ErrCyclicLink Error = 40
	/*Invalid declaration error.*/
	ErrInvalidDeclaration Error = 41
	/*Duplicate symbol error.*/
	ErrDuplicateSymbol Error = 42
	/*Parse error.*/
	ErrParseError Error = 43
	/*Busy error.*/
	ErrBusy Error = 44
	/*Skip error.*/
	ErrSkip Error = 45
	/*Help error. Used internally when passing [code]--version[/code] or [code]--help[/code] as executable options.*/
	ErrHelp Error = 46
	/*Bug error, caused by an implementation issue in the method.
	  [b]Note:[/b] If a built-in method returns this code, please open an issue on [url=https://github.com/godotengine/godot/issues]the GitHub Issue Tracker[/url].*/
	ErrBug Error = 47
	/*Printer on fire error (This is an easter egg, no built-in methods return this error code).*/
	ErrPrinterOnFire Error = 48
)

type EulerAngles

type EulerAngles = xy.EulerAngles

type EulerOrder

type EulerOrder = xy.EulerOrder

type Expression

type Expression = classdb.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 [code]sqrt(pow(3, 2) + pow(4, 2))[/code]. In the following example we use a LineEdit node to write our expression and show the result. [codeblocks] [gdscript] var expression = Expression.new()

func _ready():

$LineEdit.text_submitted.connect(self._on_text_submitted)

func _on_text_submitted(command):

var error = expression.parse(command)
if error != OK:
    print(expression.get_error_text())
    return
var result = expression.execute()
if not expression.has_execute_failed():
    $LineEdit.text = str(result)

[/gdscript] [csharp] 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();
    }
}

[/csharp] [/codeblocks]

type FastNoiseLite

type FastNoiseLite = classdb.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 [code][-1, 1][/code], but not always. Some of the cellular noise algorithms return results above [code]1[/code].

type FastNoiseLiteCellularDistanceFunction

type FastNoiseLiteCellularDistanceFunction = classdb.FastNoiseLiteCellularDistanceFunction
const (
	/*Euclidean distance to the nearest point.*/
	FastNoiseLiteDistanceEuclidean FastNoiseLiteCellularDistanceFunction = 0
	/*Squared Euclidean distance to the nearest point.*/
	FastNoiseLiteDistanceEuclideanSquared FastNoiseLiteCellularDistanceFunction = 1
	/*Manhattan distance (taxicab metric) to the nearest point.*/
	FastNoiseLiteDistanceManhattan FastNoiseLiteCellularDistanceFunction = 2
	/*Blend of [constant DISTANCE_EUCLIDEAN] and [constant DISTANCE_MANHATTAN] to give curved cell boundaries*/
	FastNoiseLiteDistanceHybrid FastNoiseLiteCellularDistanceFunction = 3
)

type FastNoiseLiteCellularReturnType

type FastNoiseLiteCellularReturnType = classdb.FastNoiseLiteCellularReturnType
const (
	/*The cellular distance function will return the same value for all points within a cell.*/
	FastNoiseLiteReturnCellValue FastNoiseLiteCellularReturnType = 0
	/*The cellular distance function will return a value determined by the distance to the nearest point.*/
	FastNoiseLiteReturnDistance FastNoiseLiteCellularReturnType = 1
	/*The cellular distance function returns the distance to the second-nearest point.*/
	FastNoiseLiteReturnDistance2 FastNoiseLiteCellularReturnType = 2
	/*The distance to the nearest point is added to the distance to the second-nearest point.*/
	FastNoiseLiteReturnDistance2Add FastNoiseLiteCellularReturnType = 3
	/*The distance to the nearest point is subtracted from the distance to the second-nearest point.*/
	FastNoiseLiteReturnDistance2Sub FastNoiseLiteCellularReturnType = 4
	/*The distance to the nearest point is multiplied with the distance to the second-nearest point.*/
	FastNoiseLiteReturnDistance2Mul FastNoiseLiteCellularReturnType = 5
	/*The distance to the nearest point is divided by the distance to the second-nearest point.*/
	FastNoiseLiteReturnDistance2Div FastNoiseLiteCellularReturnType = 6
)

type FastNoiseLiteDomainWarpFractalType

type FastNoiseLiteDomainWarpFractalType = classdb.FastNoiseLiteDomainWarpFractalType
const (
	/*No fractal noise for warping the space.*/
	FastNoiseLiteDomainWarpFractalNone FastNoiseLiteDomainWarpFractalType = 0
	/*Warping the space progressively, octave for octave, resulting in a more "liquified" distortion.*/
	FastNoiseLiteDomainWarpFractalProgressive FastNoiseLiteDomainWarpFractalType = 1
	/*Warping the space independently for each octave, resulting in a more chaotic distortion.*/
	FastNoiseLiteDomainWarpFractalIndependent FastNoiseLiteDomainWarpFractalType = 2
)

type FastNoiseLiteDomainWarpType

type FastNoiseLiteDomainWarpType = classdb.FastNoiseLiteDomainWarpType
const (
	/*The domain is warped using the simplex noise algorithm.*/
	FastNoiseLiteDomainWarpSimplex FastNoiseLiteDomainWarpType = 0
	/*The domain is warped using a simplified version of the simplex noise algorithm.*/
	FastNoiseLiteDomainWarpSimplexReduced FastNoiseLiteDomainWarpType = 1
	/*The domain is warped using a simple noise grid (not as smooth as the other methods, but more performant).*/
	FastNoiseLiteDomainWarpBasicGrid FastNoiseLiteDomainWarpType = 2
)

type FastNoiseLiteFractalType

type FastNoiseLiteFractalType = classdb.FastNoiseLiteFractalType
const (
	/*No fractal noise.*/
	FastNoiseLiteFractalNone FastNoiseLiteFractalType = 0
	/*Method using Fractional Brownian Motion to combine octaves into a fractal.*/
	FastNoiseLiteFractalFbm FastNoiseLiteFractalType = 1
	/*Method of combining octaves into a fractal resulting in a "ridged" look.*/
	FastNoiseLiteFractalRidged FastNoiseLiteFractalType = 2
	/*Method of combining octaves into a fractal with a ping pong effect.*/
	FastNoiseLiteFractalPingPong FastNoiseLiteFractalType = 3
)

type FastNoiseLiteNoiseType

type FastNoiseLiteNoiseType = classdb.FastNoiseLiteNoiseType
const (
	/*A lattice of points are assigned random values then interpolated based on neighboring values.*/
	FastNoiseLiteTypeValue FastNoiseLiteNoiseType = 5
	/*Similar to Value noise, but slower. Has more variance in peaks and valleys.
	  Cubic noise can be used to avoid certain artifacts when using value noise to create a bumpmap. In general, you should always use this mode if the value noise is being used for a heightmap or bumpmap.*/
	FastNoiseLiteTypeValueCubic FastNoiseLiteNoiseType = 4
	/*A lattice of random gradients. Their dot products are interpolated to obtain values in between the lattices.*/
	FastNoiseLiteTypePerlin FastNoiseLiteNoiseType = 3
	/*Cellular includes both Worley noise and Voronoi diagrams which creates various regions of the same value.*/
	FastNoiseLiteTypeCellular FastNoiseLiteNoiseType = 2
	/*As opposed to [constant TYPE_PERLIN], gradients exist in a simplex lattice rather than a grid lattice, avoiding directional artifacts.*/
	FastNoiseLiteTypeSimplex FastNoiseLiteNoiseType = 0
	/*Modified, higher quality version of [constant TYPE_SIMPLEX], but slower.*/
	FastNoiseLiteTypeSimplexSmooth FastNoiseLiteNoiseType = 1
)

type FileAccess

type FileAccess = classdb.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: [codeblocks] [gdscript] func save(content):

var file = FileAccess.open("user://save_game.dat", FileAccess.WRITE)
file.store_string(content)

func load():

var file = FileAccess.open("user://save_game.dat", FileAccess.READ)
var content = file.get_as_text()
return content

[/gdscript] [csharp] 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;
}

[/csharp] [/codeblocks] In the example above, the file will be saved in the user data folder as specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] documentation. FileAccess will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. [method close] can be used to close it before then explicitly. In C# the reference must be disposed manually, which can be done with the [code]using[/code] statement or by calling the [code]Dispose[/code] method directly. [b]Note:[/b] 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. [b]Note:[/b] Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing [b]Alt + F4[/b]). If you stop the project execution by pressing [b]F8[/b] 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 [method flush] at regular intervals.

type FileAccessCompressionMode

type FileAccessCompressionMode = classdb.FileAccessCompressionMode
const (
	/*Uses the [url=https://fastlz.org/]FastLZ[/url] compression method.*/
	FileAccessCompressionFastlz FileAccessCompressionMode = 0
	/*Uses the [url=https://en.wikipedia.org/wiki/DEFLATE]DEFLATE[/url] compression method.*/
	FileAccessCompressionDeflate FileAccessCompressionMode = 1
	/*Uses the [url=https://facebook.github.io/zstd/]Zstandard[/url] compression method.*/
	FileAccessCompressionZstd FileAccessCompressionMode = 2
	/*Uses the [url=https://www.gzip.org/]gzip[/url] compression method.*/
	FileAccessCompressionGzip FileAccessCompressionMode = 3
	/*Uses the [url=https://github.com/google/brotli]brotli[/url] compression method (only decompression is supported).*/
	FileAccessCompressionBrotli FileAccessCompressionMode = 4
)

type FileAccessModeFlags

type FileAccessModeFlags = classdb.FileAccessModeFlags
const (
	/*Opens the file for read operations. The cursor is positioned at the beginning of the file.*/
	FileAccessRead FileAccessModeFlags = 1
	/*Opens the file for write operations. The file is created if it does not exist, and truncated if it does.
	  [b]Note:[/b] When creating a file it must be in an already existing directory. To recursively create directories for a file path, see [method DirAccess.make_dir_recursive]).*/
	FileAccessWrite FileAccessModeFlags = 2
	/*Opens the file for read and write operations. Does not truncate the file. The cursor is positioned at the beginning of the file.*/
	FileAccessReadWrite FileAccessModeFlags = 3
	/*Opens the file for read and write operations. The file is created if it does not exist, and truncated if it does. The cursor is positioned at the beginning of the file.
	  [b]Note:[/b] When creating a file it must be in an already existing directory. To recursively create directories for a file path, see [method DirAccess.make_dir_recursive]).*/
	FileAccessWriteRead FileAccessModeFlags = 7
)

type FileAccessUnixPermissionFlags

type FileAccessUnixPermissionFlags = classdb.FileAccessUnixPermissionFlags
const (
	/*Read for owner bit.*/
	FileAccessUnixReadOwner FileAccessUnixPermissionFlags = 256
	/*Write for owner bit.*/
	FileAccessUnixWriteOwner FileAccessUnixPermissionFlags = 128
	/*Execute for owner bit.*/
	FileAccessUnixExecuteOwner FileAccessUnixPermissionFlags = 64
	/*Read for group bit.*/
	FileAccessUnixReadGroup FileAccessUnixPermissionFlags = 32
	/*Write for group bit.*/
	FileAccessUnixWriteGroup FileAccessUnixPermissionFlags = 16
	/*Execute for group bit.*/
	FileAccessUnixExecuteGroup FileAccessUnixPermissionFlags = 8
	/*Read for other bit.*/
	FileAccessUnixReadOther FileAccessUnixPermissionFlags = 4
	/*Write for other bit.*/
	FileAccessUnixWriteOther FileAccessUnixPermissionFlags = 2
	/*Execute for other bit.*/
	FileAccessUnixExecuteOther FileAccessUnixPermissionFlags = 1
	/*Set user id on execution bit.*/
	FileAccessUnixSetUserId FileAccessUnixPermissionFlags = 2048
	/*Set group id on execution bit.*/
	FileAccessUnixSetGroupId FileAccessUnixPermissionFlags = 1024
	/*Restricted deletion (sticky) bit.*/
	FileAccessUnixRestrictedDelete FileAccessUnixPermissionFlags = 512
)

type FileDialog

type FileDialog = classdb.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 [member file_mode]. If you want to use a custom title, disable this by setting [member mode_overrides_title] to [code]false[/code].

type FileDialogAccess

type FileDialogAccess = classdb.FileDialogAccess
const (
	/*The dialog only allows accessing files under the [Resource] path ([code]res://[/code]).*/
	FileDialogAccessResources FileDialogAccess = 0
	/*The dialog only allows accessing files under user data path ([code]user://[/code]).*/
	FileDialogAccessUserdata FileDialogAccess = 1
	/*The dialog allows accessing files on the whole file system.*/
	FileDialogAccessFilesystem FileDialogAccess = 2
)

type FileDialogFileMode

type FileDialogFileMode = classdb.FileDialogFileMode
const (
	/*The dialog allows selecting one, and only one file.*/
	FileDialogFileModeOpenFile FileDialogFileMode = 0
	/*The dialog allows selecting multiple files.*/
	FileDialogFileModeOpenFiles FileDialogFileMode = 1
	/*The dialog only allows selecting a directory, disallowing the selection of any file.*/
	FileDialogFileModeOpenDir FileDialogFileMode = 2
	/*The dialog allows selecting one file or directory.*/
	FileDialogFileModeOpenAny FileDialogFileMode = 3
	/*The dialog will warn when a file exists.*/
	FileDialogFileModeSaveFile FileDialogFileMode = 4
)

type FileSystemDock

type FileSystemDock = classdb.FileSystemDock

This class is available only in [EditorPlugin]s and can't be instantiated. You can access it using [method EditorInterface.get_file_system_dock]. While FileSystemDock doesn't expose any methods for file manipulation, it can listen for various file-related signals.

type Float

type Float = gd.Float

type FlowContainer

type FlowContainer = classdb.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.

type FlowContainerAlignmentMode

type FlowContainerAlignmentMode = classdb.FlowContainerAlignmentMode
const (
	/*The child controls will be arranged at the beginning of the container, i.e. top if orientation is vertical, left if orientation is horizontal (right for RTL layout).*/
	FlowContainerAlignmentBegin FlowContainerAlignmentMode = 0
	/*The child controls will be centered in the container.*/
	FlowContainerAlignmentCenter FlowContainerAlignmentMode = 1
	/*The child controls will be arranged at the end of the container, i.e. bottom if orientation is vertical, right if orientation is horizontal (left for RTL layout).*/
	FlowContainerAlignmentEnd FlowContainerAlignmentMode = 2
)

type FogMaterial

type FogMaterial = classdb.FogMaterial

A Material resource that can be used by [FogVolume]s to draw volumetric effects. If you need more advanced effects, use a custom [url=$DOCS_URL/tutorials/shaders/shader_reference/fog_shader.html]fog shader[/url].

type FogVolume

type FogVolume = classdb.FogVolume

[FogVolume]s are used to add localized fog into the global volumetric fog effect. [FogVolume]s can also remove volumetric fog from specific areas if using a FogMaterial with a negative [member FogMaterial.density]. Performance of [FogVolume]s is directly related to their relative size on the screen and the complexity of their attached FogMaterial. It is best to keep [FogVolume]s relatively small and simple where possible. [b]Note:[/b] [FogVolume]s only have a visible effect if [member Environment.volumetric_fog_enabled] is [code]true[/code]. If you don't want fog to be globally visible (but only within FogVolume nodes), set [member Environment.volumetric_fog_density] to [code]0.0[/code].

type Font

type Font = classdb.Font

Abstract base class for different font types. It has methods for drawing text and font character introspection.

type FontFile

type FontFile = classdb.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 [Font]s 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. [b]Note:[/b] A character is a symbol that represents an item (letter, digit etc.) in an abstract way. [b]Note:[/b] 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. [b]Note:[/b] 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. [codeblocks] [gdscript] var f = load("res://BarlowCondensed-Bold.ttf") $Label.add_theme_font_override("font", f) $Label.add_theme_font_size_override("font_size", 64) [/gdscript] [csharp] var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf"); GetNode("Label").AddThemeFontOverride("font", f); GetNode("Label").AddThemeFontSizeOverride("font_size", 64); [/csharp] [/codeblocks]

type FontVariation

type FontVariation = classdb.FontVariation

Provides OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing. To use simulated bold font variant: [codeblocks] [gdscript] var fv = FontVariation.new() fv.set_base_font(load("res://BarlowCondensed-Regular.ttf")) fv.set_variation_embolden(1.2) $Label.add_theme_font_override("font", fv) $Label.add_theme_font_size_override("font_size", 64) [/gdscript] [csharp] 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); [/csharp] [/codeblocks] To set the coordinate of multiple variation axes: [codeblock] 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 } [/codeblock]

type GDExtension

type GDExtension = classdb.GDExtension

type GDExtensionInitializationLevel

type GDExtensionInitializationLevel = classdb.GDExtensionInitializationLevel
const (
	GDExtensionInitializationLevelCore    GDExtensionInitializationLevel = 0
	GDExtensionInitializationLevelServers GDExtensionInitializationLevel = 1
	GDExtensionInitializationLevelScene   GDExtensionInitializationLevel = 2
	GDExtensionInitializationLevelEditor  GDExtensionInitializationLevel = 3
)

type GDExtensionManagerLoadStatus

type GDExtensionManagerLoadStatus = classdb.GDExtensionManagerLoadStatus
const (
	GDExtensionManagerLoadStatusOk            GDExtensionManagerLoadStatus = 0
	GDExtensionManagerLoadStatusFailed        GDExtensionManagerLoadStatus = 1
	GDExtensionManagerLoadStatusAlreadyLoaded GDExtensionManagerLoadStatus = 2
	GDExtensionManagerLoadStatusNotLoaded     GDExtensionManagerLoadStatus = 3
	GDExtensionManagerLoadStatusNeedsRestart  GDExtensionManagerLoadStatus = 4
)

type GDScript

type GDScript = classdb.GDScript

A script implemented in the GDScript programming language, saved with the [code].gd[/code] extension. The script extends the functionality of all objects that instantiate it. Calling [method new] creates a new instance of the script. [method Object.set_script] 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.

type GLTFAccessor

type GLTFAccessor = classdb.GLTFAccessor

type GLTFAnimation

type GLTFAnimation = classdb.GLTFAnimation

type GLTFBufferView

type GLTFBufferView = classdb.GLTFBufferView

type GLTFCamera

type GLTFCamera = classdb.GLTFCamera

Represents a camera as defined by the base GLTF spec.

type GLTFDocument

type GLTFDocument = classdb.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 [method register_gltf_document_extension]. This allows for custom data to be imported and exported.

type GLTFDocumentExtension

type GLTFDocumentExtension = classdb.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 [method GLTFDocument.register_gltf_document_extension]. [b]Note:[/b] Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the [code]set_additional_data[/code] and [code]get_additional_data[/code] methods in GLTFState or GLTFNode.

// GLTFDocumentExtension methods that can be overridden by a [Class] that extends it.
type GLTFDocumentExtension interface {
	//Part of the import process. This method is run first, before all other parts of the import process.
	//The return value is used to determine if this [GLTFDocumentExtension] instance should be used for importing a given GLTF file. If [constant OK], the import will use this [GLTFDocumentExtension] instance. If not overridden, [constant OK] is returned.
	ImportPreflight(godot Context, state GLTFState, extensions gd.PackedStringArray) int64
	//Part of the import process. This method is run after [method _import_preflight] and before [method _parse_node_extensions].
	//Returns an array of the GLTF extensions supported by this GLTFDocumentExtension class. This is used to validate if a GLTF file with required extensions can be loaded.
	GetSupportedExtensions(godot Context) gd.PackedStringArray
	//Part of the import process. This method is run after [method _get_supported_extensions] and before [method _import_post_parse].
	//Runs when parsing the node extensions of a GLTFNode. This method can be used to process the extension JSON data into a format that can be used by [method _generate_scene_node]. The return value should be a member of the [enum Error] enum.
	ParseNodeExtensions(godot Context, state GLTFState, gltf_node GLTFNode, extensions gd.Dictionary) int64
	//Part of the import process. This method is run after [method _parse_node_extensions] and before [method _parse_texture_json].
	//Runs when parsing image data from a GLTF file. The data could be sourced from a separate file, a URI, or a buffer, and then is passed as a byte array.
	ParseImageData(godot Context, state GLTFState, image_data gd.PackedByteArray, mime_type gd.String, ret_image Image) int64
	//Returns the file extension to use for saving image data into, for example, [code]".png"[/code]. If defined, when this extension is used to handle images, and the images are saved to a separate file, the image bytes will be copied to a file with this extension. If this is set, there should be a [ResourceImporter] class able to import the file. If not defined or empty, Godot will save the image into a PNG file.
	GetImageFileExtension(godot Context) gd.String
	//Part of the import process. This method is run after [method _parse_image_data] and before [method _generate_scene_node].
	//Runs when parsing the texture JSON from the GLTF textures array. This can be used to set the source image index to use as the texture.
	ParseTextureJson(godot Context, state GLTFState, texture_json gd.Dictionary, ret_gltf_texture GLTFTexture) int64
	//Part of the import process. This method is run after [method _import_post_parse] and before [method _import_node].
	//Runs when generating a Godot scene node from a GLTFNode. The returned node will be added to the scene tree. Multiple nodes can be generated in this step if they are added as a child of the returned node.
	//[b]Note:[/b] The [param scene_parent] parameter may be null if this is the single root node.
	GenerateSceneNode(godot Context, state GLTFState, gltf_node GLTFNode, scene_parent Node) Node3D
	//Part of the import process. This method is run after [method _parse_node_extensions] and before [method _generate_scene_node].
	//This method can be used to modify any of the data imported so far, including any scene nodes, before running the final per-node import step.
	ImportPostParse(godot Context, state GLTFState) int64
	//Part of the import process. This method is run after [method _generate_scene_node] and before [method _import_post].
	//This method can be used to make modifications to each of the generated Godot scene nodes.
	ImportNode(godot Context, state GLTFState, gltf_node GLTFNode, json gd.Dictionary, node Node) int64
	//Part of the import process. This method is run last, after all other parts of the import process.
	//This method can be used to modify the final Godot scene generated by the import process.
	ImportPost(godot Context, state GLTFState, root Node) int64
	//Part of the export process. This method is run first, before all other parts of the export process.
	//The return value is used to determine if this [GLTFDocumentExtension] instance should be used for exporting a given GLTF file. If [constant OK], the export will use this [GLTFDocumentExtension] instance. If not overridden, [constant OK] is returned.
	ExportPreflight(godot Context, state GLTFState, root Node) int64
	//Part of the export process. This method is run after [method _export_preflight] and before [method _export_preserialize].
	//Runs when converting the data from a Godot scene node. This method can be used to process the Godot scene node data into a format that can be used by [method _export_node].
	ConvertSceneNode(godot Context, state GLTFState, gltf_node GLTFNode, scene_node Node)
	//Part of the export process. This method is run after [method _convert_scene_node] and before [method _get_saveable_image_formats].
	//This method can be used to alter the state before performing serialization. It runs every time when generating a buffer with [method GLTFDocument.generate_buffer] or writing to the file system with [method GLTFDocument.write_to_filesystem].
	ExportPreserialize(godot Context, state GLTFState) int64
	//Part of the export process. This method is run after [method _convert_scene_node] and before [method _export_node].
	//Returns an array of the image formats that can be saved/exported by this extension. This extension will only be selected as the image exporter if the [GLTFDocument]'s [member GLTFDocument.image_format] is in this array. If this [GLTFDocumentExtension] is selected as the image exporter, one of the [method _save_image_at_path] or [method _serialize_image_to_bytes] methods will run next, otherwise [method _export_node] will run next. If the format name contains [code]"Lossy"[/code], the lossy quality slider will be displayed.
	GetSaveableImageFormats(godot Context) gd.PackedStringArray
	//Part of the export process. This method is run after [method _get_saveable_image_formats] and before [method _serialize_texture_json].
	//This method is run when embedding images in the GLTF file. When images are saved separately, [method _save_image_at_path] runs instead. Note that these methods only run when this [GLTFDocumentExtension] is selected as the image exporter.
	//This method must set the image MIME type in the [param image_dict] with the [code]"mimeType"[/code] key. For example, for a PNG image, it would be set to [code]"image/png"[/code]. The return value must be a [PackedByteArray] containing the image data.
	SerializeImageToBytes(godot Context, state GLTFState, image Image, image_dict gd.Dictionary, image_format gd.String, lossy_quality gd.Float) gd.PackedByteArray
	//Part of the export process. This method is run after [method _get_saveable_image_formats] and before [method _serialize_texture_json].
	//This method is run when saving images separately from the GLTF file. When images are embedded, [method _serialize_image_to_bytes] runs instead. Note that these methods only run when this [GLTFDocumentExtension] is selected as the image exporter.
	SaveImageAtPath(godot Context, state GLTFState, image Image, file_path gd.String, image_format gd.String, lossy_quality gd.Float) int64
	//Part of the export process. This method is run after [method _save_image_at_path] or [method _serialize_image_to_bytes], and before [method _export_node]. Note that this method only runs when this [GLTFDocumentExtension] is selected as the image exporter.
	//This method can be used to set up the extensions for the texture JSON by editing [param texture_json]. The extension must also be added as used extension with [method GLTFState.add_used_extension], be sure to set [code]required[/code] to [code]true[/code] if you are not providing a fallback.
	SerializeTextureJson(godot Context, state GLTFState, texture_json gd.Dictionary, gltf_texture GLTFTexture, image_format gd.String) int64
	//Part of the export process. This method is run after [method _get_saveable_image_formats] and before [method _export_post]. If this [GLTFDocumentExtension] is used for exporting images, this runs after [method _serialize_texture_json].
	//This method can be used to modify the final JSON of each node.
	ExportNode(godot Context, state GLTFState, gltf_node GLTFNode, json gd.Dictionary, node Node) int64
	//Part of the export process. This method is run last, after all other parts of the export process.
	//This method can be used to modify the final JSON of the generated GLTF file.
	ExportPost(godot Context, state GLTFState) int64
}

type GLTFDocumentRootNodeMode

type GLTFDocumentRootNodeMode = classdb.GLTFDocumentRootNodeMode
const (
	/*Treat the Godot scene's root node as the root node of the glTF file, and mark it as the single root node via the [code]GODOT_single_root[/code] glTF extension. This will be parsed the same as [constant ROOT_NODE_MODE_KEEP_ROOT] if the implementation does not support [code]GODOT_single_root[/code].*/
	GLTFDocumentRootNodeModeSingleRoot GLTFDocumentRootNodeMode = 0
	/*Treat the Godot scene's root node as the root node of the glTF file, but do not mark it as anything special. An extra root node will be generated when importing into Godot. This uses only vanilla glTF features. This is equivalent to the behavior in Godot 4.1 and earlier.*/
	GLTFDocumentRootNodeModeKeepRoot GLTFDocumentRootNodeMode = 1
	/*Treat the Godot scene's root node as the name of the glTF scene, and add all of its children as root nodes of the glTF file. This uses only vanilla glTF features. This avoids an extra root node, but only the name of the Godot scene's root node will be preserved, as it will not be saved as a node.*/
	GLTFDocumentRootNodeModeMultiRoot GLTFDocumentRootNodeMode = 2
)

type GLTFLight

type GLTFLight = classdb.GLTFLight

Represents a light as defined by the [code]KHR_lights_punctual[/code] GLTF extension.

type GLTFMesh

type GLTFMesh = classdb.GLTFMesh

type GLTFNode

type GLTFNode = classdb.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 [method get_additional_data] and [method set_additional_data].

type GLTFPhysicsBody

type GLTFPhysicsBody = classdb.GLTFPhysicsBody

Represents a physics body as defined by the [code]OMI_physics_body[/code] 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.

type GLTFPhysicsShape

type GLTFPhysicsShape = classdb.GLTFPhysicsShape

Represents a physics shape as defined by the [code]OMI_collider[/code] 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.

type GLTFSkeleton

type GLTFSkeleton = classdb.GLTFSkeleton

type GLTFSkin

type GLTFSkin = classdb.GLTFSkin

type GLTFSpecGloss

type GLTFSpecGloss = classdb.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.

type GLTFState

type GLTFState = classdb.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.

type GLTFTexture

type GLTFTexture = classdb.GLTFTexture

type GLTFTextureSampler

type GLTFTextureSampler = classdb.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.

type GPUParticles2D

type GPUParticles2D = classdb.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 [member process_material] 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.

type GPUParticles2DDrawOrder

type GPUParticles2DDrawOrder = classdb.GPUParticles2DDrawOrder
const (
	/*Particles are drawn in the order emitted.*/
	GPUParticles2DDrawOrderIndex GPUParticles2DDrawOrder = 0
	/*Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front.*/
	GPUParticles2DDrawOrderLifetime GPUParticles2DDrawOrder = 1
	/*Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front.*/
	GPUParticles2DDrawOrderReverseLifetime GPUParticles2DDrawOrder = 2
)

type GPUParticles2DEmitFlags

type GPUParticles2DEmitFlags = classdb.GPUParticles2DEmitFlags
const (
	/*Particle starts at the specified position.*/
	GPUParticles2DEmitFlagPosition GPUParticles2DEmitFlags = 1
	/*Particle starts with specified rotation and scale.*/
	GPUParticles2DEmitFlagRotationScale GPUParticles2DEmitFlags = 2
	/*Particle starts with the specified velocity vector, which defines the emission direction and speed.*/
	GPUParticles2DEmitFlagVelocity GPUParticles2DEmitFlags = 4
	/*Particle starts with specified color.*/
	GPUParticles2DEmitFlagColor GPUParticles2DEmitFlags = 8
	/*Particle starts with specified [code]CUSTOM[/code] data.*/
	GPUParticles2DEmitFlagCustom GPUParticles2DEmitFlags = 16
)

type GPUParticles3D

type GPUParticles3D = classdb.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 [member process_material] to add a ParticleProcessMaterial to configure particle appearance and behavior. Alternatively, you can add a ShaderMaterial which will be applied to all particles.

type GPUParticles3DDrawOrder

type GPUParticles3DDrawOrder = classdb.GPUParticles3DDrawOrder
const (
	/*Particles are drawn in the order emitted.*/
	GPUParticles3DDrawOrderIndex GPUParticles3DDrawOrder = 0
	/*Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front.*/
	GPUParticles3DDrawOrderLifetime GPUParticles3DDrawOrder = 1
	/*Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front.*/
	GPUParticles3DDrawOrderReverseLifetime GPUParticles3DDrawOrder = 2
	/*Particles are drawn in order of depth.*/
	GPUParticles3DDrawOrderViewDepth GPUParticles3DDrawOrder = 3
)

type GPUParticles3DEmitFlags

type GPUParticles3DEmitFlags = classdb.GPUParticles3DEmitFlags
const (
	/*Particle starts at the specified position.*/
	GPUParticles3DEmitFlagPosition GPUParticles3DEmitFlags = 1
	/*Particle starts with specified rotation and scale.*/
	GPUParticles3DEmitFlagRotationScale GPUParticles3DEmitFlags = 2
	/*Particle starts with the specified velocity vector, which defines the emission direction and speed.*/
	GPUParticles3DEmitFlagVelocity GPUParticles3DEmitFlags = 4
	/*Particle starts with specified color.*/
	GPUParticles3DEmitFlagColor GPUParticles3DEmitFlags = 8
	/*Particle starts with specified [code]CUSTOM[/code] data.*/
	GPUParticles3DEmitFlagCustom GPUParticles3DEmitFlags = 16
)

type GPUParticles3DTransformAlign

type GPUParticles3DTransformAlign = classdb.GPUParticles3DTransformAlign
const (
	GPUParticles3DTransformAlignDisabled              GPUParticles3DTransformAlign = 0
	GPUParticles3DTransformAlignZBillboard            GPUParticles3DTransformAlign = 1
	GPUParticles3DTransformAlignYToVelocity           GPUParticles3DTransformAlign = 2
	GPUParticles3DTransformAlignZBillboardYToVelocity GPUParticles3DTransformAlign = 3
)

type GPUParticlesAttractor3D

type GPUParticlesAttractor3D = classdb.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 [member strength] to [code]0.0[/code]. [b]Note:[/b] Particle attractors only affect GPUParticles3D, not CPUParticles3D.

type GPUParticlesAttractorBox3D

type GPUParticlesAttractorBox3D = classdb.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. [b]Note:[/b] Particle attractors only affect GPUParticles3D, not CPUParticles3D.

type GPUParticlesAttractorSphere3D

type GPUParticlesAttractorSphere3D = classdb.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. [b]Note:[/b] Particle attractors only affect GPUParticles3D, not CPUParticles3D.

type GPUParticlesAttractorVectorField3D

type GPUParticlesAttractorVectorField3D = classdb.GPUParticlesAttractorVectorField3D

A box-shaped attractor with varying directions and strengths defined in it that influences particles from GPUParticles3D nodes. Unlike GPUParticlesAttractorBox3D, GPUParticlesAttractorVectorField3D uses a [member 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. [b]Note:[/b] Particle attractors only affect GPUParticles3D, not CPUParticles3D.

type GPUParticlesCollision3D

type GPUParticlesCollision3D = classdb.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 [i]not[/i] supported. Particle collision shapes can be temporarily disabled by hiding them. [b]Note:[/b] [member ParticleProcessMaterial.collision_mode] must be [constant ParticleProcessMaterial.COLLISION_RIGID] or [constant ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT] on the GPUParticles3D's process material for collision to work. [b]Note:[/b] Particle collision only affects GPUParticles3D, not CPUParticles3D. [b]Note:[/b] 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 [member GPUParticles3D.fixed_fps] to [code]0[/code] or a value that matches or exceeds the target framerate.

type GPUParticlesCollisionBox3D

type GPUParticlesCollisionBox3D = classdb.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 [i]not[/i] supported. [b]Note:[/b] [member ParticleProcessMaterial.collision_mode] must be [constant ParticleProcessMaterial.COLLISION_RIGID] or [constant ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT] on the GPUParticles3D's process material for collision to work. [b]Note:[/b] Particle collision only affects GPUParticles3D, not CPUParticles3D.

type GPUParticlesCollisionHeightField3D

type GPUParticlesCollisionHeightField3D = classdb.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). [b]Note:[/b] [member ParticleProcessMaterial.collision_mode] must be [code]true[/code] on the GPUParticles3D's process material for collision to work. [b]Note:[/b] Particle collision only affects GPUParticles3D, not CPUParticles3D.

type GPUParticlesCollisionHeightField3DResolution

type GPUParticlesCollisionHeightField3DResolution = classdb.GPUParticlesCollisionHeightField3DResolution
const (
	/*Generate a 256×256 heightmap. Intended for small-scale scenes, or larger scenes with no distant particles.*/
	GPUParticlesCollisionHeightField3DResolution256 GPUParticlesCollisionHeightField3DResolution = 0
	/*Generate a 512×512 heightmap. Intended for medium-scale scenes, or larger scenes with no distant particles.*/
	GPUParticlesCollisionHeightField3DResolution512 GPUParticlesCollisionHeightField3DResolution = 1
	/*Generate a 1024×1024 heightmap. Intended for large scenes with distant particles.*/
	GPUParticlesCollisionHeightField3DResolution1024 GPUParticlesCollisionHeightField3DResolution = 2
	/*Generate a 2048×2048 heightmap. Intended for very large scenes with distant particles.*/
	GPUParticlesCollisionHeightField3DResolution2048 GPUParticlesCollisionHeightField3DResolution = 3
	/*Generate a 4096×4096 heightmap. Intended for huge scenes with distant particles.*/
	GPUParticlesCollisionHeightField3DResolution4096 GPUParticlesCollisionHeightField3DResolution = 4
	/*Generate a 8192×8192 heightmap. Intended for gigantic scenes with distant particles.*/
	GPUParticlesCollisionHeightField3DResolution8192 GPUParticlesCollisionHeightField3DResolution = 5
	/*Represents the size of the [enum Resolution] enum.*/
	GPUParticlesCollisionHeightField3DResolutionMax GPUParticlesCollisionHeightField3DResolution = 6
)

type GPUParticlesCollisionHeightField3DUpdateMode

type GPUParticlesCollisionHeightField3DUpdateMode = classdb.GPUParticlesCollisionHeightField3DUpdateMode
const (
	/*Only update the heightmap when the [GPUParticlesCollisionHeightField3D] node is moved, or when the camera moves if [member follow_camera_enabled] is [code]true[/code]. An update can be forced by slightly moving the [GPUParticlesCollisionHeightField3D] in any direction, or by calling [method RenderingServer.particles_collision_height_field_update].*/
	GPUParticlesCollisionHeightField3DUpdateModeWhenMoved GPUParticlesCollisionHeightField3DUpdateMode = 0
	/*Update the heightmap every frame. This has a significant performance cost. This update should only be used when geometry that particles can collide with changes significantly during gameplay.*/
	GPUParticlesCollisionHeightField3DUpdateModeAlways GPUParticlesCollisionHeightField3DUpdateMode = 1
)

type GPUParticlesCollisionSDF3D

type GPUParticlesCollisionSDF3D = classdb.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. [b]Baking:[/b] The signed distance field texture can be baked by selecting the GPUParticlesCollisionSDF3D node in the editor, then clicking [b]Bake SDF[/b] at the top of the 3D viewport. Any [i]visible[/i] [MeshInstance3D]s within the [member size] will be taken into account for baking, regardless of their [member GeometryInstance3D.gi_mode]. [b]Note:[/b] Baking a GPUParticlesCollisionSDF3D's [member 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 [Texture3D]s into its [member texture] property in an exported project. [b]Note:[/b] [member ParticleProcessMaterial.collision_mode] must be [constant ParticleProcessMaterial.COLLISION_RIGID] or [constant ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT] on the GPUParticles3D's process material for collision to work. [b]Note:[/b] Particle collision only affects GPUParticles3D, not CPUParticles3D.

type GPUParticlesCollisionSDF3DResolution

type GPUParticlesCollisionSDF3DResolution = classdb.GPUParticlesCollisionSDF3DResolution
const (
	/*Bake a 16×16×16 signed distance field. This is the fastest option, but also the least precise.*/
	GPUParticlesCollisionSDF3DResolution16 GPUParticlesCollisionSDF3DResolution = 0
	/*Bake a 32×32×32 signed distance field.*/
	GPUParticlesCollisionSDF3DResolution32 GPUParticlesCollisionSDF3DResolution = 1
	/*Bake a 64×64×64 signed distance field.*/
	GPUParticlesCollisionSDF3DResolution64 GPUParticlesCollisionSDF3DResolution = 2
	/*Bake a 128×128×128 signed distance field.*/
	GPUParticlesCollisionSDF3DResolution128 GPUParticlesCollisionSDF3DResolution = 3
	/*Bake a 256×256×256 signed distance field.*/
	GPUParticlesCollisionSDF3DResolution256 GPUParticlesCollisionSDF3DResolution = 4
	/*Bake a 512×512×512 signed distance field. This is the slowest option, but also the most precise.*/
	GPUParticlesCollisionSDF3DResolution512 GPUParticlesCollisionSDF3DResolution = 5
	/*Represents the size of the [enum Resolution] enum.*/
	GPUParticlesCollisionSDF3DResolutionMax GPUParticlesCollisionSDF3DResolution = 6
)

type GPUParticlesCollisionSphere3D

type GPUParticlesCollisionSphere3D = classdb.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 [i]not[/i] supported. [b]Note:[/b] [member ParticleProcessMaterial.collision_mode] must be [constant ParticleProcessMaterial.COLLISION_RIGID] or [constant ParticleProcessMaterial.COLLISION_HIDE_ON_CONTACT] on the GPUParticles3D's process material for collision to work. [b]Note:[/b] Particle collision only affects GPUParticles3D, not CPUParticles3D.

type Generic6DOFJoint3D

type Generic6DOFJoint3D = classdb.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.

type Generic6DOFJoint3DFlag

type Generic6DOFJoint3DFlag = classdb.Generic6DOFJoint3DFlag
const (
	/*If enabled, linear motion is possible within the given limits.*/
	Generic6DOFJoint3DFlagEnableLinearLimit Generic6DOFJoint3DFlag = 0
	/*If enabled, rotational motion is possible within the given limits.*/
	Generic6DOFJoint3DFlagEnableAngularLimit  Generic6DOFJoint3DFlag = 1
	Generic6DOFJoint3DFlagEnableLinearSpring  Generic6DOFJoint3DFlag = 3
	Generic6DOFJoint3DFlagEnableAngularSpring Generic6DOFJoint3DFlag = 2
	/*If enabled, there is a rotational motor across these axes.*/
	Generic6DOFJoint3DFlagEnableMotor Generic6DOFJoint3DFlag = 4
	/*If enabled, there is a linear motor across these axes.*/
	Generic6DOFJoint3DFlagEnableLinearMotor Generic6DOFJoint3DFlag = 5
	/*Represents the size of the [enum Flag] enum.*/
	Generic6DOFJoint3DFlagMax Generic6DOFJoint3DFlag = 6
)

type Generic6DOFJoint3DParam

type Generic6DOFJoint3DParam = classdb.Generic6DOFJoint3DParam
const (
	/*The minimum difference between the pivot points' axes.*/
	Generic6DOFJoint3DParamLinearLowerLimit Generic6DOFJoint3DParam = 0
	/*The maximum difference between the pivot points' axes.*/
	Generic6DOFJoint3DParamLinearUpperLimit Generic6DOFJoint3DParam = 1
	/*A factor applied to the movement across the axes. The lower, the slower the movement.*/
	Generic6DOFJoint3DParamLinearLimitSoftness Generic6DOFJoint3DParam = 2
	/*The amount of restitution on the axes' movement. The lower, the more momentum gets lost.*/
	Generic6DOFJoint3DParamLinearRestitution Generic6DOFJoint3DParam = 3
	/*The amount of damping that happens at the linear motion across the axes.*/
	Generic6DOFJoint3DParamLinearDamping Generic6DOFJoint3DParam = 4
	/*The velocity the linear motor will try to reach.*/
	Generic6DOFJoint3DParamLinearMotorTargetVelocity Generic6DOFJoint3DParam = 5
	/*The maximum force the linear motor will apply while trying to reach the velocity target.*/
	Generic6DOFJoint3DParamLinearMotorForceLimit        Generic6DOFJoint3DParam = 6
	Generic6DOFJoint3DParamLinearSpringStiffness        Generic6DOFJoint3DParam = 7
	Generic6DOFJoint3DParamLinearSpringDamping          Generic6DOFJoint3DParam = 8
	Generic6DOFJoint3DParamLinearSpringEquilibriumPoint Generic6DOFJoint3DParam = 9
	/*The minimum rotation in negative direction to break loose and rotate around the axes.*/
	Generic6DOFJoint3DParamAngularLowerLimit Generic6DOFJoint3DParam = 10
	/*The minimum rotation in positive direction to break loose and rotate around the axes.*/
	Generic6DOFJoint3DParamAngularUpperLimit Generic6DOFJoint3DParam = 11
	/*The speed of all rotations across the axes.*/
	Generic6DOFJoint3DParamAngularLimitSoftness Generic6DOFJoint3DParam = 12
	/*The amount of rotational damping across the axes. The lower, the more damping occurs.*/
	Generic6DOFJoint3DParamAngularDamping Generic6DOFJoint3DParam = 13
	/*The amount of rotational restitution across the axes. The lower, the more restitution occurs.*/
	Generic6DOFJoint3DParamAngularRestitution Generic6DOFJoint3DParam = 14
	/*The maximum amount of force that can occur, when rotating around the axes.*/
	Generic6DOFJoint3DParamAngularForceLimit Generic6DOFJoint3DParam = 15
	/*When rotating across the axes, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.*/
	Generic6DOFJoint3DParamAngularErp Generic6DOFJoint3DParam = 16
	/*Target speed for the motor at the axes.*/
	Generic6DOFJoint3DParamAngularMotorTargetVelocity Generic6DOFJoint3DParam = 17
	/*Maximum acceleration for the motor at the axes.*/
	Generic6DOFJoint3DParamAngularMotorForceLimit        Generic6DOFJoint3DParam = 18
	Generic6DOFJoint3DParamAngularSpringStiffness        Generic6DOFJoint3DParam = 19
	Generic6DOFJoint3DParamAngularSpringDamping          Generic6DOFJoint3DParam = 20
	Generic6DOFJoint3DParamAngularSpringEquilibriumPoint Generic6DOFJoint3DParam = 21
	/*Represents the size of the [enum Param] enum.*/
	Generic6DOFJoint3DParamMax Generic6DOFJoint3DParam = 22
)

type Geometry2DPolyBooleanOperation

type Geometry2DPolyBooleanOperation = classdb.Geometry2DPolyBooleanOperation
const (
	/*Create regions where either subject or clip polygons (or both) are filled.*/
	Geometry2DOperationUnion Geometry2DPolyBooleanOperation = 0
	/*Create regions where subject polygons are filled except where clip polygons are filled.*/
	Geometry2DOperationDifference Geometry2DPolyBooleanOperation = 1
	/*Create regions where both subject and clip polygons are filled.*/
	Geometry2DOperationIntersection Geometry2DPolyBooleanOperation = 2
	/*Create regions where either subject or clip polygons are filled but not where both are filled.*/
	Geometry2DOperationXor Geometry2DPolyBooleanOperation = 3
)

type Geometry2DPolyEndType

type Geometry2DPolyEndType = classdb.Geometry2DPolyEndType
const (
	/*Endpoints are joined using the [enum PolyJoinType] value and the path filled as a polygon.*/
	Geometry2DEndPolygon Geometry2DPolyEndType = 0
	/*Endpoints are joined using the [enum PolyJoinType] value and the path filled as a polyline.*/
	Geometry2DEndJoined Geometry2DPolyEndType = 1
	/*Endpoints are squared off with no extension.*/
	Geometry2DEndButt Geometry2DPolyEndType = 2
	/*Endpoints are squared off and extended by [code]delta[/code] units.*/
	Geometry2DEndSquare Geometry2DPolyEndType = 3
	/*Endpoints are rounded off and extended by [code]delta[/code] units.*/
	Geometry2DEndRound Geometry2DPolyEndType = 4
)

type Geometry2DPolyJoinType

type Geometry2DPolyJoinType = classdb.Geometry2DPolyJoinType
const (
	/*Squaring is applied uniformally at all convex edge joins at [code]1 * delta[/code].*/
	Geometry2DJoinSquare Geometry2DPolyJoinType = 0
	/*While flattened paths can never perfectly trace an arc, they are approximated by a series of arc chords.*/
	Geometry2DJoinRound Geometry2DPolyJoinType = 1
	/*There's a necessary limit to mitered joins since offsetting edges that join at very acute angles will produce excessively long and narrow "spikes". For any given edge join, when miter offsetting would exceed that maximum distance, "square" joining is applied.*/
	Geometry2DJoinMiter Geometry2DPolyJoinType = 2
)

type GeometryInstance3D

type GeometryInstance3D = classdb.GeometryInstance3D

Base node for geometry-based visual instances. Shares some common functionality like visibility and custom materials.

type GeometryInstance3DGIMode

type GeometryInstance3DGIMode = classdb.GeometryInstance3DGIMode
const (
	/*Disabled global illumination mode. Use for dynamic objects that do not contribute to global illumination (such as characters). When using [VoxelGI] and SDFGI, the geometry will [i]receive[/i] indirect lighting and reflections but the geometry will not be considered in GI baking.*/
	GeometryInstance3DGiModeDisabled GeometryInstance3DGIMode = 0
	/*Baked global illumination mode. Use for static objects that contribute to global illumination (such as level geometry). This GI mode is effective when using [VoxelGI], SDFGI and [LightmapGI].*/
	GeometryInstance3DGiModeStatic GeometryInstance3DGIMode = 1
	/*Dynamic global illumination mode. Use for dynamic objects that contribute to global illumination. This GI mode is only effective when using [VoxelGI], but it has a higher performance impact than [constant GI_MODE_STATIC]. When using other GI methods, this will act the same as [constant GI_MODE_DISABLED]. When using [LightmapGI], the object will receive indirect lighting using lightmap probes instead of using the baked lightmap texture.*/
	GeometryInstance3DGiModeDynamic GeometryInstance3DGIMode = 2
)

type GeometryInstance3DLightmapScale

type GeometryInstance3DLightmapScale = classdb.GeometryInstance3DLightmapScale
const (
	/*The standard texel density for lightmapping with [LightmapGI].*/
	GeometryInstance3DLightmapScale1x GeometryInstance3DLightmapScale = 0
	/*Multiplies texel density by 2× for lightmapping with [LightmapGI]. To ensure consistency in texel density, use this when scaling a mesh by a factor between 1.5 and 3.0.*/
	GeometryInstance3DLightmapScale2x GeometryInstance3DLightmapScale = 1
	/*Multiplies texel density by 4× for lightmapping with [LightmapGI]. To ensure consistency in texel density, use this when scaling a mesh by a factor between 3.0 and 6.0.*/
	GeometryInstance3DLightmapScale4x GeometryInstance3DLightmapScale = 2
	/*Multiplies texel density by 8× for lightmapping with [LightmapGI]. To ensure consistency in texel density, use this when scaling a mesh by a factor greater than 6.0.*/
	GeometryInstance3DLightmapScale8x GeometryInstance3DLightmapScale = 3
	/*Represents the size of the [enum LightmapScale] enum.*/
	GeometryInstance3DLightmapScaleMax GeometryInstance3DLightmapScale = 4
)

type GeometryInstance3DShadowCastingSetting

type GeometryInstance3DShadowCastingSetting = classdb.GeometryInstance3DShadowCastingSetting
const (
	/*Will not cast any shadows. Use this to improve performance for small geometry that is unlikely to cast noticeable shadows (such as debris).*/
	GeometryInstance3DShadowCastingSettingOff GeometryInstance3DShadowCastingSetting = 0
	/*Will cast shadows from all visible faces in the GeometryInstance3D.
	  Will take culling into account, so faces not being rendered will not be taken into account when shadow casting.*/
	GeometryInstance3DShadowCastingSettingOn GeometryInstance3DShadowCastingSetting = 1
	/*Will cast shadows from all visible faces in the GeometryInstance3D.
	  Will not take culling into account, so all faces will be taken into account when shadow casting.*/
	GeometryInstance3DShadowCastingSettingDoubleSided GeometryInstance3DShadowCastingSetting = 2
	/*Will only show the shadows casted from this object.
	  In other words, the actual mesh will not be visible, only the shadows casted from the mesh will be.*/
	GeometryInstance3DShadowCastingSettingShadowsOnly GeometryInstance3DShadowCastingSetting = 3
)

type GeometryInstance3DVisibilityRangeFadeMode

type GeometryInstance3DVisibilityRangeFadeMode = classdb.GeometryInstance3DVisibilityRangeFadeMode
const (
	/*Will not fade itself nor its visibility dependencies, hysteresis will be used instead. This is the fastest approach to manual LOD, but it can result in noticeable LOD transitions depending on how the LOD meshes are authored. See [member visibility_range_begin] and [member Node3D.visibility_parent] for more information.*/
	GeometryInstance3DVisibilityRangeFadeDisabled GeometryInstance3DVisibilityRangeFadeMode = 0
	/*Will fade-out itself when reaching the limits of its own visibility range. This is slower than [constant VISIBILITY_RANGE_FADE_DISABLED], but it can provide smoother transitions. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].*/
	GeometryInstance3DVisibilityRangeFadeSelf GeometryInstance3DVisibilityRangeFadeMode = 1
	/*Will fade-in its visibility dependencies (see [member Node3D.visibility_parent]) when reaching the limits of its own visibility range. This is slower than [constant VISIBILITY_RANGE_FADE_DISABLED], but it can provide smoother transitions. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].*/
	GeometryInstance3DVisibilityRangeFadeDependencies GeometryInstance3DVisibilityRangeFadeMode = 2
)

type Gradient

type Gradient = classdb.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.

type GradientColorSpace

type GradientColorSpace = classdb.GradientColorSpace
const (
	/*sRGB color space.*/
	GradientGradientColorSpaceSrgb GradientColorSpace = 0
	/*Linear sRGB color space.*/
	GradientGradientColorSpaceLinearSrgb GradientColorSpace = 1
	/*[url=https://bottosson.github.io/posts/oklab/]Oklab[/url] color space. This color space provides a smooth and uniform-looking transition between colors.*/
	GradientGradientColorSpaceOklab GradientColorSpace = 2
)

type GradientInterpolationMode

type GradientInterpolationMode = classdb.GradientInterpolationMode
const (
	/*Linear interpolation.*/
	GradientGradientInterpolateLinear GradientInterpolationMode = 0
	/*Constant interpolation, color changes abruptly at each point and stays uniform between. This might cause visible aliasing when used for a gradient texture in some cases.*/
	GradientGradientInterpolateConstant GradientInterpolationMode = 1
	/*Cubic interpolation.*/
	GradientGradientInterpolateCubic GradientInterpolationMode = 2
)

type GradientTexture1D

type GradientTexture1D = classdb.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.

type GradientTexture2D

type GradientTexture2D = classdb.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 [member width] and [member height]). See also GradientTexture1D, CurveTexture and CurveXYZTexture.

type GradientTexture2DFill

type GradientTexture2DFill = classdb.GradientTexture2DFill
const (
	/*The colors are linearly interpolated in a straight line.*/
	GradientTexture2DFillLinear GradientTexture2DFill = 0
	/*The colors are linearly interpolated in a circular pattern.*/
	GradientTexture2DFillRadial GradientTexture2DFill = 1
	/*The colors are linearly interpolated in a square pattern.*/
	GradientTexture2DFillSquare GradientTexture2DFill = 2
)

type GradientTexture2DRepeat

type GradientTexture2DRepeat = classdb.GradientTexture2DRepeat
const (
	/*The gradient fill is restricted to the range defined by [member fill_from] to [member fill_to] offsets.*/
	GradientTexture2DRepeatNone GradientTexture2DRepeat = 0
	/*The texture is filled starting from [member fill_from] to [member fill_to] offsets, repeating the same pattern in both directions.*/
	GradientTexture2DRepeatDefault GradientTexture2DRepeat = 1
	/*The texture is filled starting from [member fill_from] to [member fill_to] offsets, mirroring the pattern in both directions.*/
	GradientTexture2DRepeatMirror GradientTexture2DRepeat = 2
)

type GraphEdit

type GraphEdit = classdb.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 [GraphNode]s 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. [b]Performance:[/b] It is greatly advised to enable low-processor usage mode (see [member OS.low_processor_usage_mode]) when using GraphEdits.

// GraphEdit methods that can be overridden by a [Class] that extends it.
type GraphEdit interface {
	//Returns whether the [param mouse_position] is in the input hot zone.
	//By default, a hot zone is a [Rect2] positioned such that its center is at [param in_node].[method GraphNode.get_input_port_position]([param in_port]) (For output's case, call [method GraphNode.get_output_port_position] instead). The hot zone's width is twice the Theme Property [code]port_grab_distance_horizontal[/code], and its height is twice the [code]port_grab_distance_vertical[/code].
	//Below is a sample code to help get started:
	//[codeblock]
	//func _is_in_input_hotzone(in_node, in_port, mouse_position):
	//    var port_size: Vector2 = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
	//    var port_pos: Vector2 = in_node.get_position() + in_node.get_input_port_position(in_port) - port_size / 2
	//    var rect = Rect2(port_pos, port_size)
	//
	//    return rect.has_point(mouse_position)
	//[/codeblock]
	IsInInputHotzone(godot Context, in_node gd.Object, in_port gd.Int, mouse_position gd.Vector2) bool
	//Returns whether the [param mouse_position] is in the output hot zone. For more information on hot zones, see [method _is_in_input_hotzone].
	//Below is a sample code to help get started:
	//[codeblock]
	//func _is_in_output_hotzone(in_node, in_port, mouse_position):
	//    var port_size: Vector2 = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
	//    var port_pos: Vector2 = in_node.get_position() + in_node.get_output_port_position(in_port) - port_size / 2
	//    var rect = Rect2(port_pos, port_size)
	//
	//    return rect.has_point(mouse_position)
	//[/codeblock]
	IsInOutputHotzone(godot Context, in_node gd.Object, in_port gd.Int, mouse_position gd.Vector2) bool
	//Virtual method which can be overridden to customize how connections are drawn.
	GetConnectionLine(godot Context, from_position gd.Vector2, to_position gd.Vector2) gd.PackedVector2Array
	//This virtual method can be used to insert additional error detection while the user is dragging a connection over a valid port.
	//Return [code]true[/code] if the connection is indeed valid or return [code]false[/code] if the connection is impossible. If the connection is impossible, no snapping to the port and thus no connection request to that port will happen.
	//In this example a connection to same node is suppressed:
	//[codeblocks]
	//[gdscript]
	//func _is_node_hover_valid(from, from_port, to, to_port):
	//    return from != to
	//[/gdscript]
	//[csharp]
	//public override bool _IsNodeHoverValid(StringName fromNode, int fromPort, StringName toNode, int toPort)
	//{
	//    return fromNode != toNode;
	//}
	//[/csharp]
	//[/codeblocks]
	IsNodeHoverValid(godot Context, from_node gd.StringName, from_port gd.Int, to_node gd.StringName, to_port gd.Int) bool
}

type GraphEditPanningScheme

type GraphEditPanningScheme = classdb.GraphEditPanningScheme
const (
	/*[kbd]Mouse Wheel[/kbd] will zoom, [kbd]Ctrl + Mouse Wheel[/kbd] will move the view.*/
	GraphEditScrollZooms GraphEditPanningScheme = 0
	/*[kbd]Mouse Wheel[/kbd] will move the view, [kbd]Ctrl + Mouse Wheel[/kbd] will zoom.*/
	GraphEditScrollPans GraphEditPanningScheme = 1
)

type GraphElement

type GraphElement = classdb.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.

type GraphNode

type GraphNode = classdb.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 [b]input port[/b] and the right port is referred to as the [b]output port[/b]. 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. [b]Note:[/b] 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 [method get_input_port_slot] and [method get_output_port_slot] to get the slot index from the port index.

// GraphNode methods that can be overridden by a [Class] that extends it.
type GraphNode interface {
	DrawPort(godot Context, slot_index gd.Int, position gd.Vector2i, left bool, color gd.Color)
}

type GridContainer

type GridContainer = classdb.GridContainer

GridContainer arranges its child controls in a grid layout. The number of columns is specified by the [member 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. [b]Note:[/b] GridContainer only works with child nodes inheriting from Control. It won't rearrange child nodes inheriting from Node2D.

type GridMap

type GridMap = classdb.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. [b]Note:[/b] GridMap doesn't extend VisualInstance3D and therefore can't be hidden or cull masked based on [member VisualInstance3D.layers]. If you make a light not affect the first layer, the whole GridMap won't be lit by the light in question.

type GrooveJoint2D

type GrooveJoint2D = classdb.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.

type HBoxContainer

type HBoxContainer = classdb.HBoxContainer

A variant of BoxContainer that can only arrange its child controls horizontally. Child controls are rearranged automatically when their minimum size changes.

type HFlowContainer

type HFlowContainer = classdb.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.

type HMACContext

type HMACContext = classdb.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. [codeblocks] [gdscript] extends Node var ctx = HMACContext.new()

func _ready():

var key = "supersecret".to_utf8_buffer()
var err = ctx.start(HashingContext.HASH_SHA256, key)
assert(err == OK)
var msg1 = "this is ".to_utf8_buffer()
var msg2 = "super duper secret".to_utf8_buffer()
err = ctx.update(msg1)
assert(err == OK)
err = ctx.update(msg2)
assert(err == OK)
var hmac = ctx.finish()
print(hmac.hex_encode())

[/gdscript] [csharp] 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());
    }
}

[/csharp] [/codeblocks]

type HScrollBar

type HScrollBar = classdb.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).

type HSeparator

type HSeparator = classdb.HSeparator

A horizontal separator used for separating other controls that are arranged [b]vertically[/b]. HSeparator is purely visual and normally drawn as a StyleBoxLine.

type HSlider

type HSlider = classdb.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).

type HSplitContainer

type HSplitContainer = classdb.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.

type HTTPClient

type HTTPClient = classdb.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. [b]Note:[/b] This client only needs to connect to a host once (see [method connect_to_host]) 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 [method request] 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 [url=https://developer.mozilla.org/en-US/docs/Web/HTTP]MDN's documentation on HTTP[/url] (or read [url=https://tools.ietf.org/html/rfc2616]RFC 2616[/url] to get it straight from the source). [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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. [b]Note:[/b] 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. [b]Note:[/b] 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 [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header. [b]Note:[/b] 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. [b]Warning:[/b] 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.

type HTTPClientMethod

type HTTPClientMethod = classdb.HTTPClientMethod
const (
	/*HTTP GET method. The GET method requests a representation of the specified resource. Requests using GET should only retrieve data.*/
	HTTPClientMethodGet HTTPClientMethod = 0
	/*HTTP HEAD method. The HEAD method asks for a response identical to that of a GET request, but without the response body. This is useful to request metadata like HTTP headers or to check if a resource exists.*/
	HTTPClientMethodHead HTTPClientMethod = 1
	/*HTTP POST method. The POST method is used to submit an entity to the specified resource, often causing a change in state or side effects on the server. This is often used for forms and submitting data or uploading files.*/
	HTTPClientMethodPost HTTPClientMethod = 2
	/*HTTP PUT method. The PUT method asks to replace all current representations of the target resource with the request payload. (You can think of POST as "create or update" and PUT as "update", although many services tend to not make a clear distinction or change their meaning).*/
	HTTPClientMethodPut HTTPClientMethod = 3
	/*HTTP DELETE method. The DELETE method requests to delete the specified resource.*/
	HTTPClientMethodDelete HTTPClientMethod = 4
	/*HTTP OPTIONS method. The OPTIONS method asks for a description of the communication options for the target resource. Rarely used.*/
	HTTPClientMethodOptions HTTPClientMethod = 5
	/*HTTP TRACE method. The TRACE method performs a message loop-back test along the path to the target resource. Returns the entire HTTP request received in the response body. Rarely used.*/
	HTTPClientMethodTrace HTTPClientMethod = 6
	/*HTTP CONNECT method. The CONNECT method establishes a tunnel to the server identified by the target resource. Rarely used.*/
	HTTPClientMethodConnect HTTPClientMethod = 7
	/*HTTP PATCH method. The PATCH method is used to apply partial modifications to a resource.*/
	HTTPClientMethodPatch HTTPClientMethod = 8
	/*Represents the size of the [enum Method] enum.*/
	HTTPClientMethodMax HTTPClientMethod = 9
)

type HTTPClientResponseCode

type HTTPClientResponseCode = classdb.HTTPClientResponseCode
const (
	/*HTTP status code [code]100 Continue[/code]. Interim response that indicates everything so far is OK and that the client should continue with the request (or ignore this status if already finished).*/
	HTTPClientResponseContinue HTTPClientResponseCode = 100
	/*HTTP status code [code]101 Switching Protocol[/code]. Sent in response to an [code]Upgrade[/code] request header by the client. Indicates the protocol the server is switching to.*/
	HTTPClientResponseSwitchingProtocols HTTPClientResponseCode = 101
	/*HTTP status code [code]102 Processing[/code] (WebDAV). Indicates that the server has received and is processing the request, but no response is available yet.*/
	HTTPClientResponseProcessing HTTPClientResponseCode = 102
	/*HTTP status code [code]200 OK[/code]. The request has succeeded. Default response for successful requests. Meaning varies depending on the request. GET: The resource has been fetched and is transmitted in the message body. HEAD: The entity headers are in the message body. POST: The resource describing the result of the action is transmitted in the message body. TRACE: The message body contains the request message as received by the server.*/
	HTTPClientResponseOk HTTPClientResponseCode = 200
	/*HTTP status code [code]201 Created[/code]. The request has succeeded and a new resource has been created as a result of it. This is typically the response sent after a PUT request.*/
	HTTPClientResponseCreated HTTPClientResponseCode = 201
	/*HTTP status code [code]202 Accepted[/code]. The request has been received but not yet acted upon. It is non-committal, meaning that there is no way in HTTP to later send an asynchronous response indicating the outcome of processing the request. It is intended for cases where another process or server handles the request, or for batch processing.*/
	HTTPClientResponseAccepted HTTPClientResponseCode = 202
	/*HTTP status code [code]203 Non-Authoritative Information[/code]. This response code means returned meta-information set is not exact set as available from the origin server, but collected from a local or a third party copy. Except this condition, 200 OK response should be preferred instead of this response.*/
	HTTPClientResponseNonAuthoritativeInformation HTTPClientResponseCode = 203
	/*HTTP status code [code]204 No Content[/code]. There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.*/
	HTTPClientResponseNoContent HTTPClientResponseCode = 204
	/*HTTP status code [code]205 Reset Content[/code]. The server has fulfilled the request and desires that the client resets the "document view" that caused the request to be sent to its original state as received from the origin server.*/
	HTTPClientResponseResetContent HTTPClientResponseCode = 205
	/*HTTP status code [code]206 Partial Content[/code]. This response code is used because of a range header sent by the client to separate download into multiple streams.*/
	HTTPClientResponsePartialContent HTTPClientResponseCode = 206
	/*HTTP status code [code]207 Multi-Status[/code] (WebDAV). A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.*/
	HTTPClientResponseMultiStatus HTTPClientResponseCode = 207
	/*HTTP status code [code]208 Already Reported[/code] (WebDAV). Used inside a DAV: propstat response element to avoid enumerating the internal members of multiple bindings to the same collection repeatedly.*/
	HTTPClientResponseAlreadyReported HTTPClientResponseCode = 208
	/*HTTP status code [code]226 IM Used[/code] (WebDAV). The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.*/
	HTTPClientResponseImUsed HTTPClientResponseCode = 226
	/*HTTP status code [code]300 Multiple Choice[/code]. The request has more than one possible responses and there is no standardized way to choose one of the responses. User-agent or user should choose one of them.*/
	HTTPClientResponseMultipleChoices HTTPClientResponseCode = 300
	/*HTTP status code [code]301 Moved Permanently[/code]. Redirection. This response code means the URI of requested resource has been changed. The new URI is usually included in the response.*/
	HTTPClientResponseMovedPermanently HTTPClientResponseCode = 301
	/*HTTP status code [code]302 Found[/code]. Temporary redirection. This response code means the URI of requested resource has been changed temporarily. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.*/
	HTTPClientResponseFound HTTPClientResponseCode = 302
	/*HTTP status code [code]303 See Other[/code]. The server is redirecting the user agent to a different resource, as indicated by a URI in the Location header field, which is intended to provide an indirect response to the original request.*/
	HTTPClientResponseSeeOther HTTPClientResponseCode = 303
	/*HTTP status code [code]304 Not Modified[/code]. A conditional GET or HEAD request has been received and would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to [code]false[/code].*/
	HTTPClientResponseNotModified HTTPClientResponseCode = 304
	/*[i]Deprecated.[/i] HTTP status code [code]305 Use Proxy[/code].*/
	HTTPClientResponseUseProxy HTTPClientResponseCode = 305
	/*[i]Deprecated.[/i] HTTP status code [code]306 Switch Proxy[/code].*/
	HTTPClientResponseSwitchProxy HTTPClientResponseCode = 306
	/*HTTP status code [code]307 Temporary Redirect[/code]. The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method if it performs an automatic redirection to that URI.*/
	HTTPClientResponseTemporaryRedirect HTTPClientResponseCode = 307
	/*HTTP status code [code]308 Permanent Redirect[/code]. The target resource has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs.*/
	HTTPClientResponsePermanentRedirect HTTPClientResponseCode = 308
	/*HTTP status code [code]400 Bad Request[/code]. The request was invalid. The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, invalid request contents, or deceptive request routing).*/
	HTTPClientResponseBadRequest HTTPClientResponseCode = 400
	/*HTTP status code [code]401 Unauthorized[/code]. Credentials required. The request has not been applied because it lacks valid authentication credentials for the target resource.*/
	HTTPClientResponseUnauthorized HTTPClientResponseCode = 401
	/*HTTP status code [code]402 Payment Required[/code]. This response code is reserved for future use. Initial aim for creating this code was using it for digital payment systems, however this is not currently used.*/
	HTTPClientResponsePaymentRequired HTTPClientResponseCode = 402
	/*HTTP status code [code]403 Forbidden[/code]. The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike [code]401[/code], the client's identity is known to the server.*/
	HTTPClientResponseForbidden HTTPClientResponseCode = 403
	/*HTTP status code [code]404 Not Found[/code]. The server can not find requested resource. Either the URL is not recognized or the endpoint is valid but the resource itself does not exist. May also be sent instead of 403 to hide existence of a resource if the client is not authorized.*/
	HTTPClientResponseNotFound HTTPClientResponseCode = 404
	/*HTTP status code [code]405 Method Not Allowed[/code]. The request's HTTP method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.*/
	HTTPClientResponseMethodNotAllowed HTTPClientResponseCode = 405
	/*HTTP status code [code]406 Not Acceptable[/code]. The target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request. Used when negotiation content.*/
	HTTPClientResponseNotAcceptable HTTPClientResponseCode = 406
	/*HTTP status code [code]407 Proxy Authentication Required[/code]. Similar to 401 Unauthorized, but it indicates that the client needs to authenticate itself in order to use a proxy.*/
	HTTPClientResponseProxyAuthenticationRequired HTTPClientResponseCode = 407
	/*HTTP status code [code]408 Request Timeout[/code]. The server did not receive a complete request message within the time that it was prepared to wait.*/
	HTTPClientResponseRequestTimeout HTTPClientResponseCode = 408
	/*HTTP status code [code]409 Conflict[/code]. The request could not be completed due to a conflict with the current state of the target resource. This code is used in situations where the user might be able to resolve the conflict and resubmit the request.*/
	HTTPClientResponseConflict HTTPClientResponseCode = 409
	/*HTTP status code [code]410 Gone[/code]. The target resource is no longer available at the origin server and this condition is likely permanent.*/
	HTTPClientResponseGone HTTPClientResponseCode = 410
	/*HTTP status code [code]411 Length Required[/code]. The server refuses to accept the request without a defined Content-Length header.*/
	HTTPClientResponseLengthRequired HTTPClientResponseCode = 411
	/*HTTP status code [code]412 Precondition Failed[/code]. One or more conditions given in the request header fields evaluated to [code]false[/code] when tested on the server.*/
	HTTPClientResponsePreconditionFailed HTTPClientResponseCode = 412
	/*HTTP status code [code]413 Entity Too Large[/code]. The server is refusing to process a request because the request payload is larger than the server is willing or able to process.*/
	HTTPClientResponseRequestEntityTooLarge HTTPClientResponseCode = 413
	/*HTTP status code [code]414 Request-URI Too Long[/code]. The server is refusing to service the request because the request-target is longer than the server is willing to interpret.*/
	HTTPClientResponseRequestUriTooLong HTTPClientResponseCode = 414
	/*HTTP status code [code]415 Unsupported Media Type[/code]. The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.*/
	HTTPClientResponseUnsupportedMediaType HTTPClientResponseCode = 415
	/*HTTP status code [code]416 Requested Range Not Satisfiable[/code]. None of the ranges in the request's Range header field overlap the current extent of the selected resource or the set of ranges requested has been rejected due to invalid ranges or an excessive request of small or overlapping ranges.*/
	HTTPClientResponseRequestedRangeNotSatisfiable HTTPClientResponseCode = 416
	/*HTTP status code [code]417 Expectation Failed[/code]. The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.*/
	HTTPClientResponseExpectationFailed HTTPClientResponseCode = 417
	/*HTTP status code [code]418 I'm A Teapot[/code]. Any attempt to brew coffee with a teapot should result in the error code "418 I'm a teapot". The resulting entity body MAY be short and stout.*/
	HTTPClientResponseImATeapot HTTPClientResponseCode = 418
	/*HTTP status code [code]421 Misdirected Request[/code]. The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority that are included in the request URI.*/
	HTTPClientResponseMisdirectedRequest HTTPClientResponseCode = 421
	/*HTTP status code [code]422 Unprocessable Entity[/code] (WebDAV). The server understands the content type of the request entity (hence a 415 Unsupported Media Type status code is inappropriate), and the syntax of the request entity is correct (thus a 400 Bad Request status code is inappropriate) but was unable to process the contained instructions.*/
	HTTPClientResponseUnprocessableEntity HTTPClientResponseCode = 422
	/*HTTP status code [code]423 Locked[/code] (WebDAV). The source or destination resource of a method is locked.*/
	HTTPClientResponseLocked HTTPClientResponseCode = 423
	/*HTTP status code [code]424 Failed Dependency[/code] (WebDAV). The method could not be performed on the resource because the requested action depended on another action and that action failed.*/
	HTTPClientResponseFailedDependency HTTPClientResponseCode = 424
	/*HTTP status code [code]426 Upgrade Required[/code]. The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.*/
	HTTPClientResponseUpgradeRequired HTTPClientResponseCode = 426
	/*HTTP status code [code]428 Precondition Required[/code]. The origin server requires the request to be conditional.*/
	HTTPClientResponsePreconditionRequired HTTPClientResponseCode = 428
	/*HTTP status code [code]429 Too Many Requests[/code]. The user has sent too many requests in a given amount of time (see "rate limiting"). Back off and increase time between requests or try again later.*/
	HTTPClientResponseTooManyRequests HTTPClientResponseCode = 429
	/*HTTP status code [code]431 Request Header Fields Too Large[/code]. The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.*/
	HTTPClientResponseRequestHeaderFieldsTooLarge HTTPClientResponseCode = 431
	/*HTTP status code [code]451 Response Unavailable For Legal Reasons[/code]. The server is denying access to the resource as a consequence of a legal demand.*/
	HTTPClientResponseUnavailableForLegalReasons HTTPClientResponseCode = 451
	/*HTTP status code [code]500 Internal Server Error[/code]. The server encountered an unexpected condition that prevented it from fulfilling the request.*/
	HTTPClientResponseInternalServerError HTTPClientResponseCode = 500
	/*HTTP status code [code]501 Not Implemented[/code]. The server does not support the functionality required to fulfill the request.*/
	HTTPClientResponseNotImplemented HTTPClientResponseCode = 501
	/*HTTP status code [code]502 Bad Gateway[/code]. The server, while acting as a gateway or proxy, received an invalid response from an inbound server it accessed while attempting to fulfill the request. Usually returned by load balancers or proxies.*/
	HTTPClientResponseBadGateway HTTPClientResponseCode = 502
	/*HTTP status code [code]503 Service Unavailable[/code]. The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. Try again later.*/
	HTTPClientResponseServiceUnavailable HTTPClientResponseCode = 503
	/*HTTP status code [code]504 Gateway Timeout[/code]. The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server it needed to access in order to complete the request. Usually returned by load balancers or proxies.*/
	HTTPClientResponseGatewayTimeout HTTPClientResponseCode = 504
	/*HTTP status code [code]505 HTTP Version Not Supported[/code]. The server does not support, or refuses to support, the major version of HTTP that was used in the request message.*/
	HTTPClientResponseHttpVersionNotSupported HTTPClientResponseCode = 505
	/*HTTP status code [code]506 Variant Also Negotiates[/code]. The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.*/
	HTTPClientResponseVariantAlsoNegotiates HTTPClientResponseCode = 506
	/*HTTP status code [code]507 Insufficient Storage[/code]. The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.*/
	HTTPClientResponseInsufficientStorage HTTPClientResponseCode = 507
	/*HTTP status code [code]508 Loop Detected[/code]. The server terminated an operation because it encountered an infinite loop while processing a request with "Depth: infinity". This status indicates that the entire operation failed.*/
	HTTPClientResponseLoopDetected HTTPClientResponseCode = 508
	/*HTTP status code [code]510 Not Extended[/code]. The policy for accessing the resource has not been met in the request. The server should send back all the information necessary for the client to issue an extended request.*/
	HTTPClientResponseNotExtended HTTPClientResponseCode = 510
	/*HTTP status code [code]511 Network Authentication Required[/code]. The client needs to authenticate to gain network access.*/
	HTTPClientResponseNetworkAuthRequired HTTPClientResponseCode = 511
)

type HTTPClientStatus

type HTTPClientStatus = classdb.HTTPClientStatus
const (
	/*Status: Disconnected from the server.*/
	HTTPClientStatusDisconnected HTTPClientStatus = 0
	/*Status: Currently resolving the hostname for the given URL into an IP.*/
	HTTPClientStatusResolving HTTPClientStatus = 1
	/*Status: DNS failure: Can't resolve the hostname for the given URL.*/
	HTTPClientStatusCantResolve HTTPClientStatus = 2
	/*Status: Currently connecting to server.*/
	HTTPClientStatusConnecting HTTPClientStatus = 3
	/*Status: Can't connect to the server.*/
	HTTPClientStatusCantConnect HTTPClientStatus = 4
	/*Status: Connection established.*/
	HTTPClientStatusConnected HTTPClientStatus = 5
	/*Status: Currently sending request.*/
	HTTPClientStatusRequesting HTTPClientStatus = 6
	/*Status: HTTP body received.*/
	HTTPClientStatusBody HTTPClientStatus = 7
	/*Status: Error in HTTP connection.*/
	HTTPClientStatusConnectionError HTTPClientStatus = 8
	/*Status: Error in TLS handshake.*/
	HTTPClientStatusTlsHandshakeError HTTPClientStatus = 9
)

type HTTPRequest

type HTTPRequest = classdb.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. [b]Warning:[/b] See the notes and warnings on HTTPClient for limitations, especially regarding TLS security. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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. [b]Example of contacting a REST API and printing one of its returned fields:[/b] [codeblocks] [gdscript] func _ready():

# Create an HTTP request node and connect its completion signal.
var http_request = HTTPRequest.new()
add_child(http_request)
http_request.request_completed.connect(self._http_request_completed)

# Perform a GET request. The URL below returns JSON as of writing.
var error = http_request.request("https://httpbin.org/get")
if error != OK:
    push_error("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.
var body = JSON.new().stringify({"name": "Godette"})
error = http_request.request("https://httpbin.org/post", [], HTTPClient.METHOD_POST, body)
if error != OK:
    push_error("An error occurred in the HTTP request.")

# Called when the HTTP request is completed. func _http_request_completed(result, response_code, headers, body):

var json = JSON.new()
json.parse(body.get_string_from_utf8())
var response = json.get_data()

# Will print the user agent string used by the HTTPRequest node (as recognized by httpbin.org).
print(response.headers["User-Agent"])

[/gdscript] [csharp] 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"]);
}

[/csharp] [/codeblocks] [b]Example of loading and displaying an image using HTTPRequest:[/b] [codeblocks] [gdscript] func _ready():

# Create an HTTP request node and connect its completion signal.
var http_request = HTTPRequest.new()
add_child(http_request)
http_request.request_completed.connect(self._http_request_completed)

# Perform the HTTP request. The URL below returns a PNG image as of writing.
var error = http_request.request("https://via.placeholder.com/512")
if error != OK:
    push_error("An error occurred in the HTTP request.")

# Called when the HTTP request is completed. func _http_request_completed(result, response_code, headers, body):

if result != HTTPRequest.RESULT_SUCCESS:
    push_error("Image couldn't be downloaded. Try a different image.")

var image = Image.new()
var error = image.load_png_from_buffer(body)
if error != OK:
    push_error("Couldn't load the image.")

var texture = ImageTexture.create_from_image(image)

# Display the image in a TextureRect node.
var texture_rect = TextureRect.new()
add_child(texture_rect)
texture_rect.texture = texture

[/gdscript] [csharp] 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;
}

[/csharp] [/codeblocks] [b]Gzipped response bodies[/b]: HTTPRequest will automatically handle decompression of response bodies. A [code]Accept-Encoding[/code] header will be automatically added to each of your requests, unless one is already specified. Any response with a [code]Content-Encoding: gzip[/code] header will automatically be decompressed and delivered to you as uncompressed bytes.

type HTTPRequestResult

type HTTPRequestResult = classdb.HTTPRequestResult
const (
	/*Request successful.*/
	HTTPRequestResultSuccess                 HTTPRequestResult = 0
	HTTPRequestResultChunkedBodySizeMismatch HTTPRequestResult = 1
	/*Request failed while connecting.*/
	HTTPRequestResultCantConnect HTTPRequestResult = 2
	/*Request failed while resolving.*/
	HTTPRequestResultCantResolve HTTPRequestResult = 3
	/*Request failed due to connection (read/write) error.*/
	HTTPRequestResultConnectionError HTTPRequestResult = 4
	/*Request failed on TLS handshake.*/
	HTTPRequestResultTlsHandshakeError HTTPRequestResult = 5
	/*Request does not have a response (yet).*/
	HTTPRequestResultNoResponse HTTPRequestResult = 6
	/*Request exceeded its maximum size limit, see [member body_size_limit].*/
	HTTPRequestResultBodySizeLimitExceeded HTTPRequestResult = 7
	HTTPRequestResultBodyDecompressFailed  HTTPRequestResult = 8
	/*Request failed (currently unused).*/
	HTTPRequestResultRequestFailed HTTPRequestResult = 9
	/*HTTPRequest couldn't open the download file.*/
	HTTPRequestResultDownloadFileCantOpen HTTPRequestResult = 10
	/*HTTPRequest couldn't write to the download file.*/
	HTTPRequestResultDownloadFileWriteError HTTPRequestResult = 11
	/*Request reached its maximum redirect limit, see [member max_redirects].*/
	HTTPRequestResultRedirectLimitReached HTTPRequestResult = 12
	/*Request failed due to a timeout. If you expect requests to take a long time, try increasing the value of [member timeout] or setting it to [code]0.0[/code] to remove the timeout completely.*/
	HTTPRequestResultTimeout HTTPRequestResult = 13
)

type HashingContext

type HashingContext = classdb.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 [enum HashType] enum shows the supported hashing algorithms. [codeblocks] [gdscript] const CHUNK_SIZE = 1024

func hash_file(path):

# Check that file exists.
if not FileAccess.file_exists(path):
    return
# Start a SHA-256 context.
var ctx = HashingContext.new()
ctx.start(HashingContext.HASH_SHA256)
# Open the file to hash.
var file = FileAccess.open(path, FileAccess.READ)
# Update the context after reading each chunk.
while not file.eof_reached():
    ctx.update(file.get_buffer(CHUNK_SIZE))
# Get the computed hash.
var res = ctx.finish()
# Print the result as hex string and array.
printt(res.hex_encode(), Array(res))

[/gdscript] [csharp] 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);
}

[/csharp] [/codeblocks]

type HashingContextHashType

type HashingContextHashType = classdb.HashingContextHashType
const (
	/*Hashing algorithm: MD5.*/
	HashingContextHashMd5 HashingContextHashType = 0
	/*Hashing algorithm: SHA-1.*/
	HashingContextHashSha1 HashingContextHashType = 1
	/*Hashing algorithm: SHA-256.*/
	HashingContextHashSha256 HashingContextHashType = 2
)

type HeightMapShape3D

type HeightMapShape3D = classdb.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. [b]Performance:[/b] HeightMapShape3D is faster to check collisions against than ConcavePolygonShape3D, but it is significantly slower than primitive shapes like BoxShape3D.

type HingeJoint3D

type HingeJoint3D = classdb.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.

type HingeJoint3DFlag

type HingeJoint3DFlag = classdb.HingeJoint3DFlag
const (
	/*If [code]true[/code], the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.*/
	HingeJoint3DFlagUseLimit HingeJoint3DFlag = 0
	/*When activated, a motor turns the hinge.*/
	HingeJoint3DFlagEnableMotor HingeJoint3DFlag = 1
	/*Represents the size of the [enum Flag] enum.*/
	HingeJoint3DFlagMax HingeJoint3DFlag = 2
)

type HingeJoint3DParam

type HingeJoint3DParam = classdb.HingeJoint3DParam
const (
	/*The speed with which the two bodies get pulled together when they move in different directions.*/
	HingeJoint3DParamBias HingeJoint3DParam = 0
	/*The maximum rotation. Only active if [member angular_limit/enable] is [code]true[/code].*/
	HingeJoint3DParamLimitUpper HingeJoint3DParam = 1
	/*The minimum rotation. Only active if [member angular_limit/enable] is [code]true[/code].*/
	HingeJoint3DParamLimitLower HingeJoint3DParam = 2
	/*The speed with which the rotation across the axis perpendicular to the hinge gets corrected.*/
	HingeJoint3DParamLimitBias     HingeJoint3DParam = 3
	HingeJoint3DParamLimitSoftness HingeJoint3DParam = 4
	/*The lower this value, the more the rotation gets slowed down.*/
	HingeJoint3DParamLimitRelaxation HingeJoint3DParam = 5
	/*Target speed for the motor.*/
	HingeJoint3DParamMotorTargetVelocity HingeJoint3DParam = 6
	/*Maximum acceleration for the motor.*/
	HingeJoint3DParamMotorMaxImpulse HingeJoint3DParam = 7
	/*Represents the size of the [enum Param] enum.*/
	HingeJoint3DParamMax HingeJoint3DParam = 8
)

type HorizontalAlignment

type HorizontalAlignment = gd.HorizontalAlignment
const (
	/*Horizontal left alignment, usually for text-derived classes.*/
	HorizontalAlignmentLeft HorizontalAlignment = 0
	/*Horizontal center alignment, usually for text-derived classes.*/
	HorizontalAlignmentCenter HorizontalAlignment = 1
	/*Horizontal right alignment, usually for text-derived classes.*/
	HorizontalAlignmentRight HorizontalAlignment = 2
	/*Expand row to fit width, usually for text-derived classes.*/
	HorizontalAlignmentFill HorizontalAlignment = 3
)

type IPResolverStatus

type IPResolverStatus = classdb.IPResolverStatus
const (
	/*DNS hostname resolver status: No status.*/
	IPResolverStatusNone IPResolverStatus = 0
	/*DNS hostname resolver status: Waiting.*/
	IPResolverStatusWaiting IPResolverStatus = 1
	/*DNS hostname resolver status: Done.*/
	IPResolverStatusDone IPResolverStatus = 2
	/*DNS hostname resolver status: Error.*/
	IPResolverStatusError IPResolverStatus = 3
)

type IPType

type IPType = classdb.IPType
const (
	/*Address type: None.*/
	IPTypeNone IPType = 0
	/*Address type: Internet protocol version 4 (IPv4).*/
	IPTypeIpv4 IPType = 1
	/*Address type: Internet protocol version 6 (IPv6).*/
	IPTypeIpv6 IPType = 2
	/*Address type: Any.*/
	IPTypeAny IPType = 3
)

type Image

type Image = classdb.Image

Native image datatype. Contains image data which can be converted to an ImageTexture and provides commonly used [i]image processing[/i] methods. The maximum width and height for an Image are [constant MAX_WIDTH] and [constant MAX_HEIGHT]. An Image cannot be assigned to a texture property of an object directly (such as [member Sprite2D.texture]), and has to be converted manually to an ImageTexture first. [b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.

type ImageASTCFormat

type ImageASTCFormat = classdb.ImageASTCFormat
const (
	/*Hint to indicate that the high quality 4x4 ASTC compression format should be used.*/
	ImageAstcFormat4x4 ImageASTCFormat = 0
	/*Hint to indicate that the low quality 8x8 ASTC compression format should be used.*/
	ImageAstcFormat8x8 ImageASTCFormat = 1
)

type ImageAlphaMode

type ImageAlphaMode = classdb.ImageAlphaMode
const (
	/*Image does not have alpha.*/
	ImageAlphaNone ImageAlphaMode = 0
	/*Image stores alpha in a single bit.*/
	ImageAlphaBit ImageAlphaMode = 1
	/*Image uses alpha.*/
	ImageAlphaBlend ImageAlphaMode = 2
)

type ImageCompressMode

type ImageCompressMode = classdb.ImageCompressMode
const (
	/*Use S3TC compression.*/
	ImageCompressS3tc ImageCompressMode = 0
	/*Use ETC compression.*/
	ImageCompressEtc ImageCompressMode = 1
	/*Use ETC2 compression.*/
	ImageCompressEtc2 ImageCompressMode = 2
	/*Use BPTC compression.*/
	ImageCompressBptc ImageCompressMode = 3
	/*Use ASTC compression.*/
	ImageCompressAstc ImageCompressMode = 4
	/*Represents the size of the [enum CompressMode] enum.*/
	ImageCompressMax ImageCompressMode = 5
)

type ImageCompressSource

type ImageCompressSource = classdb.ImageCompressSource
const (
	/*Source texture (before compression) is a regular texture. Default for all textures.*/
	ImageCompressSourceGeneric ImageCompressSource = 0
	/*Source texture (before compression) is in sRGB space.*/
	ImageCompressSourceSrgb ImageCompressSource = 1
	/*Source texture (before compression) is a normal texture (e.g. it can be compressed into two channels).*/
	ImageCompressSourceNormal ImageCompressSource = 2
)

type ImageFormat

type ImageFormat = classdb.ImageFormat
const (
	/*Texture format with a single 8-bit depth representing luminance.*/
	ImageFormatL8 ImageFormat = 0
	/*OpenGL texture format with two values, luminance and alpha each stored with 8 bits.*/
	ImageFormatLa8 ImageFormat = 1
	/*OpenGL texture format [code]RED[/code] with a single component and a bitdepth of 8.*/
	ImageFormatR8 ImageFormat = 2
	/*OpenGL texture format [code]RG[/code] with two components and a bitdepth of 8 for each.*/
	ImageFormatRg8 ImageFormat = 3
	/*OpenGL texture format [code]RGB[/code] with three components, each with a bitdepth of 8.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatRgb8 ImageFormat = 4
	/*OpenGL texture format [code]RGBA[/code] with four components, each with a bitdepth of 8.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatRgba8 ImageFormat = 5
	/*OpenGL texture format [code]RGBA[/code] with four components, each with a bitdepth of 4.*/
	ImageFormatRgba4444 ImageFormat = 6
	/*OpenGL texture format [code]RGB[/code] with three components. Red and blue have a bitdepth of 5, and green has a bitdepth of 6.*/
	ImageFormatRgb565 ImageFormat = 7
	/*OpenGL texture format [code]GL_R32F[/code] where there's one component, a 32-bit floating-point value.*/
	ImageFormatRf ImageFormat = 8
	/*OpenGL texture format [code]GL_RG32F[/code] where there are two components, each a 32-bit floating-point values.*/
	ImageFormatRgf ImageFormat = 9
	/*OpenGL texture format [code]GL_RGB32F[/code] where there are three components, each a 32-bit floating-point values.*/
	ImageFormatRgbf ImageFormat = 10
	/*OpenGL texture format [code]GL_RGBA32F[/code] where there are four components, each a 32-bit floating-point values.*/
	ImageFormatRgbaf ImageFormat = 11
	/*OpenGL texture format [code]GL_R16F[/code] where there's one component, a 16-bit "half-precision" floating-point value.*/
	ImageFormatRh ImageFormat = 12
	/*OpenGL texture format [code]GL_RG16F[/code] where there are two components, each a 16-bit "half-precision" floating-point value.*/
	ImageFormatRgh ImageFormat = 13
	/*OpenGL texture format [code]GL_RGB16F[/code] where there are three components, each a 16-bit "half-precision" floating-point value.*/
	ImageFormatRgbh ImageFormat = 14
	/*OpenGL texture format [code]GL_RGBA16F[/code] where there are four components, each a 16-bit "half-precision" floating-point value.*/
	ImageFormatRgbah ImageFormat = 15
	/*A special OpenGL texture format where the three color components have 9 bits of precision and all three share a single 5-bit exponent.*/
	ImageFormatRgbe9995 ImageFormat = 16
	/*The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] texture format that uses Block Compression 1, and is the smallest variation of S3TC, only providing 1 bit of alpha and color data being premultiplied with alpha.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatDxt1 ImageFormat = 17
	/*The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] texture format that uses Block Compression 2, and color data is interpreted as not having been premultiplied by alpha. Well suited for images with sharp alpha transitions between translucent and opaque areas.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatDxt3 ImageFormat = 18
	/*The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] texture format also known as Block Compression 3 or BC3 that contains 64 bits of alpha channel data followed by 64 bits of DXT1-encoded color data. Color data is not premultiplied by alpha, same as DXT3. DXT5 generally produces superior results for transparent gradients compared to DXT3.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatDxt5 ImageFormat = 19
	/*Texture format that uses [url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]Red Green Texture Compression[/url], normalizing the red channel data using the same compression algorithm that DXT5 uses for the alpha channel.*/
	ImageFormatRgtcR ImageFormat = 20
	/*Texture format that uses [url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]Red Green Texture Compression[/url], normalizing the red and green channel data using the same compression algorithm that DXT5 uses for the alpha channel.*/
	ImageFormatRgtcRg ImageFormat = 21
	/*Texture format that uses [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/url] compression with unsigned normalized RGBA components.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatBptcRgba ImageFormat = 22
	/*Texture format that uses [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/url] compression with signed floating-point RGB components.*/
	ImageFormatBptcRgbf ImageFormat = 23
	/*Texture format that uses [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/url] compression with unsigned floating-point RGB components.*/
	ImageFormatBptcRgbfu ImageFormat = 24
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC1]Ericsson Texture Compression format 1[/url], also referred to as "ETC1", and is part of the OpenGL ES graphics standard. This format cannot store an alpha channel.*/
	ImageFormatEtc ImageFormat = 25
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]R11_EAC[/code] variant), which provides one channel of unsigned data.*/
	ImageFormatEtc2R11 ImageFormat = 26
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]SIGNED_R11_EAC[/code] variant), which provides one channel of signed data.*/
	ImageFormatEtc2R11s ImageFormat = 27
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]RG11_EAC[/code] variant), which provides two channels of unsigned data.*/
	ImageFormatEtc2Rg11 ImageFormat = 28
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]SIGNED_RG11_EAC[/code] variant), which provides two channels of signed data.*/
	ImageFormatEtc2Rg11s ImageFormat = 29
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]RGB8[/code] variant), which is a follow-up of ETC1 and compresses RGB888 data.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatEtc2Rgb8 ImageFormat = 30
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]RGBA8[/code]variant), which compresses RGBA8888 data with full alpha support.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatEtc2Rgba8 ImageFormat = 31
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]RGB8_PUNCHTHROUGH_ALPHA1[/code] variant), which compresses RGBA data to make alpha either fully transparent or fully opaque.
	  [b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space conversion is performed.*/
	ImageFormatEtc2Rgb8a1 ImageFormat = 32
	/*[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression format 2[/url] ([code]RGBA8[/code] variant), which compresses RA data and interprets it as two channels (red and green). See also [constant FORMAT_ETC2_RGBA8].*/
	ImageFormatEtc2RaAsRg ImageFormat = 33
	/*The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] texture format also known as Block Compression 3 or BC3, which compresses RA data and interprets it as two channels (red and green). See also [constant FORMAT_DXT5].*/
	ImageFormatDxt5RaAsRg ImageFormat = 34
	/*[url=https://en.wikipedia.org/wiki/Adaptive_scalable_texture_compression]Adaptive Scalable Texture Compression[/url]. This implements the 4x4 (high quality) mode.*/
	ImageFormatAstc4x4 ImageFormat = 35
	/*Same format as [constant FORMAT_ASTC_4x4], but with the hint to let the GPU know it is used for HDR.*/
	ImageFormatAstc4x4Hdr ImageFormat = 36
	/*[url=https://en.wikipedia.org/wiki/Adaptive_scalable_texture_compression]Adaptive Scalable Texture Compression[/url]. This implements the 8x8 (low quality) mode.*/
	ImageFormatAstc8x8 ImageFormat = 37
	/*Same format as [constant FORMAT_ASTC_8x8], but with the hint to let the GPU know it is used for HDR.*/
	ImageFormatAstc8x8Hdr ImageFormat = 38
	/*Represents the size of the [enum Format] enum.*/
	ImageFormatMax ImageFormat = 39
)

type ImageFormatLoader

type ImageFormatLoader = classdb.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.

type ImageFormatLoaderExtension

type ImageFormatLoaderExtension = classdb.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 [method add_format_loader] to register that loader during the initialization phase.

// ImageFormatLoaderExtension methods that can be overridden by a [Class] that extends it.
type ImageFormatLoaderExtension interface {
	//Returns the list of file extensions for this image format. Files with the given extensions will be treated as image file and loaded using this class.
	GetRecognizedExtensions(godot Context) gd.PackedStringArray
	//Loads the content of [param fileaccess] into the provided [param image].
	LoadImage(godot Context, image Image, fileaccess FileAccess, flags ImageFormatLoaderLoaderFlags, scale gd.Float) int64
}

type ImageFormatLoaderLoaderFlags

type ImageFormatLoaderLoaderFlags = classdb.ImageFormatLoaderLoaderFlags
const (
	ImageFormatLoaderFlagNone          ImageFormatLoaderLoaderFlags = 0
	ImageFormatLoaderFlagForceLinear   ImageFormatLoaderLoaderFlags = 1
	ImageFormatLoaderFlagConvertColors ImageFormatLoaderLoaderFlags = 2
)

type ImageInterpolation

type ImageInterpolation = classdb.ImageInterpolation
const (
	/*Performs nearest-neighbor interpolation. If the image is resized, it will be pixelated.*/
	ImageInterpolateNearest ImageInterpolation = 0
	/*Performs bilinear interpolation. If the image is resized, it will be blurry. This mode is faster than [constant INTERPOLATE_CUBIC], but it results in lower quality.*/
	ImageInterpolateBilinear ImageInterpolation = 1
	/*Performs cubic interpolation. If the image is resized, it will be blurry. This mode often gives better results compared to [constant INTERPOLATE_BILINEAR], at the cost of being slower.*/
	ImageInterpolateCubic ImageInterpolation = 2
	/*Performs bilinear separately on the two most-suited mipmap levels, then linearly interpolates between them.
	  It's slower than [constant INTERPOLATE_BILINEAR], but produces higher-quality results with far fewer aliasing artifacts.
	  If the image does not have mipmaps, they will be generated and used internally, but no mipmaps will be generated on the resulting image.
	  [b]Note:[/b] If you intend to scale multiple copies of the original image, it's better to call [method generate_mipmaps]] on it in advance, to avoid wasting processing power in generating them again and again.
	  On the other hand, if the image already has mipmaps, they will be used, and a new set will be generated for the resulting image.*/
	ImageInterpolateTrilinear ImageInterpolation = 3
	/*Performs Lanczos interpolation. This is the slowest image resizing mode, but it typically gives the best results, especially when downscaling images.*/
	ImageInterpolateLanczos ImageInterpolation = 4
)

type ImageTexture

type ImageTexture = classdb.ImageTexture

A Texture2D based on an Image. For an image to be displayed, an ImageTexture has to be created from it using the [method create_from_image] method: [codeblock] var image = Image.load_from_file("res://icon.svg") var texture = ImageTexture.create_from_image(image) $Sprite2D.texture = texture [/codeblock] This way, textures can be created at run-time by loading images both from within the editor and externally. [b]Warning:[/b] Prefer to load imported textures with [method @GDScript.load] over loading them from within the filesystem dynamically with [method Image.load], as it may not work in exported projects: [codeblock] var texture = load("res://icon.svg") $Sprite2D.texture = texture [/codeblock] This is because images have to be imported as a CompressedTexture2D first to be loaded with [method @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 [method @GDScript.load] method. [b]Note:[/b] The image can be retrieved from an imported texture using the [method Texture2D.get_image] method, which returns a copy of the image: [codeblock] var texture = load("res://icon.svg") var image: Image = texture.get_image() [/codeblock] 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. [b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics hardware limitations.

type ImageTexture3D

type ImageTexture3D = classdb.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.

type ImageTextureLayered

type ImageTextureLayered = classdb.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.

type ImageUsedChannels

type ImageUsedChannels = classdb.ImageUsedChannels
const (
	/*The image only uses one channel for luminance (grayscale).*/
	ImageUsedChannelsL ImageUsedChannels = 0
	/*The image uses two channels for luminance and alpha, respectively.*/
	ImageUsedChannelsLa ImageUsedChannels = 1
	/*The image only uses the red channel.*/
	ImageUsedChannelsR ImageUsedChannels = 2
	/*The image uses two channels for red and green.*/
	ImageUsedChannelsRg ImageUsedChannels = 3
	/*The image uses three channels for red, green, and blue.*/
	ImageUsedChannelsRgb ImageUsedChannels = 4
	/*The image uses four channels for red, green, blue, and alpha.*/
	ImageUsedChannelsRgba ImageUsedChannels = 5
)

type ImmediateMesh

type ImmediateMesh = classdb.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: [codeblocks] [gdscript] var mesh = ImmediateMesh.new() mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES) mesh.surface_add_vertex(Vector3.LEFT) mesh.surface_add_vertex(Vector3.FORWARD) mesh.surface_add_vertex(Vector3.ZERO) mesh.surface_end() [/gdscript] [csharp] var mesh = new ImmediateMesh(); mesh.SurfaceBegin(Mesh.PrimitiveType.Triangles); mesh.SurfaceAddVertex(Vector3.Left); mesh.SurfaceAddVertex(Vector3.Forward); mesh.SurfaceAddVertex(Vector3.Zero); mesh.SurfaceEnd(); [/csharp] [/codeblocks] [b]Note:[/b] Generating complex geometries with ImmediateMesh is highly inefficient. Instead, it is designed to generate simple geometry that changes often.

type ImporterMesh

type ImporterMesh = classdb.ImporterMesh

ImporterMesh is a type of Resource analogous to ArrayMesh. It contains vertex array-based geometry, divided in [i]surfaces[/i]. 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 [method clear], followed by [method add_surface] for each surface.

type ImporterMeshInstance3D

type ImporterMeshInstance3D = classdb.ImporterMeshInstance3D

type InlineAlignment

type InlineAlignment = gd.InlineAlignment
const (
	/*Aligns the top of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant.*/
	InlineAlignmentTopTo InlineAlignment = 0
	/*Aligns the center of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant.*/
	InlineAlignmentCenterTo InlineAlignment = 1
	/*Aligns the baseline (user defined) of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant.*/
	InlineAlignmentBaselineTo InlineAlignment = 3
	/*Aligns the bottom of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant.*/
	InlineAlignmentBottomTo InlineAlignment = 2
	/*Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGNMENT_*_TO[/code] constant to the top of the text.*/
	InlineAlignmentToTop InlineAlignment = 0
	/*Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGNMENT_*_TO[/code] constant to the center of the text.*/
	InlineAlignmentToCenter InlineAlignment = 4
	/*Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGNMENT_*_TO[/code] constant to the baseline of the text.*/
	InlineAlignmentToBaseline InlineAlignment = 8
	/*Aligns inline object (e.g. image, table) to the bottom of the text.*/
	InlineAlignmentToBottom InlineAlignment = 12
	/*Aligns top of the inline object (e.g. image, table) to the top of the text. Equivalent to [code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code].*/
	InlineAlignmentTop InlineAlignment = 0
	/*Aligns center of the inline object (e.g. image, table) to the center of the text. Equivalent to [code]INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER[/code].*/
	InlineAlignmentCenter InlineAlignment = 5
	/*Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equivalent to [code]INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM[/code].*/
	InlineAlignmentBottom InlineAlignment = 14
	/*A bit mask for [code]INLINE_ALIGNMENT_*_TO[/code] alignment constants.*/
	InlineAlignmentImageMask InlineAlignment = 3
	/*A bit mask for [code]INLINE_ALIGNMENT_TO_*[/code] alignment constants.*/
	InlineAlignmentTextMask InlineAlignment = 12
)

type InputCursorShape

type InputCursorShape = classdb.InputCursorShape
const (
	/*Arrow cursor. Standard, default pointing cursor.*/
	InputCursorArrow InputCursorShape = 0
	/*I-beam cursor. Usually used to show where the text cursor will appear when the mouse is clicked.*/
	InputCursorIbeam InputCursorShape = 1
	/*Pointing hand cursor. Usually used to indicate the pointer is over a link or other interactable item.*/
	InputCursorPointingHand InputCursorShape = 2
	/*Cross cursor. Typically appears over regions in which a drawing operation can be performed or for selections.*/
	InputCursorCross InputCursorShape = 3
	/*Wait cursor. Indicates that the application is busy performing an operation. This cursor shape denotes that the application isn't usable during the operation (e.g. something is blocking its main thread).*/
	InputCursorWait InputCursorShape = 4
	/*Busy cursor. Indicates that the application is busy performing an operation. This cursor shape denotes that the application is still usable during the operation.*/
	InputCursorBusy InputCursorShape = 5
	/*Drag cursor. Usually displayed when dragging something.
	  [b]Note:[/b] Windows lacks a dragging cursor, so [constant CURSOR_DRAG] is the same as [constant CURSOR_MOVE] for this platform.*/
	InputCursorDrag InputCursorShape = 6
	/*Can drop cursor. Usually displayed when dragging something to indicate that it can be dropped at the current position.*/
	InputCursorCanDrop InputCursorShape = 7
	/*Forbidden cursor. Indicates that the current action is forbidden (for example, when dragging something) or that the control at a position is disabled.*/
	InputCursorForbidden InputCursorShape = 8
	/*Vertical resize mouse cursor. A double-headed vertical arrow. It tells the user they can resize the window or the panel vertically.*/
	InputCursorVsize InputCursorShape = 9
	/*Horizontal resize mouse cursor. A double-headed horizontal arrow. It tells the user they can resize the window or the panel horizontally.*/
	InputCursorHsize InputCursorShape = 10
	/*Window resize mouse cursor. The cursor is a double-headed arrow that goes from the bottom left to the top right. It tells the user they can resize the window or the panel both horizontally and vertically.*/
	InputCursorBdiagsize InputCursorShape = 11
	/*Window resize mouse cursor. The cursor is a double-headed arrow that goes from the top left to the bottom right, the opposite of [constant CURSOR_BDIAGSIZE]. It tells the user they can resize the window or the panel both horizontally and vertically.*/
	InputCursorFdiagsize InputCursorShape = 12
	/*Move cursor. Indicates that something can be moved.*/
	InputCursorMove InputCursorShape = 13
	/*Vertical split mouse cursor. On Windows, it's the same as [constant CURSOR_VSIZE].*/
	InputCursorVsplit InputCursorShape = 14
	/*Horizontal split mouse cursor. On Windows, it's the same as [constant CURSOR_HSIZE].*/
	InputCursorHsplit InputCursorShape = 15
	/*Help cursor. Usually a question mark.*/
	InputCursorHelp InputCursorShape = 16
)

type InputEvent

type InputEvent = classdb.InputEvent

Abstract base class of all types of input events. See [method Node._input].

type InputEventAction

type InputEventAction = classdb.InputEventAction

Contains a generic action which can be targeted from several types of inputs. Actions and their events can be set in the [b]Input Map[/b] tab in [b]Project > Project Settings[/b], or with the InputMap class. [b]Note:[/b] 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 [method Input.parse_input_event], which are then received in [method Node._input]. To check if a physical event matches an action from the Input Map, use [method InputEvent.is_action] and [method InputEvent.is_action_pressed].

type InputEventFromWindow

type InputEventFromWindow = classdb.InputEventFromWindow

InputEventFromWindow represents events specifically received by windows. This includes mouse events, keyboard events in focused windows or touch screen actions.

type InputEventGesture

type InputEventGesture = classdb.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.

type InputEventJoypadButton

type InputEventJoypadButton = classdb.InputEventJoypadButton

Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see InputEventJoypadMotion.

type InputEventJoypadMotion

type InputEventJoypadMotion = classdb.InputEventJoypadMotion

Stores information about joystick motions. One InputEventJoypadMotion represents one axis at a time. For gamepad buttons, see InputEventJoypadButton.

type InputEventKey

type InputEventKey = classdb.InputEventKey

An input event for keys on a keyboard. Supports key presses, key releases and [member echo] events. It can also be received in [method Node._unhandled_key_input]. [b]Note:[/b] Events received from the keyboard usually have all properties set. Event mappings should have only one of the [member keycode], [member physical_keycode] or [member unicode] set. When events are compared, properties are checked in the following priority - [member keycode], [member physical_keycode] and [member unicode]. Events with the first matching value will be considered equal.

type InputEventMIDI

type InputEventMIDI = classdb.InputEventMIDI

InputEventMIDI stores information about messages from [url=https://en.wikipedia.org/wiki/MIDI]MIDI[/url] (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 [method OS.open_midi_inputs], first. You can check which devices are detected with [method OS.get_connected_midi_inputs], and close the connection with [method OS.close_midi_inputs]. [codeblocks] [gdscript] func _ready():

OS.open_midi_inputs()
print(OS.get_connected_midi_inputs())

func _input(input_event):

if input_event is InputEventMIDI:
    _print_midi_info(input_event)

func _print_midi_info(midi_event):

print(midi_event)
print("Channel ", midi_event.channel)
print("Message ", midi_event.message)
print("Pitch ", midi_event.pitch)
print("Velocity ", midi_event.velocity)
print("Instrument ", midi_event.instrument)
print("Pressure ", midi_event.pressure)
print("Controller number: ", midi_event.controller_number)
print("Controller value: ", midi_event.controller_value)

[/gdscript] [csharp] 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}");
}

[/csharp] [/codeblocks] [b]Note:[/b] Godot does not support MIDI output, so there is no way to emit MIDI messages from Godot. Only MIDI input is supported.

type InputEventMagnifyGesture

type InputEventMagnifyGesture = classdb.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. [b]Note:[/b] On Android, this requires the [member ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures] project setting to be enabled.

type InputEventMouse

type InputEventMouse = classdb.InputEventMouse

Stores general information about mouse events.

type InputEventMouseButton

type InputEventMouseButton = classdb.InputEventMouseButton

Stores information about mouse click events. See [method Node._input].

type InputEventMouseMotion

type InputEventMouseMotion = classdb.InputEventMouseMotion

Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See [method Node._input]. [b]Note:[/b] By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set [member Input.use_accumulated_input] to [code]false[/code] to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.

type InputEventPanGesture

type InputEventPanGesture = classdb.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. [b]Note:[/b] On Android, this requires the [member ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures] project setting to be enabled.

type InputEventScreenDrag

type InputEventScreenDrag = classdb.InputEventScreenDrag

Stores information about screen drag events. See [method Node._input].

type InputEventScreenTouch

type InputEventScreenTouch = classdb.InputEventScreenTouch

Stores information about multi-touch press/release input events. Supports touch press, touch release and [member index] for multi-touch count and order.

type InputEventShortcut

type InputEventShortcut = classdb.InputEventShortcut

InputEventShortcut is a special event that can be received in [method Node._unhandled_key_input]. It is typically sent by the editor's Command Palette to trigger actions, but can also be sent manually using [method Viewport.push_input].

type InputEventWithModifiers

type InputEventWithModifiers = classdb.InputEventWithModifiers

Stores information about mouse, keyboard, and touch gesture input events. This includes information about which modifier keys are pressed, such as [kbd]Shift[/kbd] or [kbd]Alt[/kbd]. See [method Node._input].

type InputMouseMode

type InputMouseMode = classdb.InputMouseMode
const (
	/*Makes the mouse cursor visible if it is hidden.*/
	InputMouseModeVisible InputMouseMode = 0
	/*Makes the mouse cursor hidden if it is visible.*/
	InputMouseModeHidden InputMouseMode = 1
	/*Captures the mouse. The mouse will be hidden and its position locked at the center of the window manager's window.
	  [b]Note:[/b] If you want to process the mouse's movement in this mode, you need to use [member InputEventMouseMotion.relative].*/
	InputMouseModeCaptured InputMouseMode = 2
	/*Confines the mouse cursor to the game window, and make it visible.*/
	InputMouseModeConfined InputMouseMode = 3
	/*Confines the mouse cursor to the game window, and make it hidden.*/
	InputMouseModeConfinedHidden InputMouseMode = 4
)

type InstancePlaceholder

type InstancePlaceholder = classdb.InstancePlaceholder

Turning on the option [b]Load As Placeholder[/b] 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 [method create_instance]. 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.

type Int

type Int = gd.Int

func NearestPowerOfTwo

func NearestPowerOfTwo(x Int) Int

NearestPowerOfTwo returns the nearest power of two to the given value.

Warning: Due to its implementation, this method returns 0 rather than 1 for values less than or equal to 0, with an exception for value being the smallest negative 64-bit integer (-9223372036854775808) in which case the value is returned unchanged.

func StepDecimals

func StepDecimals[T ~float32 | ~float64](x T) Int

StepDecimals returns the position of the first non-zero digit, after the decimal point. Note that the maximum return value is 10, which is a design decision in the implementation.

type IntervalTweener

type IntervalTweener = classdb.IntervalTweener

IntervalTweener is used to make delays in a tweening sequence. See [method Tween.tween_interval] for more usage information. [b]Note:[/b] [method Tween.tween_interval] is the only correct way to create IntervalTweener. Any IntervalTweener created manually will not function correctly.

type ItemList

type ItemList = classdb.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 [kbd]Enter[/kbd]. Item text only supports single-line strings. Newline characters (e.g. [code]\n[/code]) in the string won't produce a newline. Text wrapping is enabled in [constant ICON_MODE_TOP] mode, but the column's width is adjusted to fully fit its content by default. You need to set [member fixed_column_width] greater than zero to wrap the text. All [code]set_*[/code] methods allow negative item indices, i.e. [code]-1[/code] to access the last item, [code]-2[/code] to select the second-to-last item, and so on. [b]Incremental search:[/b] 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 [member ProjectSettings.gui/timers/incremental_search_max_interval_msec].

type ItemListIconMode

type ItemListIconMode = classdb.ItemListIconMode
const (
	/*Icon is drawn above the text.*/
	ItemListIconModeTop ItemListIconMode = 0
	/*Icon is drawn to the left of the text.*/
	ItemListIconModeLeft ItemListIconMode = 1
)

type ItemListSelectMode

type ItemListSelectMode = classdb.ItemListSelectMode
const (
	/*Only allow selecting a single item.*/
	ItemListSelectSingle ItemListSelectMode = 0
	/*Allows selecting multiple items by holding [kbd]Ctrl[/kbd] or [kbd]Shift[/kbd].*/
	ItemListSelectMulti ItemListSelectMode = 1
)

type JNISingleton

type JNISingleton = classdb.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 [url=https://en.wikipedia.org/wiki/Java_Native_Interface]Java Native Interface - Wikipedia[/url] for more information.

type JSON

type JSON = classdb.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. [method stringify] is used to convert any data type into a JSON string. [method parse] is used to convert any existing JSON data into a Variant that can be used within Godot. If successfully parsed, use [member data] to retrieve the Variant, and use [code]typeof[/code] 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 [Array]s, numbers, [String]s and even just a boolean. [b]Example[/b] [codeblock] 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())

[/codeblock] Alternatively, you can parse string using the static [method parse_string] method, but it doesn't allow to handle errors. [codeblock] var data = JSON.parse_string(json_string) # Returns null if parsing failed. [/codeblock] [b]Note:[/b] 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 [code]\n[/code] and [code]\t[/code]. - Numbers are parsed using [method 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.

type JSONRPC

type JSONRPC = classdb.JSONRPC

[url=https://www.jsonrpc.org/]JSON-RPC[/url] 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.

type JSONRPCErrorCode

type JSONRPCErrorCode = classdb.JSONRPCErrorCode
const (
	JSONRPCParseError     JSONRPCErrorCode = -32700
	JSONRPCInvalidRequest JSONRPCErrorCode = -32600
	/*A method call was requested but no function of that name existed in the JSONRPC subclass.*/
	JSONRPCMethodNotFound JSONRPCErrorCode = -32601
	JSONRPCInvalidParams  JSONRPCErrorCode = -32602
	JSONRPCInternalError  JSONRPCErrorCode = -32603
)

type JavaClass

type JavaClass = classdb.JavaClass

type JavaScriptObject

type JavaScriptObject = classdb.JavaScriptObject

JavaScriptObject is used to interact with JavaScript objects retrieved or created via [method JavaScriptBridge.get_interface], [method JavaScriptBridge.create_object], or [method JavaScriptBridge.create_callback]. [b]Example:[/b] [codeblock] 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)

[/codeblock] [b]Note:[/b] Only available in the Web platform.

type Joint2D

type Joint2D = classdb.Joint2D

Abstract base class for all joints in 2D physics. 2D joints bind together two physics bodies and apply a constraint.

type Joint3D

type Joint3D = classdb.Joint3D

Abstract base class for all joints in 3D physics. 3D joints bind together two physics bodies and apply a constraint.

type JoyAxis

type JoyAxis = gd.JoyAxis
const (
	/*An invalid game controller axis.*/
	JoyAxisInvalid JoyAxis = -1
	/*Game controller left joystick x-axis.*/
	JoyAxisLeftX JoyAxis = 0
	/*Game controller left joystick y-axis.*/
	JoyAxisLeftY JoyAxis = 1
	/*Game controller right joystick x-axis.*/
	JoyAxisRightX JoyAxis = 2
	/*Game controller right joystick y-axis.*/
	JoyAxisRightY JoyAxis = 3
	/*Game controller left trigger axis.*/
	JoyAxisTriggerLeft JoyAxis = 4
	/*Game controller right trigger axis.*/
	JoyAxisTriggerRight JoyAxis = 5
	/*The number of SDL game controller axes.*/
	JoyAxisSdlMax JoyAxis = 6
	/*The maximum number of game controller axes: OpenVR supports up to 5 Joysticks making a total of 10 axes.*/
	JoyAxisMax JoyAxis = 10
)

type JoyButton

type JoyButton = gd.JoyButton
const (
	/*An invalid game controller button.*/
	JoyButtonInvalid JoyButton = -1
	/*Game controller SDL button A. Corresponds to the bottom action button: Sony Cross, Xbox A, Nintendo B.*/
	JoyButtonA JoyButton = 0
	/*Game controller SDL button B. Corresponds to the right action button: Sony Circle, Xbox B, Nintendo A.*/
	JoyButtonB JoyButton = 1
	/*Game controller SDL button X. Corresponds to the left action button: Sony Square, Xbox X, Nintendo Y.*/
	JoyButtonX JoyButton = 2
	/*Game controller SDL button Y. Corresponds to the top action button: Sony Triangle, Xbox Y, Nintendo X.*/
	JoyButtonY JoyButton = 3
	/*Game controller SDL back button. Corresponds to the Sony Select, Xbox Back, Nintendo - button.*/
	JoyButtonBack JoyButton = 4
	/*Game controller SDL guide button. Corresponds to the Sony PS, Xbox Home button.*/
	JoyButtonGuide JoyButton = 5
	/*Game controller SDL start button. Corresponds to the Sony Options, Xbox Menu, Nintendo + button.*/
	JoyButtonStart JoyButton = 6
	/*Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS button.*/
	JoyButtonLeftStick JoyButton = 7
	/*Game controller SDL right stick button. Corresponds to the Sony R3, Xbox R/RS button.*/
	JoyButtonRightStick JoyButton = 8
	/*Game controller SDL left shoulder button. Corresponds to the Sony L1, Xbox LB button.*/
	JoyButtonLeftShoulder JoyButton = 9
	/*Game controller SDL right shoulder button. Corresponds to the Sony R1, Xbox RB button.*/
	JoyButtonRightShoulder JoyButton = 10
	/*Game controller D-pad up button.*/
	JoyButtonDpadUp JoyButton = 11
	/*Game controller D-pad down button.*/
	JoyButtonDpadDown JoyButton = 12
	/*Game controller D-pad left button.*/
	JoyButtonDpadLeft JoyButton = 13
	/*Game controller D-pad right button.*/
	JoyButtonDpadRight JoyButton = 14
	/*Game controller SDL miscellaneous button. Corresponds to Xbox share button, PS5 microphone button, Nintendo Switch capture button.*/
	JoyButtonMisc1 JoyButton = 15
	/*Game controller SDL paddle 1 button.*/
	JoyButtonPaddle1 JoyButton = 16
	/*Game controller SDL paddle 2 button.*/
	JoyButtonPaddle2 JoyButton = 17
	/*Game controller SDL paddle 3 button.*/
	JoyButtonPaddle3 JoyButton = 18
	/*Game controller SDL paddle 4 button.*/
	JoyButtonPaddle4 JoyButton = 19
	/*Game controller SDL touchpad button.*/
	JoyButtonTouchpad JoyButton = 20
	/*The number of SDL game controller buttons.*/
	JoyButtonSdlMax JoyButton = 21
	/*The maximum number of game controller buttons supported by the engine. The actual limit may be lower on specific platforms:
	  - [b]Android:[/b] Up to 36 buttons.
	  - [b]Linux:[/b] Up to 80 buttons.
	  - [b]Windows[/b] and [b]macOS:[/b] Up to 128 buttons.*/
	JoyButtonMax JoyButton = 128
)

type Key

type Key = gd.Key
const (
	/*Enum value which doesn't correspond to any key. This is used to initialize [enum Key] properties with a generic state.*/
	KeyNone Key = 0
	/*Keycodes with this bit applied are non-printable.*/
	KeySpecial Key = 4194304
	/*Escape key.*/
	KeyEscape Key = 4194305
	/*Tab key.*/
	KeyTab Key = 4194306
	/*Shift + Tab key.*/
	KeyBacktab Key = 4194307
	/*Backspace key.*/
	KeyBackspace Key = 4194308
	/*Return key (on the main keyboard).*/
	KeyEnter Key = 4194309
	/*Enter key on the numeric keypad.*/
	KeyKpEnter Key = 4194310
	/*Insert key.*/
	KeyInsert Key = 4194311
	/*Delete key.*/
	KeyDelete Key = 4194312
	/*Pause key.*/
	KeyPause Key = 4194313
	/*Print Screen key.*/
	KeyPrint Key = 4194314
	/*System Request key.*/
	KeySysreq Key = 4194315
	/*Clear key.*/
	KeyClear Key = 4194316
	/*Home key.*/
	KeyHome Key = 4194317
	/*End key.*/
	KeyEnd Key = 4194318
	/*Left arrow key.*/
	KeyLeft Key = 4194319
	/*Up arrow key.*/
	KeyUp Key = 4194320
	/*Right arrow key.*/
	KeyRight Key = 4194321
	/*Down arrow key.*/
	KeyDown Key = 4194322
	/*Page Up key.*/
	KeyPageup Key = 4194323
	/*Page Down key.*/
	KeyPagedown Key = 4194324
	/*Shift key.*/
	KeyShift Key = 4194325
	/*Control key.*/
	KeyCtrl Key = 4194326
	/*Meta key.*/
	KeyMeta Key = 4194327
	/*Alt key.*/
	KeyAlt Key = 4194328
	/*Caps Lock key.*/
	KeyCapslock Key = 4194329
	/*Num Lock key.*/
	KeyNumlock Key = 4194330
	/*Scroll Lock key.*/
	KeyScrolllock Key = 4194331
	/*F1 key.*/
	KeyF1 Key = 4194332
	/*F2 key.*/
	KeyF2 Key = 4194333
	/*F3 key.*/
	KeyF3 Key = 4194334
	/*F4 key.*/
	KeyF4 Key = 4194335
	/*F5 key.*/
	KeyF5 Key = 4194336
	/*F6 key.*/
	KeyF6 Key = 4194337
	/*F7 key.*/
	KeyF7 Key = 4194338
	/*F8 key.*/
	KeyF8 Key = 4194339
	/*F9 key.*/
	KeyF9 Key = 4194340
	/*F10 key.*/
	KeyF10 Key = 4194341
	/*F11 key.*/
	KeyF11 Key = 4194342
	/*F12 key.*/
	KeyF12 Key = 4194343
	/*F13 key.*/
	KeyF13 Key = 4194344
	/*F14 key.*/
	KeyF14 Key = 4194345
	/*F15 key.*/
	KeyF15 Key = 4194346
	/*F16 key.*/
	KeyF16 Key = 4194347
	/*F17 key.*/
	KeyF17 Key = 4194348
	/*F18 key.*/
	KeyF18 Key = 4194349
	/*F19 key.*/
	KeyF19 Key = 4194350
	/*F20 key.*/
	KeyF20 Key = 4194351
	/*F21 key.*/
	KeyF21 Key = 4194352
	/*F22 key.*/
	KeyF22 Key = 4194353
	/*F23 key.*/
	KeyF23 Key = 4194354
	/*F24 key.*/
	KeyF24 Key = 4194355
	/*F25 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF25 Key = 4194356
	/*F26 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF26 Key = 4194357
	/*F27 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF27 Key = 4194358
	/*F28 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF28 Key = 4194359
	/*F29 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF29 Key = 4194360
	/*F30 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF30 Key = 4194361
	/*F31 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF31 Key = 4194362
	/*F32 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF32 Key = 4194363
	/*F33 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF33 Key = 4194364
	/*F34 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF34 Key = 4194365
	/*F35 key. Only supported on macOS and Linux due to a Windows limitation.*/
	KeyF35 Key = 4194366
	/*Multiply (*) key on the numeric keypad.*/
	KeyKpMultiply Key = 4194433
	/*Divide (/) key on the numeric keypad.*/
	KeyKpDivide Key = 4194434
	/*Subtract (-) key on the numeric keypad.*/
	KeyKpSubtract Key = 4194435
	/*Period (.) key on the numeric keypad.*/
	KeyKpPeriod Key = 4194436
	/*Add (+) key on the numeric keypad.*/
	KeyKpAdd Key = 4194437
	/*Number 0 on the numeric keypad.*/
	KeyKp0 Key = 4194438
	/*Number 1 on the numeric keypad.*/
	KeyKp1 Key = 4194439
	/*Number 2 on the numeric keypad.*/
	KeyKp2 Key = 4194440
	/*Number 3 on the numeric keypad.*/
	KeyKp3 Key = 4194441
	/*Number 4 on the numeric keypad.*/
	KeyKp4 Key = 4194442
	/*Number 5 on the numeric keypad.*/
	KeyKp5 Key = 4194443
	/*Number 6 on the numeric keypad.*/
	KeyKp6 Key = 4194444
	/*Number 7 on the numeric keypad.*/
	KeyKp7 Key = 4194445
	/*Number 8 on the numeric keypad.*/
	KeyKp8 Key = 4194446
	/*Number 9 on the numeric keypad.*/
	KeyKp9 Key = 4194447
	/*Context menu key.*/
	KeyMenu Key = 4194370
	/*Hyper key. (On Linux/X11 only).*/
	KeyHyper Key = 4194371
	/*Help key.*/
	KeyHelp Key = 4194373
	/*Media back key. Not to be confused with the Back button on an Android device.*/
	KeyBack Key = 4194376
	/*Media forward key.*/
	KeyForward Key = 4194377
	/*Media stop key.*/
	KeyStop Key = 4194378
	/*Media refresh key.*/
	KeyRefresh Key = 4194379
	/*Volume down key.*/
	KeyVolumedown Key = 4194380
	/*Mute volume key.*/
	KeyVolumemute Key = 4194381
	/*Volume up key.*/
	KeyVolumeup Key = 4194382
	/*Media play key.*/
	KeyMediaplay Key = 4194388
	/*Media stop key.*/
	KeyMediastop Key = 4194389
	/*Previous song key.*/
	KeyMediaprevious Key = 4194390
	/*Next song key.*/
	KeyMedianext Key = 4194391
	/*Media record key.*/
	KeyMediarecord Key = 4194392
	/*Home page key.*/
	KeyHomepage Key = 4194393
	/*Favorites key.*/
	KeyFavorites Key = 4194394
	/*Search key.*/
	KeySearch Key = 4194395
	/*Standby key.*/
	KeyStandby Key = 4194396
	/*Open URL / Launch Browser key.*/
	KeyOpenurl Key = 4194397
	/*Launch Mail key.*/
	KeyLaunchmail Key = 4194398
	/*Launch Media key.*/
	KeyLaunchmedia Key = 4194399
	/*Launch Shortcut 0 key.*/
	KeyLaunch0 Key = 4194400
	/*Launch Shortcut 1 key.*/
	KeyLaunch1 Key = 4194401
	/*Launch Shortcut 2 key.*/
	KeyLaunch2 Key = 4194402
	/*Launch Shortcut 3 key.*/
	KeyLaunch3 Key = 4194403
	/*Launch Shortcut 4 key.*/
	KeyLaunch4 Key = 4194404
	/*Launch Shortcut 5 key.*/
	KeyLaunch5 Key = 4194405
	/*Launch Shortcut 6 key.*/
	KeyLaunch6 Key = 4194406
	/*Launch Shortcut 7 key.*/
	KeyLaunch7 Key = 4194407
	/*Launch Shortcut 8 key.*/
	KeyLaunch8 Key = 4194408
	/*Launch Shortcut 9 key.*/
	KeyLaunch9 Key = 4194409
	/*Launch Shortcut A key.*/
	KeyLauncha Key = 4194410
	/*Launch Shortcut B key.*/
	KeyLaunchb Key = 4194411
	/*Launch Shortcut C key.*/
	KeyLaunchc Key = 4194412
	/*Launch Shortcut D key.*/
	KeyLaunchd Key = 4194413
	/*Launch Shortcut E key.*/
	KeyLaunche Key = 4194414
	/*Launch Shortcut F key.*/
	KeyLaunchf Key = 4194415
	/*"Globe" key on Mac / iPad keyboard.*/
	KeyGlobe Key = 4194416
	/*"On-screen keyboard" key on iPad keyboard.*/
	KeyKeyboard Key = 4194417
	/*英数 key on Mac keyboard.*/
	KeyJisEisu Key = 4194418
	/*かな key on Mac keyboard.*/
	KeyJisKana Key = 4194419
	/*Unknown key.*/
	KeyUnknown Key = 8388607
	/*Space key.*/
	KeySpace Key = 32
	/*! key.*/
	KeyExclam Key = 33
	/*" key.*/
	KeyQuotedbl Key = 34
	/*# key.*/
	KeyNumbersign Key = 35
	/*$ key.*/
	KeyDollar Key = 36
	/*% key.*/
	KeyPercent Key = 37
	/*& key.*/
	KeyAmpersand Key = 38
	/*' key.*/
	KeyApostrophe Key = 39
	/*( key.*/
	KeyParenleft Key = 40
	/*) key.*/
	KeyParenright Key = 41
	/** key.*/
	KeyAsterisk Key = 42
	/*+ key.*/
	KeyPlus Key = 43
	/*, key.*/
	KeyComma Key = 44
	/*- key.*/
	KeyMinus Key = 45
	/*. key.*/
	KeyPeriod Key = 46
	/*/ key.*/
	KeySlash Key = 47
	/*Number 0 key.*/
	Key0 Key = 48
	/*Number 1 key.*/
	Key1 Key = 49
	/*Number 2 key.*/
	Key2 Key = 50
	/*Number 3 key.*/
	Key3 Key = 51
	/*Number 4 key.*/
	Key4 Key = 52
	/*Number 5 key.*/
	Key5 Key = 53
	/*Number 6 key.*/
	Key6 Key = 54
	/*Number 7 key.*/
	Key7 Key = 55
	/*Number 8 key.*/
	Key8 Key = 56
	/*Number 9 key.*/
	Key9 Key = 57
	/*: key.*/
	KeyColon Key = 58
	/*; key.*/
	KeySemicolon Key = 59
	/*< key.*/
	KeyLess Key = 60
	/*= key.*/
	KeyEqual Key = 61
	/*> key.*/
	KeyGreater Key = 62
	/*? key.*/
	KeyQuestion Key = 63
	/*@ key.*/
	KeyAt Key = 64
	/*A key.*/
	KeyA Key = 65
	/*B key.*/
	KeyB Key = 66
	/*C key.*/
	KeyC Key = 67
	/*D key.*/
	KeyD Key = 68
	/*E key.*/
	KeyE Key = 69
	/*F key.*/
	KeyF Key = 70
	/*G key.*/
	KeyG Key = 71
	/*H key.*/
	KeyH Key = 72
	/*I key.*/
	KeyI Key = 73
	/*J key.*/
	KeyJ Key = 74
	/*K key.*/
	KeyK Key = 75
	/*L key.*/
	KeyL Key = 76
	/*M key.*/
	KeyM Key = 77
	/*N key.*/
	KeyN Key = 78
	/*O key.*/
	KeyO Key = 79
	/*P key.*/
	KeyP Key = 80
	/*Q key.*/
	KeyQ Key = 81
	/*R key.*/
	KeyR Key = 82
	/*S key.*/
	KeyS Key = 83
	/*T key.*/
	KeyT Key = 84
	/*U key.*/
	KeyU Key = 85
	/*V key.*/
	KeyV Key = 86
	/*W key.*/
	KeyW Key = 87
	/*X key.*/
	KeyX Key = 88
	/*Y key.*/
	KeyY Key = 89
	/*Z key.*/
	KeyZ Key = 90
	/*[ key.*/
	KeyBracketleft Key = 91
	/*\ key.*/
	KeyBackslash Key = 92
	/*] key.*/
	KeyBracketright Key = 93
	/*^ key.*/
	KeyAsciicircum Key = 94
	/*_ key.*/
	KeyUnderscore Key = 95
	/*` key.*/
	KeyQuoteleft Key = 96
	/*{ key.*/
	KeyBraceleft Key = 123
	/*| key.*/
	KeyBar Key = 124
	/*} key.*/
	KeyBraceright Key = 125
	/*~ key.*/
	KeyAsciitilde Key = 126
	/*¥ key.*/
	KeyYen Key = 165
	/*§ key.*/
	KeySection Key = 167
)

type KeyModifierMask

type KeyModifierMask = gd.KeyModifierMask
const (
	/*Key Code mask.*/
	KeyCodeMask KeyModifierMask = 8388607
	/*Modifier key mask.*/
	KeyModifierMaskDefault KeyModifierMask = 532676608
	/*Automatically remapped to [constant KEY_META] on macOS and [constant KEY_CTRL] on other platforms, this mask is never set in the actual events, and should be used for key mapping only.*/
	KeyMaskCmdOrCtrl KeyModifierMask = 16777216
	/*Shift key mask.*/
	KeyMaskShift KeyModifierMask = 33554432
	/*Alt or Option (on macOS) key mask.*/
	KeyMaskAlt KeyModifierMask = 67108864
	/*Command (on macOS) or Meta/Windows key mask.*/
	KeyMaskMeta KeyModifierMask = 134217728
	/*Control key mask.*/
	KeyMaskCtrl KeyModifierMask = 268435456
	/*Keypad key mask.*/
	KeyMaskKpad KeyModifierMask = 536870912
	/*Group Switch key mask.*/
	KeyMaskGroupSwitch KeyModifierMask = 1073741824
)

type KinematicCollision2D

type KinematicCollision2D = classdb.KinematicCollision2D

Holds collision data from the movement of a PhysicsBody2D, usually from [method PhysicsBody2D.move_and_collide]. 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.

type KinematicCollision3D

type KinematicCollision3D = classdb.KinematicCollision3D

Holds collision data from the movement of a PhysicsBody3D, usually from [method PhysicsBody3D.move_and_collide]. 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.

type Label

type Label = classdb.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.

type Label3D

type Label3D = classdb.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.

type Label3DAlphaCutMode

type Label3DAlphaCutMode = classdb.Label3DAlphaCutMode
const (
	/*This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping. [member GeometryInstance3D.cast_shadow] has no effect when this transparency mode is used; the [Label3D] will never cast shadows.*/
	Label3DAlphaCutDisabled Label3DAlphaCutMode = 0
	/*This mode only allows fully transparent or fully opaque pixels. Harsh edges will be visible unless some form of screen-space antialiasing is enabled (see [member ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa]). This mode is also known as [i]alpha testing[/i] or [i]1-bit transparency[/i].
	  [b]Note:[/b] This mode might have issues with anti-aliased fonts and outlines, try adjusting [member alpha_scissor_threshold] or using MSDF font.
	  [b]Note:[/b] When using text with overlapping glyphs (e.g., cursive scripts), this mode might have transparency sorting issues between the main text and the outline.*/
	Label3DAlphaCutDiscard Label3DAlphaCutMode = 1
	/*This mode draws fully opaque pixels in the depth prepass. This is slower than [constant ALPHA_CUT_DISABLED] or [constant ALPHA_CUT_DISCARD], but it allows displaying translucent areas and smooth edges while using proper sorting.
	  [b]Note:[/b] When using text with overlapping glyphs (e.g., cursive scripts), this mode might have transparency sorting issues between the main text and the outline.*/
	Label3DAlphaCutOpaquePrepass Label3DAlphaCutMode = 2
	/*This mode draws cuts off all values below a spatially-deterministic threshold, the rest will remain opaque.*/
	Label3DAlphaCutHash Label3DAlphaCutMode = 3
)

type Label3DDrawFlags

type Label3DDrawFlags = classdb.Label3DDrawFlags
const (
	/*If set, lights in the environment affect the label.*/
	Label3DFlagShaded Label3DDrawFlags = 0
	/*If set, text can be seen from the back as well. If not, the text is invisible when looking at it from behind.*/
	Label3DFlagDoubleSided Label3DDrawFlags = 1
	/*Disables the depth test, so this object is drawn on top of all others. However, objects drawn after it in the draw order may cover it.*/
	Label3DFlagDisableDepthTest Label3DDrawFlags = 2
	/*Label is scaled by depth so that it always appears the same size on screen.*/
	Label3DFlagFixedSize Label3DDrawFlags = 3
	/*Represents the size of the [enum DrawFlags] enum.*/
	Label3DFlagMax Label3DDrawFlags = 4
)

type LabelSettings

type LabelSettings = classdb.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 [member Control.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.

type Light2D

type Light2D = classdb.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).

type Light2DBlendMode

type Light2DBlendMode = classdb.Light2DBlendMode
const (
	/*Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behavior of a light.*/
	Light2DBlendModeAdd Light2DBlendMode = 0
	/*Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect.*/
	Light2DBlendModeSub Light2DBlendMode = 1
	/*Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation.*/
	Light2DBlendModeMix Light2DBlendMode = 2
)

type Light2DShadowFilter

type Light2DShadowFilter = classdb.Light2DShadowFilter
const (
	/*No filter applies to the shadow map. This provides hard shadow edges and is the fastest to render. See [member shadow_filter].*/
	Light2DShadowFilterNone Light2DShadowFilter = 0
	/*Percentage closer filtering (5 samples) applies to the shadow map. This is slower compared to hard shadow rendering. See [member shadow_filter].*/
	Light2DShadowFilterPcf5 Light2DShadowFilter = 1
	/*Percentage closer filtering (13 samples) applies to the shadow map. This is the slowest shadow filtering mode, and should be used sparingly. See [member shadow_filter].*/
	Light2DShadowFilterPcf13 Light2DShadowFilter = 2
)

type Light3D

type Light3D = classdb.Light3D

Light3D is the [i]abstract[/i] 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.

type Light3DBakeMode

type Light3DBakeMode = classdb.Light3DBakeMode
const (
	/*Light is ignored when baking. This is the fastest mode, but the light will be taken into account when baking global illumination. This mode should generally be used for dynamic lights that change quickly, as the effect of global illumination is less noticeable on those lights.
	  [b]Note:[/b] Hiding a light does [i]not[/i] affect baking [LightmapGI]. Hiding a light will still affect baking [VoxelGI] and SDFGI (see [member Environment.sdfgi_enabled).*/
	Light3DBakeDisabled Light3DBakeMode = 0
	/*Light is taken into account in static baking ([VoxelGI], [LightmapGI], SDFGI ([member Environment.sdfgi_enabled])). The light can be moved around or modified, but its global illumination will not update in real-time. This is suitable for subtle changes (such as flickering torches), but generally not large changes such as toggling a light on and off.
	  [b]Note:[/b] The light is not baked in [LightmapGI] if [member editor_only] is [code]true[/code].*/
	Light3DBakeStatic Light3DBakeMode = 1
	/*Light is taken into account in dynamic baking ([VoxelGI] and SDFGI ([member Environment.sdfgi_enabled]) only). The light can be moved around or modified with global illumination updating in real-time. The light's global illumination appearance will be slightly different compared to [constant BAKE_STATIC]. This has a greater performance cost compared to [constant BAKE_STATIC]. When using SDFGI, the update speed of dynamic lights is affected by [member ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights].*/
	Light3DBakeDynamic Light3DBakeMode = 2
)

type Light3DParam

type Light3DParam = classdb.Light3DParam
const (
	/*Constant for accessing [member light_energy].*/
	Light3DParamEnergy Light3DParam = 0
	/*Constant for accessing [member light_indirect_energy].*/
	Light3DParamIndirectEnergy Light3DParam = 1
	/*Constant for accessing [member light_volumetric_fog_energy].*/
	Light3DParamVolumetricFogEnergy Light3DParam = 2
	/*Constant for accessing [member light_specular].*/
	Light3DParamSpecular Light3DParam = 3
	/*Constant for accessing [member OmniLight3D.omni_range] or [member SpotLight3D.spot_range].*/
	Light3DParamRange Light3DParam = 4
	/*Constant for accessing [member light_size].*/
	Light3DParamSize Light3DParam = 5
	/*Constant for accessing [member OmniLight3D.omni_attenuation] or [member SpotLight3D.spot_attenuation].*/
	Light3DParamAttenuation Light3DParam = 6
	/*Constant for accessing [member SpotLight3D.spot_angle].*/
	Light3DParamSpotAngle Light3DParam = 7
	/*Constant for accessing [member SpotLight3D.spot_angle_attenuation].*/
	Light3DParamSpotAttenuation Light3DParam = 8
	/*Constant for accessing [member DirectionalLight3D.directional_shadow_max_distance].*/
	Light3DParamShadowMaxDistance Light3DParam = 9
	/*Constant for accessing [member DirectionalLight3D.directional_shadow_split_1].*/
	Light3DParamShadowSplit1Offset Light3DParam = 10
	/*Constant for accessing [member DirectionalLight3D.directional_shadow_split_2].*/
	Light3DParamShadowSplit2Offset Light3DParam = 11
	/*Constant for accessing [member DirectionalLight3D.directional_shadow_split_3].*/
	Light3DParamShadowSplit3Offset Light3DParam = 12
	/*Constant for accessing [member DirectionalLight3D.directional_shadow_fade_start].*/
	Light3DParamShadowFadeStart Light3DParam = 13
	/*Constant for accessing [member shadow_normal_bias].*/
	Light3DParamShadowNormalBias Light3DParam = 14
	/*Constant for accessing [member shadow_bias].*/
	Light3DParamShadowBias Light3DParam = 15
	/*Constant for accessing [member DirectionalLight3D.directional_shadow_pancake_size].*/
	Light3DParamShadowPancakeSize Light3DParam = 16
	/*Constant for accessing [member shadow_opacity].*/
	Light3DParamShadowOpacity Light3DParam = 17
	/*Constant for accessing [member shadow_blur].*/
	Light3DParamShadowBlur Light3DParam = 18
	/*Constant for accessing [member shadow_transmittance_bias].*/
	Light3DParamTransmittanceBias Light3DParam = 19
	/*Constant for accessing [member light_intensity_lumens] and [member light_intensity_lux]. Only used when [member ProjectSettings.rendering/lights_and_shadows/use_physical_light_units] is [code]true[/code].*/
	Light3DParamIntensity Light3DParam = 20
	/*Represents the size of the [enum Param] enum.*/
	Light3DParamMax Light3DParam = 21
)

type LightOccluder2D

type LightOccluder2D = classdb.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.

type LightmapGI

type LightmapGI = classdb.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 [member directional] is enabled. Dynamic objects can receive indirect lighting thanks to [i]light probes[/i], which can be automatically placed by setting [member generate_probes_subdiv] to a value other than [constant GENERATE_PROBES_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. [b]Procedural generation:[/b] 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 [member Environment.sdfgi_enabled]). [b]Performance:[/b] LightmapGI provides the best possible run-time performance for global illumination. It is suitable for low-end hardware including integrated graphics and mobile devices. [b]Note:[/b] Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again. [b]Note:[/b] Lightmap baking on [CSGShape3D]s and [PrimitiveMesh]es is not supported, as these cannot store UV2 data required for baking. [b]Note:[/b] 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).

type LightmapGIBakeError

type LightmapGIBakeError = classdb.LightmapGIBakeError
const (
	/*Lightmap baking was successful.*/
	LightmapGIBakeErrorOk LightmapGIBakeError = 0
	/*Lightmap baking failed because the root node for the edited scene could not be accessed.*/
	LightmapGIBakeErrorNoSceneRoot LightmapGIBakeError = 1
	/*Lightmap baking failed as the lightmap data resource is embedded in a foreign resource.*/
	LightmapGIBakeErrorForeignData LightmapGIBakeError = 2
	/*Lightmap baking failed as there is no lightmapper available in this Godot build.*/
	LightmapGIBakeErrorNoLightmapper LightmapGIBakeError = 3
	/*Lightmap baking failed as the [LightmapGIData] save path isn't configured in the resource.*/
	LightmapGIBakeErrorNoSavePath LightmapGIBakeError = 4
	/*Lightmap baking failed as there are no meshes whose [member GeometryInstance3D.gi_mode] is [constant GeometryInstance3D.GI_MODE_STATIC] and with valid UV2 mapping in the current scene. You may need to select 3D scenes in the Import dock and change their global illumination mode accordingly.*/
	LightmapGIBakeErrorNoMeshes LightmapGIBakeError = 5
	/*Lightmap baking failed as the lightmapper failed to analyze some of the meshes marked as static for baking.*/
	LightmapGIBakeErrorMeshesInvalid LightmapGIBakeError = 6
	/*Lightmap baking failed as the resulting image couldn't be saved or imported by Godot after it was saved.*/
	LightmapGIBakeErrorCantCreateImage LightmapGIBakeError = 7
	/*The user aborted the lightmap baking operation (typically by clicking the [b]Cancel[/b] button in the progress dialog).*/
	LightmapGIBakeErrorUserAborted LightmapGIBakeError = 8
	/*Lightmap baking failed as the maximum texture size is too small to fit some of the meshes marked for baking.*/
	LightmapGIBakeErrorTextureSizeTooSmall LightmapGIBakeError = 9
)

type LightmapGIBakeQuality

type LightmapGIBakeQuality = classdb.LightmapGIBakeQuality
const (
	/*Low bake quality (fastest bake times). The quality of this preset can be adjusted by changing [member ProjectSettings.rendering/lightmapping/bake_quality/low_quality_ray_count] and [member ProjectSettings.rendering/lightmapping/bake_quality/low_quality_probe_ray_count].*/
	LightmapGIBakeQualityLow LightmapGIBakeQuality = 0
	/*Medium bake quality (fast bake times). The quality of this preset can be adjusted by changing [member ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_ray_count] and [member ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_probe_ray_count].*/
	LightmapGIBakeQualityMedium LightmapGIBakeQuality = 1
	/*High bake quality (slow bake times). The quality of this preset can be adjusted by changing [member ProjectSettings.rendering/lightmapping/bake_quality/high_quality_ray_count] and [member ProjectSettings.rendering/lightmapping/bake_quality/high_quality_probe_ray_count].*/
	LightmapGIBakeQualityHigh LightmapGIBakeQuality = 2
	/*Highest bake quality (slowest bake times). The quality of this preset can be adjusted by changing [member ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_ray_count] and [member ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count].*/
	LightmapGIBakeQualityUltra LightmapGIBakeQuality = 3
)

type LightmapGIData

type LightmapGIData = classdb.LightmapGIData

LightmapGIData contains baked lightmap and dynamic object probe data for LightmapGI. It is replaced every time lightmaps are baked in LightmapGI.

type LightmapGIEnvironmentMode

type LightmapGIEnvironmentMode = classdb.LightmapGIEnvironmentMode
const (
	/*Ignore environment lighting when baking lightmaps.*/
	LightmapGIEnvironmentModeDisabled LightmapGIEnvironmentMode = 0
	/*Use the scene's environment lighting when baking lightmaps.
	  [b]Note:[/b] If baking lightmaps in a scene with no [WorldEnvironment] node, this will act like [constant ENVIRONMENT_MODE_DISABLED]. The editor's preview sky and sun is [i]not[/i] taken into account by [LightmapGI] when baking lightmaps.*/
	LightmapGIEnvironmentModeScene LightmapGIEnvironmentMode = 1
	/*Use [member environment_custom_sky] as a source of environment lighting when baking lightmaps.*/
	LightmapGIEnvironmentModeCustomSky LightmapGIEnvironmentMode = 2
	/*Use [member environment_custom_color] multiplied by [member environment_custom_energy] as a constant source of environment lighting when baking lightmaps.*/
	LightmapGIEnvironmentModeCustomColor LightmapGIEnvironmentMode = 3
)

type LightmapGIGenerateProbes

type LightmapGIGenerateProbes = classdb.LightmapGIGenerateProbes
const (
	/*Don't generate lightmap probes for lighting dynamic objects.*/
	LightmapGIGenerateProbesDisabled LightmapGIGenerateProbes = 0
	/*Lowest level of subdivision (fastest bake times, smallest file sizes).*/
	LightmapGIGenerateProbesSubdiv4 LightmapGIGenerateProbes = 1
	/*Low level of subdivision (fast bake times, small file sizes).*/
	LightmapGIGenerateProbesSubdiv8 LightmapGIGenerateProbes = 2
	/*High level of subdivision (slow bake times, large file sizes).*/
	LightmapGIGenerateProbesSubdiv16 LightmapGIGenerateProbes = 3
	/*Highest level of subdivision (slowest bake times, largest file sizes).*/
	LightmapGIGenerateProbesSubdiv32 LightmapGIGenerateProbes = 4
)

type LightmapProbe

type LightmapProbe = classdb.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 [member LightmapGI.generate_probes_subdiv] to a value other than [constant LightmapGI.GENERATE_PROBES_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.

type Lightmapper

type Lightmapper = classdb.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.

type LightmapperRD

type LightmapperRD = classdb.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. [b]Note:[/b] Only usable when using the Vulkan backend (Forward+ or Mobile), not OpenGL.

type Line2D

type Line2D = classdb.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. [b]Warning:[/b] 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. [b]Note:[/b] Line2D is drawn using a 2D mesh.

type Line2DLineCapMode

type Line2DLineCapMode = classdb.Line2DLineCapMode
const (
	/*Draws no line cap.*/
	Line2DLineCapNone Line2DLineCapMode = 0
	/*Draws the line cap as a box, slightly extending the first/last segment.*/
	Line2DLineCapBox Line2DLineCapMode = 1
	/*Draws the line cap as a semicircle attached to the first/last segment.*/
	Line2DLineCapRound Line2DLineCapMode = 2
)

type Line2DLineJointMode

type Line2DLineJointMode = classdb.Line2DLineJointMode
const (
	/*Makes the polyline's joints pointy, connecting the sides of the two segments by extending them until they intersect. If the rotation of a joint is too big (based on [member sharp_limit]), the joint falls back to [constant LINE_JOINT_BEVEL] to prevent very long miters.*/
	Line2DLineJointSharp Line2DLineJointMode = 0
	/*Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line.*/
	Line2DLineJointBevel Line2DLineJointMode = 1
	/*Makes the polyline's joints rounded, connecting the sides of the two segments with an arc. The detail of this arc depends on [member round_precision].*/
	Line2DLineJointRound Line2DLineJointMode = 2
)

type Line2DLineTextureMode

type Line2DLineTextureMode = classdb.Line2DLineTextureMode
const (
	/*Takes the left pixels of the texture and renders them over the whole polyline.*/
	Line2DLineTextureNone Line2DLineTextureMode = 0
	/*Tiles the texture over the polyline. [member CanvasItem.texture_repeat] of the [Line2D] node must be [constant CanvasItem.TEXTURE_REPEAT_ENABLED] or [constant CanvasItem.TEXTURE_REPEAT_MIRROR] for it to work properly.*/
	Line2DLineTextureTile Line2DLineTextureMode = 1
	/*Stretches the texture across the polyline. [member CanvasItem.texture_repeat] of the [Line2D] node must be [constant CanvasItem.TEXTURE_REPEAT_DISABLED] for best results.*/
	Line2DLineTextureStretch Line2DLineTextureMode = 2
)

type LineEdit

type LineEdit = classdb.LineEdit

LineEdit provides an input field for editing a single line of text. It features many built-in shortcuts that are always available ([kbd]Ctrl[/kbd] here maps to [kbd]Cmd[/kbd] on macOS): - [kbd]Ctrl + C[/kbd]: Copy - [kbd]Ctrl + X[/kbd]: Cut - [kbd]Ctrl + V[/kbd] or [kbd]Ctrl + Y[/kbd]: Paste/"yank" - [kbd]Ctrl + Z[/kbd]: Undo - [kbd]Ctrl + ~[/kbd]: Swap input direction. - [kbd]Ctrl + Shift + Z[/kbd]: Redo - [kbd]Ctrl + U[/kbd]: Delete text from the caret position to the beginning of the line - [kbd]Ctrl + K[/kbd]: Delete text from the caret position to the end of the line - [kbd]Ctrl + A[/kbd]: Select all text - [kbd]Up Arrow[/kbd]/[kbd]Down Arrow[/kbd]: Move the caret to the beginning/end of the line On macOS, some extra keyboard shortcuts are available: - [kbd]Cmd + F[/kbd]: Same as [kbd]Right Arrow[/kbd], move the caret one character right - [kbd]Cmd + B[/kbd]: Same as [kbd]Left Arrow[/kbd], move the caret one character left - [kbd]Cmd + P[/kbd]: Same as [kbd]Up Arrow[/kbd], move the caret to the previous line - [kbd]Cmd + N[/kbd]: Same as [kbd]Down Arrow[/kbd], move the caret to the next line - [kbd]Cmd + D[/kbd]: Same as [kbd]Delete[/kbd], delete the character on the right side of caret - [kbd]Cmd + H[/kbd]: Same as [kbd]Backspace[/kbd], delete the character on the left side of the caret - [kbd]Cmd + A[/kbd]: Same as [kbd]Home[/kbd], move the caret to the beginning of the line - [kbd]Cmd + E[/kbd]: Same as [kbd]End[/kbd], move the caret to the end of the line - [kbd]Cmd + Left Arrow[/kbd]: Same as [kbd]Home[/kbd], move the caret to the beginning of the line - [kbd]Cmd + Right Arrow[/kbd]: Same as [kbd]End[/kbd], move the caret to the end of the line

type LineEditMenuItems

type LineEditMenuItems = classdb.LineEditMenuItems
const (
	/*Cuts (copies and clears) the selected text.*/
	LineEditMenuCut LineEditMenuItems = 0
	/*Copies the selected text.*/
	LineEditMenuCopy LineEditMenuItems = 1
	/*Pastes the clipboard text over the selected text (or at the caret's position).
	  Non-printable escape characters are automatically stripped from the OS clipboard via [method String.strip_escapes].*/
	LineEditMenuPaste LineEditMenuItems = 2
	/*Erases the whole [LineEdit] text.*/
	LineEditMenuClear LineEditMenuItems = 3
	/*Selects the whole [LineEdit] text.*/
	LineEditMenuSelectAll LineEditMenuItems = 4
	/*Undoes the previous action.*/
	LineEditMenuUndo LineEditMenuItems = 5
	/*Reverse the last undo action.*/
	LineEditMenuRedo LineEditMenuItems = 6
	/*ID of "Text Writing Direction" submenu.*/
	LineEditMenuSubmenuTextDir LineEditMenuItems = 7
	/*Sets text direction to inherited.*/
	LineEditMenuDirInherited LineEditMenuItems = 8
	/*Sets text direction to automatic.*/
	LineEditMenuDirAuto LineEditMenuItems = 9
	/*Sets text direction to left-to-right.*/
	LineEditMenuDirLtr LineEditMenuItems = 10
	/*Sets text direction to right-to-left.*/
	LineEditMenuDirRtl LineEditMenuItems = 11
	/*Toggles control character display.*/
	LineEditMenuDisplayUcc LineEditMenuItems = 12
	/*ID of "Insert Control Character" submenu.*/
	LineEditMenuSubmenuInsertUcc LineEditMenuItems = 13
	/*Inserts left-to-right mark (LRM) character.*/
	LineEditMenuInsertLrm LineEditMenuItems = 14
	/*Inserts right-to-left mark (RLM) character.*/
	LineEditMenuInsertRlm LineEditMenuItems = 15
	/*Inserts start of left-to-right embedding (LRE) character.*/
	LineEditMenuInsertLre LineEditMenuItems = 16
	/*Inserts start of right-to-left embedding (RLE) character.*/
	LineEditMenuInsertRle LineEditMenuItems = 17
	/*Inserts start of left-to-right override (LRO) character.*/
	LineEditMenuInsertLro LineEditMenuItems = 18
	/*Inserts start of right-to-left override (RLO) character.*/
	LineEditMenuInsertRlo LineEditMenuItems = 19
	/*Inserts pop direction formatting (PDF) character.*/
	LineEditMenuInsertPdf LineEditMenuItems = 20
	/*Inserts Arabic letter mark (ALM) character.*/
	LineEditMenuInsertAlm LineEditMenuItems = 21
	/*Inserts left-to-right isolate (LRI) character.*/
	LineEditMenuInsertLri LineEditMenuItems = 22
	/*Inserts right-to-left isolate (RLI) character.*/
	LineEditMenuInsertRli LineEditMenuItems = 23
	/*Inserts first strong isolate (FSI) character.*/
	LineEditMenuInsertFsi LineEditMenuItems = 24
	/*Inserts pop direction isolate (PDI) character.*/
	LineEditMenuInsertPdi LineEditMenuItems = 25
	/*Inserts zero width joiner (ZWJ) character.*/
	LineEditMenuInsertZwj LineEditMenuItems = 26
	/*Inserts zero width non-joiner (ZWNJ) character.*/
	LineEditMenuInsertZwnj LineEditMenuItems = 27
	/*Inserts word joiner (WJ) character.*/
	LineEditMenuInsertWj LineEditMenuItems = 28
	/*Inserts soft hyphen (SHY) character.*/
	LineEditMenuInsertShy LineEditMenuItems = 29
	/*Represents the size of the [enum MenuItems] enum.*/
	LineEditMenuMax LineEditMenuItems = 30
)

type LineEditVirtualKeyboardType

type LineEditVirtualKeyboardType = classdb.LineEditVirtualKeyboardType
const (
	/*Default text virtual keyboard.*/
	LineEditKeyboardTypeDefault LineEditVirtualKeyboardType = 0
	/*Multiline virtual keyboard.*/
	LineEditKeyboardTypeMultiline LineEditVirtualKeyboardType = 1
	/*Virtual number keypad, useful for PIN entry.*/
	LineEditKeyboardTypeNumber LineEditVirtualKeyboardType = 2
	/*Virtual number keypad, useful for entering fractional numbers.*/
	LineEditKeyboardTypeNumberDecimal LineEditVirtualKeyboardType = 3
	/*Virtual phone number keypad.*/
	LineEditKeyboardTypePhone LineEditVirtualKeyboardType = 4
	/*Virtual keyboard with additional keys to assist with typing email addresses.*/
	LineEditKeyboardTypeEmailAddress LineEditVirtualKeyboardType = 5
	/*Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization.
	  [b]Note:[/b] This is not supported on Web. Instead, this behaves identically to [constant KEYBOARD_TYPE_DEFAULT].*/
	LineEditKeyboardTypePassword LineEditVirtualKeyboardType = 6
	/*Virtual keyboard with additional keys to assist with typing URLs.*/
	LineEditKeyboardTypeUrl LineEditVirtualKeyboardType = 7
)

type LinkButton

type LinkButton = classdb.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.

type LinkButtonUnderlineMode

type LinkButtonUnderlineMode = classdb.LinkButtonUnderlineMode
const (
	/*The LinkButton will always show an underline at the bottom of its text.*/
	LinkButtonUnderlineModeAlways LinkButtonUnderlineMode = 0
	/*The LinkButton will show an underline at the bottom of its text when the mouse cursor is over it.*/
	LinkButtonUnderlineModeOnHover LinkButtonUnderlineMode = 1
	/*The LinkButton will never show an underline at the bottom of its text.*/
	LinkButtonUnderlineModeNever LinkButtonUnderlineMode = 2
)

type MIDIMessage

type MIDIMessage = gd.MIDIMessage
const (
	/*Does not correspond to any MIDI message. This is the default value of [member InputEventMIDI.message].*/
	MidiMessageNone MIDIMessage = 0
	/*MIDI message sent when a note is released.
	  [b]Note:[/b] Not all MIDI devices send this message; some may send [constant MIDI_MESSAGE_NOTE_ON] with [member InputEventMIDI.velocity] set to [code]0[/code].*/
	MidiMessageNoteOff MIDIMessage = 8
	/*MIDI message sent when a note is pressed.*/
	MidiMessageNoteOn MIDIMessage = 9
	/*MIDI message sent to indicate a change in pressure while a note is being pressed down, also called aftertouch.*/
	MidiMessageAftertouch MIDIMessage = 10
	/*MIDI message sent when a controller value changes. In a MIDI device, a controller is any input that doesn't play notes. These may include sliders for volume, balance, and panning, as well as switches and pedals. See the [url=https://en.wikipedia.org/wiki/General_MIDI#Controller_events]General MIDI specification[/url] for a small list.*/
	MidiMessageControlChange MIDIMessage = 11
	/*MIDI message sent when the MIDI device changes its current instrument (also called [i]program[/i] or [i]preset[/i]).*/
	MidiMessageProgramChange MIDIMessage = 12
	/*MIDI message sent to indicate a change in pressure for the whole channel. Some MIDI devices may send this instead of [constant MIDI_MESSAGE_AFTERTOUCH].*/
	MidiMessageChannelPressure MIDIMessage = 13
	/*MIDI message sent when the value of the pitch bender changes, usually a wheel on the MIDI device.*/
	MidiMessagePitchBend MIDIMessage = 14
	/*MIDI system exclusive (SysEx) message. This type of message is not standardized and it's highly dependent on the MIDI device sending it.
	  [b]Note:[/b] Getting this message's data from [InputEventMIDI] is not implemented.*/
	MidiMessageSystemExclusive MIDIMessage = 240
	/*MIDI message sent every quarter frame to keep connected MIDI devices synchronized. Related to [constant MIDI_MESSAGE_TIMING_CLOCK].
	  [b]Note:[/b] Getting this message's data from [InputEventMIDI] is not implemented.*/
	MidiMessageQuarterFrame MIDIMessage = 241
	/*MIDI message sent to jump onto a new position in the current sequence or song.
	  [b]Note:[/b] Getting this message's data from [InputEventMIDI] is not implemented.*/
	MidiMessageSongPositionPointer MIDIMessage = 242
	/*MIDI message sent to select a sequence or song to play.
	  [b]Note:[/b] Getting this message's data from [InputEventMIDI] is not implemented.*/
	MidiMessageSongSelect MIDIMessage = 243
	/*MIDI message sent to request a tuning calibration. Used on analog synthesizers. Most modern MIDI devices do not need this message.*/
	MidiMessageTuneRequest MIDIMessage = 246
	/*MIDI message sent 24 times after [constant MIDI_MESSAGE_QUARTER_FRAME], to keep connected MIDI devices synchronized.*/
	MidiMessageTimingClock MIDIMessage = 248
	/*MIDI message sent to start the current sequence or song from the beginning.*/
	MidiMessageStart MIDIMessage = 250
	/*MIDI message sent to resume from the point the current sequence or song was paused.*/
	MidiMessageContinue MIDIMessage = 251
	/*MIDI message sent to pause the current sequence or song.*/
	MidiMessageStop MIDIMessage = 252
	/*MIDI message sent repeatedly while the MIDI device is idle, to tell the receiver that the connection is alive. Most MIDI devices do not send this message.*/
	MidiMessageActiveSensing MIDIMessage = 254
	/*MIDI message sent to reset a MIDI device to its default state, as if it was just turned on. It should not be sent when the MIDI device is being turned on.*/
	MidiMessageSystemReset MIDIMessage = 255
)

type MainLoop

type MainLoop = classdb.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 MainLoop Script is provided from the command line (with e.g. [code]godot -s my_loop.gd[/code]) or the "Main Loop Type" project setting is overwritten. Here is an example script implementing a simple MainLoop: [codeblocks] [gdscript] class_name CustomMainLoop extends MainLoop

var time_elapsed = 0

func _initialize():

print("Initialized:")
print("  Starting time: %s" % str(time_elapsed))

func _process(delta):

time_elapsed += delta
# Return true to end the main loop.
return Input.get_mouse_button_mask() != 0 || Input.is_key_pressed(KEY_ESCAPE)

func _finalize():

print("Finalized:")
print("  End time: %s" % str(time_elapsed))

[/gdscript] [csharp] 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}");
    }
}

[/csharp] [/codeblocks]

// MainLoop methods that can be overridden by a [Class] that extends it.
type MainLoop interface {
	//Called once during initialization.
	Initialize(godot Context)
	//Called each physics frame with the time since the last physics frame as argument ([param delta], in seconds). Equivalent to [method Node._physics_process].
	//If implemented, the method must return a boolean value. [code]true[/code] ends the main loop, while [code]false[/code] lets it proceed to the next frame.
	PhysicsProcess(godot Context, delta gd.Float) bool
	//Called each process (idle) frame with the time since the last process frame as argument (in seconds). Equivalent to [method Node._process].
	//If implemented, the method must return a boolean value. [code]true[/code] ends the main loop, while [code]false[/code] lets it proceed to the next frame.
	Process(godot Context, delta gd.Float) bool
	//Called before the program exits.
	Finalize(godot Context)
}

type MarginContainer

type MarginContainer = classdb.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 [code]margin_*[/code] theme properties listed below. [b]Note:[/b] The margin sizes are theme overrides, not normal properties. This is an example of how to change them in code: [codeblocks] [gdscript] # This code sample assumes the current script is extending MarginContainer. var margin_value = 100 add_theme_constant_override("margin_top", margin_value) add_theme_constant_override("margin_left", margin_value) add_theme_constant_override("margin_bottom", margin_value) add_theme_constant_override("margin_right", margin_value) [/gdscript] [csharp] // 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); [/csharp] [/codeblocks]

type Marker2D

type Marker2D = classdb.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.

type Marker3D

type Marker3D = classdb.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.

type Material

type Material = classdb.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 methods that can be overridden by a [Class] that extends it.
type Material interface {
	//Only exposed for the purpose of overriding. You cannot call this function directly. Used internally by various editor tools. Used to access the RID of the [Material]'s [Shader].
	GetShaderRid(godot Context) gd.RID
	//Only exposed for the purpose of overriding. You cannot call this function directly. Used internally by various editor tools.
	GetShaderMode(godot Context) ShaderMode
	//Only exposed for the purpose of overriding. You cannot call this function directly. Used internally to determine if [member next_pass] should be shown in the editor or not.
	CanDoNextPass(godot Context) bool
	//Only exposed for the purpose of overriding. You cannot call this function directly. Used internally to determine if [member render_priority] should be shown in the editor or not.
	CanUseRenderPriority(godot Context) bool
}
type MenuBar = classdb.MenuBar

A horizontal menu bar that creates a MenuButton for each PopupMenu child. New items are created by adding [PopupMenu]s to this node.

type MenuButton = classdb.MenuButton

A button that brings up a PopupMenu when clicked. To create new items inside this PopupMenu, use [code]get_popup().add_item("My Item Name")[/code]. You can also create them directly from Godot editor's inspector. See also BaseButton which contains common properties and methods associated with this node.

type Mesh

type Mesh = classdb.Mesh

Mesh is a type of Resource that contains vertex array-based geometry, divided in [i]surfaces[/i]. 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 methods that can be overridden by a [Class] that extends it.
type Mesh interface {
	//Virtual method to override the surface count for a custom class extending [Mesh].
	GetSurfaceCount(godot Context) gd.Int
	//Virtual method to override the surface array length for a custom class extending [Mesh].
	SurfaceGetArrayLen(godot Context, index gd.Int) gd.Int
	//Virtual method to override the surface array index length for a custom class extending [Mesh].
	SurfaceGetArrayIndexLen(godot Context, index gd.Int) gd.Int
	//Virtual method to override the surface arrays for a custom class extending [Mesh].
	SurfaceGetArrays(godot Context, index gd.Int) gd.Array
	//Virtual method to override the blend shape arrays for a custom class extending [Mesh].
	SurfaceGetBlendShapeArrays(godot Context, index gd.Int) gd.ArrayOf[gd.Array]
	//Virtual method to override the surface LODs for a custom class extending [Mesh].
	SurfaceGetLods(godot Context, index gd.Int) gd.Dictionary
	//Virtual method to override the surface format for a custom class extending [Mesh].
	SurfaceGetFormat(godot Context, index gd.Int) gd.Int
	//Virtual method to override the surface primitive type for a custom class extending [Mesh].
	SurfaceGetPrimitiveType(godot Context, index gd.Int) gd.Int
	//Virtual method to override the setting of a [param material] at the given [param index] for a custom class extending [Mesh].
	SurfaceSetMaterial(godot Context, index gd.Int, material Material)
	//Virtual method to override the surface material for a custom class extending [Mesh].
	SurfaceGetMaterial(godot Context, index gd.Int) Material
	//Virtual method to override the number of blend shapes for a custom class extending [Mesh].
	GetBlendShapeCount(godot Context) gd.Int
	//Virtual method to override the retrieval of blend shape names for a custom class extending [Mesh].
	GetBlendShapeName(godot Context, index gd.Int) gd.StringName
	//Virtual method to override the names of blend shapes for a custom class extending [Mesh].
	SetBlendShapeName(godot Context, index gd.Int, name gd.StringName)
	//Virtual method to override the [AABB] for a custom class extending [Mesh].
	GetAabb(godot Context) gd.AABB
}

type MeshArrayCustomFormat

type MeshArrayCustomFormat = classdb.MeshArrayCustomFormat
const (
	/*Indicates this custom channel contains unsigned normalized byte colors from 0 to 1, encoded as [PackedByteArray].*/
	MeshArrayCustomRgba8Unorm MeshArrayCustomFormat = 0
	/*Indicates this custom channel contains signed normalized byte colors from -1 to 1, encoded as [PackedByteArray].*/
	MeshArrayCustomRgba8Snorm MeshArrayCustomFormat = 1
	/*Indicates this custom channel contains half precision float colors, encoded as [PackedByteArray]. Only red and green channels are used.*/
	MeshArrayCustomRgHalf MeshArrayCustomFormat = 2
	/*Indicates this custom channel contains half precision float colors, encoded as [PackedByteArray].*/
	MeshArrayCustomRgbaHalf MeshArrayCustomFormat = 3
	/*Indicates this custom channel contains full float colors, in a [PackedFloat32Array]. Only the red channel is used.*/
	MeshArrayCustomRFloat MeshArrayCustomFormat = 4
	/*Indicates this custom channel contains full float colors, in a [PackedFloat32Array]. Only red and green channels are used.*/
	MeshArrayCustomRgFloat MeshArrayCustomFormat = 5
	/*Indicates this custom channel contains full float colors, in a [PackedFloat32Array]. Only red, green and blue channels are used.*/
	MeshArrayCustomRgbFloat MeshArrayCustomFormat = 6
	/*Indicates this custom channel contains full float colors, in a [PackedFloat32Array].*/
	MeshArrayCustomRgbaFloat MeshArrayCustomFormat = 7
	/*Represents the size of the [enum ArrayCustomFormat] enum.*/
	MeshArrayCustomMax MeshArrayCustomFormat = 8
)

type MeshArrayFormat

type MeshArrayFormat = classdb.MeshArrayFormat
const (
	/*Mesh array contains vertices. All meshes require a vertex array so this should always be present.*/
	MeshArrayFormatVertex MeshArrayFormat = 1
	/*Mesh array contains normals.*/
	MeshArrayFormatNormal MeshArrayFormat = 2
	/*Mesh array contains tangents.*/
	MeshArrayFormatTangent MeshArrayFormat = 4
	/*Mesh array contains colors.*/
	MeshArrayFormatColor MeshArrayFormat = 8
	/*Mesh array contains UVs.*/
	MeshArrayFormatTexUv MeshArrayFormat = 16
	/*Mesh array contains second UV.*/
	MeshArrayFormatTexUv2 MeshArrayFormat = 32
	/*Mesh array contains custom channel index 0.*/
	MeshArrayFormatCustom0 MeshArrayFormat = 64
	/*Mesh array contains custom channel index 1.*/
	MeshArrayFormatCustom1 MeshArrayFormat = 128
	/*Mesh array contains custom channel index 2.*/
	MeshArrayFormatCustom2 MeshArrayFormat = 256
	/*Mesh array contains custom channel index 3.*/
	MeshArrayFormatCustom3 MeshArrayFormat = 512
	/*Mesh array contains bones.*/
	MeshArrayFormatBones MeshArrayFormat = 1024
	/*Mesh array contains bone weights.*/
	MeshArrayFormatWeights MeshArrayFormat = 2048
	/*Mesh array uses indices.*/
	MeshArrayFormatIndex MeshArrayFormat = 4096
	/*Mask of mesh channels permitted in blend shapes.*/
	MeshArrayFormatBlendShapeMask MeshArrayFormat = 7
	/*Shift of first custom channel.*/
	MeshArrayFormatCustomBase MeshArrayFormat = 13
	/*Number of format bits per custom channel. See [enum ArrayCustomFormat].*/
	MeshArrayFormatCustomBits MeshArrayFormat = 3
	/*Amount to shift [enum ArrayCustomFormat] for custom channel index 0.*/
	MeshArrayFormatCustom0Shift MeshArrayFormat = 13
	/*Amount to shift [enum ArrayCustomFormat] for custom channel index 1.*/
	MeshArrayFormatCustom1Shift MeshArrayFormat = 16
	/*Amount to shift [enum ArrayCustomFormat] for custom channel index 2.*/
	MeshArrayFormatCustom2Shift MeshArrayFormat = 19
	/*Amount to shift [enum ArrayCustomFormat] for custom channel index 3.*/
	MeshArrayFormatCustom3Shift MeshArrayFormat = 22
	/*Mask of custom format bits per custom channel. Must be shifted by one of the SHIFT constants. See [enum ArrayCustomFormat].*/
	MeshArrayFormatCustomMask MeshArrayFormat = 7
	/*Shift of first compress flag. Compress flags should be passed to [method ArrayMesh.add_surface_from_arrays] and [method SurfaceTool.commit].*/
	MeshArrayCompressFlagsBase MeshArrayFormat = 25
	/*Flag used to mark that the array contains 2D vertices.*/
	MeshArrayFlagUse2dVertices MeshArrayFormat = 33554432
	/*Flag indices that the mesh data will use [code]GL_DYNAMIC_DRAW[/code] on GLES. Unused on Vulkan.*/
	MeshArrayFlagUseDynamicUpdate MeshArrayFormat = 67108864
	/*Flag used to mark that the mesh contains up to 8 bone influences per vertex. This flag indicates that [constant ARRAY_BONES] and [constant ARRAY_WEIGHTS] elements will have double length.*/
	MeshArrayFlagUse8BoneWeights MeshArrayFormat = 134217728
	/*Flag used to mark that the mesh intentionally contains no vertex array.*/
	MeshArrayFlagUsesEmptyVertexArray MeshArrayFormat = 268435456
	/*Flag used to mark that a mesh is using compressed attributes (vertices, normals, tangents, UVs). When this form of compression is enabled, vertex positions will be packed into an RGBA16UNORM attribute and scaled in the vertex shader. The normal and tangent will be packed into an RG16UNORM representing an axis, and a 16-bit float stored in the A-channel of the vertex. UVs will use 16-bit normalized floats instead of full 32-bit signed floats. When using this compression mode you must use either vertices, normals, and tangents or only vertices. You cannot use normals without tangents. Importers will automatically enable this compression if they can.*/
	MeshArrayFlagCompressAttributes MeshArrayFormat = 536870912
)

type MeshArrayType

type MeshArrayType = classdb.MeshArrayType
const (
	/*[PackedVector3Array], [PackedVector2Array], or [Array] of vertex positions.*/
	MeshArrayVertex MeshArrayType = 0
	/*[PackedVector3Array] of vertex normals.*/
	MeshArrayNormal MeshArrayType = 1
	/*[PackedFloat32Array] of vertex tangents. Each element in groups of 4 floats, first 3 floats determine the tangent, and the last the binormal direction as -1 or 1.*/
	MeshArrayTangent MeshArrayType = 2
	/*[PackedColorArray] of vertex colors.*/
	MeshArrayColor MeshArrayType = 3
	/*[PackedVector2Array] for UV coordinates.*/
	MeshArrayTexUv MeshArrayType = 4
	/*[PackedVector2Array] for second UV coordinates.*/
	MeshArrayTexUv2 MeshArrayType = 5
	/*Contains custom color channel 0. [PackedByteArray] if [code](format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK[/code] is [constant ARRAY_CUSTOM_RGBA8_UNORM], [constant ARRAY_CUSTOM_RGBA8_SNORM], [constant ARRAY_CUSTOM_RG_HALF], or [constant ARRAY_CUSTOM_RGBA_HALF]. [PackedFloat32Array] otherwise.*/
	MeshArrayCustom0 MeshArrayType = 6
	/*Contains custom color channel 1. [PackedByteArray] if [code](format >> Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK[/code] is [constant ARRAY_CUSTOM_RGBA8_UNORM], [constant ARRAY_CUSTOM_RGBA8_SNORM], [constant ARRAY_CUSTOM_RG_HALF], or [constant ARRAY_CUSTOM_RGBA_HALF]. [PackedFloat32Array] otherwise.*/
	MeshArrayCustom1 MeshArrayType = 7
	/*Contains custom color channel 2. [PackedByteArray] if [code](format >> Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK[/code] is [constant ARRAY_CUSTOM_RGBA8_UNORM], [constant ARRAY_CUSTOM_RGBA8_SNORM], [constant ARRAY_CUSTOM_RG_HALF], or [constant ARRAY_CUSTOM_RGBA_HALF]. [PackedFloat32Array] otherwise.*/
	MeshArrayCustom2 MeshArrayType = 8
	/*Contains custom color channel 3. [PackedByteArray] if [code](format >> Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK[/code] is [constant ARRAY_CUSTOM_RGBA8_UNORM], [constant ARRAY_CUSTOM_RGBA8_SNORM], [constant ARRAY_CUSTOM_RG_HALF], or [constant ARRAY_CUSTOM_RGBA_HALF]. [PackedFloat32Array] otherwise.*/
	MeshArrayCustom3 MeshArrayType = 9
	/*[PackedFloat32Array] or [PackedInt32Array] of bone indices. Contains either 4 or 8 numbers per vertex depending on the presence of the [constant ARRAY_FLAG_USE_8_BONE_WEIGHTS] flag.*/
	MeshArrayBones MeshArrayType = 10
	/*[PackedFloat32Array] or [PackedFloat64Array] of bone weights in the range [code]0.0[/code] to [code]1.0[/code] (inclusive). Contains either 4 or 8 numbers per vertex depending on the presence of the [constant ARRAY_FLAG_USE_8_BONE_WEIGHTS] flag.*/
	MeshArrayWeights MeshArrayType = 11
	/*[PackedInt32Array] of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the [i]i[/i]'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
	  For triangles, the index array is interpreted as triples, referring to the vertices of each triangle. For lines, the index array is in pairs indicating the start and end of each line.*/
	MeshArrayIndex MeshArrayType = 12
	/*Represents the size of the [enum ArrayType] enum.*/
	MeshArrayMax MeshArrayType = 13
)

type MeshBlendShapeMode

type MeshBlendShapeMode = classdb.MeshBlendShapeMode
const (
	/*Blend shapes are normalized.*/
	MeshBlendShapeModeNormalized MeshBlendShapeMode = 0
	/*Blend shapes are relative to base weight.*/
	MeshBlendShapeModeRelative MeshBlendShapeMode = 1
)

type MeshConvexDecompositionSettings

type MeshConvexDecompositionSettings = classdb.MeshConvexDecompositionSettings

Parameters to be used with a Mesh convex decomposition operation.

type MeshConvexDecompositionSettingsMode

type MeshConvexDecompositionSettingsMode = classdb.MeshConvexDecompositionSettingsMode
const (
	/*Constant for voxel-based approximate convex decomposition.*/
	MeshConvexDecompositionSettingsConvexDecompositionModeVoxel MeshConvexDecompositionSettingsMode = 0
	/*Constant for tetrahedron-based approximate convex decomposition.*/
	MeshConvexDecompositionSettingsConvexDecompositionModeTetrahedron MeshConvexDecompositionSettingsMode = 1
)

type MeshDataTool

type MeshDataTool = classdb.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 [method create_from_surface]. When you are finished editing the data commit the data to a mesh with [method commit_to_surface]. Below is an example of how MeshDataTool may be used. [codeblocks] [gdscript] var mesh = ArrayMesh.new() mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, BoxMesh.new().get_mesh_arrays()) var mdt = MeshDataTool.new() mdt.create_from_surface(mesh, 0) for i in range(mdt.get_vertex_count()):

var vertex = mdt.get_vertex(i)
# In this example we extend the mesh by one unit, which results in separated faces as it is flat shaded.
vertex += mdt.get_vertex_normal(i)
# Save your change.
mdt.set_vertex(i, vertex)

mesh.clear_surfaces() mdt.commit_to_surface(mesh) var mi = MeshInstance.new() mi.mesh = mesh add_child(mi) [/gdscript] [csharp] 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); [/csharp] [/codeblocks] See also ArrayMesh, ImmediateMesh and SurfaceTool for procedural geometry generation. [b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.

type MeshInstance2D

type MeshInstance2D = classdb.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 [b]Sprite2D > Convert to MeshInstance2D[/b] at the top of the 2D editor viewport.

type MeshInstance3D

type MeshInstance3D = classdb.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.

type MeshLibrary

type MeshLibrary = classdb.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.

type MeshPrimitiveType

type MeshPrimitiveType = classdb.MeshPrimitiveType
const (
	/*Render array as points (one vertex equals one point).*/
	MeshPrimitivePoints MeshPrimitiveType = 0
	/*Render array as lines (every two vertices a line is created).*/
	MeshPrimitiveLines MeshPrimitiveType = 1
	/*Render array as line strip.*/
	MeshPrimitiveLineStrip MeshPrimitiveType = 2
	/*Render array as triangles (every three vertices a triangle is created).*/
	MeshPrimitiveTriangles MeshPrimitiveType = 3
	/*Render array as triangle strips.*/
	MeshPrimitiveTriangleStrip MeshPrimitiveType = 4
)

type MeshTexture

type MeshTexture = classdb.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.

type MethodFlags

type MethodFlags = gd.MethodFlags
const (
	/*Flag for a normal method.*/
	MethodFlagNormal MethodFlags = 1
	/*Flag for an editor method.*/
	MethodFlagEditor MethodFlags = 2
	/*Flag for a constant method.*/
	MethodFlagConst MethodFlags = 4
	/*Flag for a virtual method.*/
	MethodFlagVirtual MethodFlags = 8
	/*Flag for a method with a variable number of arguments.*/
	MethodFlagVararg MethodFlags = 16
	/*Flag for a static method.*/
	MethodFlagStatic MethodFlags = 32
	/*Used internally. Allows to not dump core virtual methods (such as [method Object._notification]) to the JSON API.*/
	MethodFlagObjectCore MethodFlags = 64
	/*Default method flags (normal).*/
	MethodFlagsDefault MethodFlags = 1
)

type MethodTweener

type MethodTweener = classdb.MethodTweener

MethodTweener is similar to a combination of CallbackTweener and PropertyTweener. It calls a method providing an interpolated value as a parameter. See [method Tween.tween_method] for more usage information. The tweener will finish automatically if the callback's target object is freed. [b]Note:[/b] [method Tween.tween_method] is the only correct way to create MethodTweener. Any MethodTweener created manually will not function correctly.

type MissingNode

type MissingNode = classdb.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.

type MissingResource

type MissingResource = classdb.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.

type MobileVRInterface

type MobileVRInterface = classdb.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 [member eye_height]. You can initialize this interface as follows: [codeblock] var interface = XRServer.find_interface("Native mobile") if interface and interface.initialize():

get_viewport().xr = true

[/codeblock]

type MouseButton

type MouseButton = gd.MouseButton
const (
	/*Enum value which doesn't correspond to any mouse button. This is used to initialize [enum MouseButton] properties with a generic state.*/
	MouseButtonNone MouseButton = 0
	/*Primary mouse button, usually assigned to the left button.*/
	MouseButtonLeft MouseButton = 1
	/*Secondary mouse button, usually assigned to the right button.*/
	MouseButtonRight MouseButton = 2
	/*Middle mouse button.*/
	MouseButtonMiddle MouseButton = 3
	/*Mouse wheel scrolling up.*/
	MouseButtonWheelUp MouseButton = 4
	/*Mouse wheel scrolling down.*/
	MouseButtonWheelDown MouseButton = 5
	/*Mouse wheel left button (only present on some mice).*/
	MouseButtonWheelLeft MouseButton = 6
	/*Mouse wheel right button (only present on some mice).*/
	MouseButtonWheelRight MouseButton = 7
	/*Extra mouse button 1. This is sometimes present, usually to the sides of the mouse.*/
	MouseButtonXbutton1 MouseButton = 8
	/*Extra mouse button 2. This is sometimes present, usually to the sides of the mouse.*/
	MouseButtonXbutton2 MouseButton = 9
)

type MouseButtonMask

type MouseButtonMask = gd.MouseButtonMask
const (
	/*Primary mouse button mask, usually for the left button.*/
	MouseButtonMaskLeft MouseButtonMask = 1
	/*Secondary mouse button mask, usually for the right button.*/
	MouseButtonMaskRight MouseButtonMask = 2
	/*Middle mouse button mask.*/
	MouseButtonMaskMiddle MouseButtonMask = 4
	/*Extra mouse button 1 mask.*/
	MouseButtonMaskMbXbutton1 MouseButtonMask = 128
	/*Extra mouse button 2 mask.*/
	MouseButtonMaskMbXbutton2 MouseButtonMask = 256
)

type MovieWriter

type MovieWriter = classdb.MovieWriter

Godot can record videos with non-real-time simulation. Like the [code]--fixed-fps[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url], this forces the reported [code]delta[/code] in [method Node._process] 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 [MovieWriter]s: - AVI container with MJPEG for video and uncompressed audio ([code].avi[/code] file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing [member ProjectSettings.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 ([code].png[/code] file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as [url=https://ffmpeg.org/]FFmpeg[/url] 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. [b]Editor usage:[/b] A default movie file path can be specified in [member ProjectSettings.editor/movie_writer/movie_file]. Alternatively, for running single scenes, a [code]movie_file[/code] 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. [b]Note:[/b] MovieWriter is available for use in both the editor and exported projects, but it is [i]not[/i] designed for use by end users to record videos while playing. Players wishing to record gameplay videos should install tools such as [url=https://obsproject.com/]OBS Studio[/url] or [url=https://www.maartenbaert.be/simplescreenrecorder/]SimpleScreenRecorder[/url] instead.

// MovieWriter methods that can be overridden by a [Class] that extends it.
type MovieWriter interface {
	//Called when the audio sample rate used for recording the audio is requested by the engine. The value returned must be specified in Hz. Defaults to 48000 Hz if [method _get_audio_mix_rate] is not overridden.
	GetAudioMixRate(godot Context) gd.Int
	//Called when the audio speaker mode used for recording the audio is requested by the engine. This can affect the number of output channels in the resulting audio file/stream. Defaults to [constant AudioServer.SPEAKER_MODE_STEREO] if [method _get_audio_speaker_mode] is not overridden.
	GetAudioSpeakerMode(godot Context) AudioServerSpeakerMode
	//Called when the engine determines whether this [MovieWriter] is able to handle the file at [param path]. Must return [code]true[/code] if this [MovieWriter] is able to handle the given file path, [code]false[/code] otherwise. Typically, [method _handles_file] is overridden as follows to allow the user to record a file at any path with a given file extension:
	//[codeblock]
	//func _handles_file(path):
	//    # Allows specifying an output file with a `.mkv` file extension (case-insensitive),
	//    # either in the Project Settings or with the `--write-movie <path>` command line argument.
	//    return path.get_extension().to_lower() == "mkv"
	//[/codeblock]
	HandlesFile(godot Context, path gd.String) bool
	//Called once before the engine starts writing video and audio data. [param movie_size] is the width and height of the video to save. [param fps] is the number of frames per second specified in the project settings or using the [code]--fixed-fps <fps>[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url].
	WriteBegin(godot Context, movie_size gd.Vector2i, fps gd.Int, base_path gd.String) int64
	//Called at the end of every rendered frame. The [param frame_image] and [param audio_frame_block] function arguments should be written to.
	WriteFrame(godot Context, frame_image Image, audio_frame_block unsafe.Pointer) int64
	//Called when the engine finishes writing. This occurs when the engine quits by pressing the window manager's close button, or when [method SceneTree.quit] is called.
	//[b]Note:[/b] Pressing [kbd]Ctrl + C[/kbd] on the terminal running the editor/project does [i]not[/i] result in [method _write_end] being called.
	WriteEnd(godot Context)
}

type MultiMesh

type MultiMesh = classdb.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. [b]Note:[/b] 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 [b]not[/b] receive any lighting. [b]Note:[/b] Blend Shapes will be ignored if used in a MultiMesh.

type MultiMeshInstance2D

type MultiMeshInstance2D = classdb.MultiMeshInstance2D

MultiMeshInstance2D is a specialized node to instance a MultiMesh resource in 2D. Usage is the same as MultiMeshInstance3D.

type MultiMeshInstance3D

type MultiMeshInstance3D = classdb.MultiMeshInstance3D

MultiMeshInstance3D is a specialized node to instance [GeometryInstance3D]s 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).

type MultiMeshTransformFormat

type MultiMeshTransformFormat = classdb.MultiMeshTransformFormat
const (
	/*Use this when using 2D transforms.*/
	MultiMeshTransform2d MultiMeshTransformFormat = 0
	/*Use this when using 3D transforms.*/
	MultiMeshTransform3d MultiMeshTransformFormat = 1
)

type MultiplayerAPI

type MultiplayerAPI = classdb.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 [method SceneTree.set_multiplayer] 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.

type MultiplayerAPIExtension

type MultiplayerAPIExtension = classdb.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. [codeblocks] [gdscript] extends MultiplayerAPIExtension class_name LogMultiplayer

# We want to augment the default SceneMultiplayer. var base_multiplayer = SceneMultiplayer.new()

func _init():

# Just passthrough base signals (copied to var to avoid cyclic reference)
var cts = connected_to_server
var cf = connection_failed
var pc = peer_connected
var pd = peer_disconnected
base_multiplayer.connected_to_server.connect(func(): cts.emit())
base_multiplayer.connection_failed.connect(func(): cf.emit())
base_multiplayer.peer_connected.connect(func(id): pc.emit(id))
base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id))

func _poll():

return base_multiplayer.poll()

# Log RPC being made and forward it to the default multiplayer. func _rpc(peer: int, object: Object, method: StringName, args: Array) -> Error:

print("Got RPC for %d: %s::%s(%s)" % [peer, object, method, args])
return base_multiplayer.rpc(peer, object, method, args)

# Log configuration add. E.g. root path (nullptr, NodePath), replication (Node, Spawner|Synchronizer), custom. func _object_configuration_add(object, config: Variant) -> Error:

if config is MultiplayerSynchronizer:
    print("Adding synchronization configuration for %s. Synchronizer: %s" % [object, config])
elif config is MultiplayerSpawner:
    print("Adding node %s to the spawn list. Spawner: %s" % [object, config])
return base_multiplayer.object_configuration_add(object, config)

# Log configuration remove. E.g. root path (nullptr, NodePath), replication (Node, Spawner|Synchronizer), custom. func _object_configuration_remove(object, config: Variant) -> Error:

if config is MultiplayerSynchronizer:
    print("Removing synchronization configuration for %s. Synchronizer: %s" % [object, config])
elif config is MultiplayerSpawner:
    print("Removing node %s from the spawn list. Spawner: %s" % [object, config])
return base_multiplayer.object_configuration_remove(object, config)

# These can be optional, but in our case we want to augment SceneMultiplayer, so forward everything. func _set_multiplayer_peer(p_peer: MultiplayerPeer):

base_multiplayer.multiplayer_peer = p_peer

func _get_multiplayer_peer() -> MultiplayerPeer:

return base_multiplayer.multiplayer_peer

func _get_unique_id() -> int:

return base_multiplayer.get_unique_id()

func _get_peer_ids() -> PackedInt32Array:

return base_multiplayer.get_peers()

[/gdscript] [/codeblocks] Then in your main scene or in an autoload call [method SceneTree.set_multiplayer] to start using your custom MultiplayerAPI: [codeblocks] [gdscript] # autoload.gd func _enter_tree():

# Sets our custom multiplayer as the main one in SceneTree.

get_tree().set_multiplayer(LogMultiplayer.new()) [/gdscript] [/codeblocks] Native extensions can alternatively use the [method MultiplayerAPI.set_default_interface] method during initialization to configure themselves as the default implementation.

// MultiplayerAPIExtension methods that can be overridden by a [Class] that extends it.
type MultiplayerAPIExtension interface {
	//Callback for [method MultiplayerAPI.poll].
	Poll(godot Context) int64
	//Called when the [member MultiplayerAPI.multiplayer_peer] is set.
	SetMultiplayerPeer(godot Context, multiplayer_peer MultiplayerPeer)
	//Called when the [member MultiplayerAPI.multiplayer_peer] is retrieved.
	GetMultiplayerPeer(godot Context) MultiplayerPeer
	//Callback for [method MultiplayerAPI.get_unique_id].
	GetUniqueId(godot Context) gd.Int
	//Callback for [method MultiplayerAPI.get_peers].
	GetPeerIds(godot Context) gd.PackedInt32Array
	//Callback for [method MultiplayerAPI.rpc].
	Rpc(godot Context, peer gd.Int, object gd.Object, method gd.StringName, args gd.Array) int64
	//Callback for [method MultiplayerAPI.get_remote_sender_id].
	GetRemoteSenderId(godot Context) gd.Int
	//Callback for [method MultiplayerAPI.object_configuration_add].
	ObjectConfigurationAdd(godot Context, object gd.Object, configuration gd.Variant) int64
	//Callback for [method MultiplayerAPI.object_configuration_remove].
	ObjectConfigurationRemove(godot Context, object gd.Object, configuration gd.Variant) int64
}

type MultiplayerAPIRPCMode

type MultiplayerAPIRPCMode = classdb.MultiplayerAPIRPCMode
const (
	/*Used with [method Node.rpc_config] to disable a method or property for all RPC calls, making it unavailable. Default for all methods.*/
	MultiplayerAPIRpcModeDisabled MultiplayerAPIRPCMode = 0
	/*Used with [method Node.rpc_config] to set a method to be callable remotely by any peer. Analogous to the [code]@rpc("any_peer")[/code] annotation. Calls are accepted from all remote peers, no matter if they are node's authority or not.*/
	MultiplayerAPIRpcModeAnyPeer MultiplayerAPIRPCMode = 1
	/*Used with [method Node.rpc_config] to set a method to be callable remotely only by the current multiplayer authority (which is the server by default). Analogous to the [code]@rpc("authority")[/code] annotation. See [method Node.set_multiplayer_authority].*/
	MultiplayerAPIRpcModeAuthority MultiplayerAPIRPCMode = 2
)

type MultiplayerPeer

type MultiplayerPeer = classdb.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. [b]Note:[/b] The MultiplayerAPI protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type MultiplayerPeerConnectionStatus

type MultiplayerPeerConnectionStatus = classdb.MultiplayerPeerConnectionStatus
const (
	/*The MultiplayerPeer is disconnected.*/
	MultiplayerPeerConnectionDisconnected MultiplayerPeerConnectionStatus = 0
	/*The MultiplayerPeer is currently connecting to a server.*/
	MultiplayerPeerConnectionConnecting MultiplayerPeerConnectionStatus = 1
	/*This MultiplayerPeer is connected.*/
	MultiplayerPeerConnectionConnected MultiplayerPeerConnectionStatus = 2
)

type MultiplayerPeerExtension

type MultiplayerPeerExtension = classdb.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 [b]must[/b] be implemented to have a working custom multiplayer implementation. See also MultiplayerAPI.

// MultiplayerPeerExtension methods that can be overridden by a [Class] that extends it.
type MultiplayerPeerExtension interface {
	//Called when a packet needs to be received by the [MultiplayerAPI], with [param r_buffer_size] being the size of the binary [param r_buffer] in bytes.
	GetPacket(godot Context, r_buffer unsafe.Pointer, r_buffer_size *int32) int64
	//Called when a packet needs to be sent by the [MultiplayerAPI], with [param p_buffer_size] being the size of the binary [param p_buffer] in bytes.
	PutPacket(godot Context, p_buffer unsafe.Pointer, p_buffer_size gd.Int) int64
	//Called when the available packet count is internally requested by the [MultiplayerAPI].
	GetAvailablePacketCount(godot Context) gd.Int
	//Called when the maximum allowed packet size (in bytes) is requested by the [MultiplayerAPI].
	GetMaxPacketSize(godot Context) gd.Int
	//Called when a packet needs to be received by the [MultiplayerAPI], if [method _get_packet] isn't implemented. Use this when extending this class via GDScript.
	GetPacketScript(godot Context) gd.PackedByteArray
	//Called when a packet needs to be sent by the [MultiplayerAPI], if [method _put_packet] isn't implemented. Use this when extending this class via GDScript.
	PutPacketScript(godot Context, p_buffer gd.PackedByteArray) int64
	//Called to get the channel over which the next available packet was received. See [method MultiplayerPeer.get_packet_channel].
	GetPacketChannel(godot Context) gd.Int
	//Called to get the [enum MultiplayerPeer.TransferMode] the remote peer used to send the next available packet. See [method MultiplayerPeer.get_packet_mode].
	GetPacketMode(godot Context) MultiplayerPeerTransferMode
	//Called when the channel to use is set for this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_channel]).
	SetTransferChannel(godot Context, p_channel gd.Int)
	//Called when the transfer channel to use is read on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_channel]).
	GetTransferChannel(godot Context) gd.Int
	//Called when the transfer mode is set on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_mode]).
	SetTransferMode(godot Context, p_mode MultiplayerPeerTransferMode)
	//Called when the transfer mode to use is read on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_mode]).
	GetTransferMode(godot Context) MultiplayerPeerTransferMode
	//Called when the target peer to use is set for this [MultiplayerPeer] (see [method MultiplayerPeer.set_target_peer]).
	SetTargetPeer(godot Context, p_peer gd.Int)
	//Called when the ID of the [MultiplayerPeer] who sent the most recent packet is requested (see [method MultiplayerPeer.get_packet_peer]).
	GetPacketPeer(godot Context) gd.Int
	//Called when the "is server" status is requested on the [MultiplayerAPI]. See [method MultiplayerAPI.is_server].
	IsServer(godot Context) bool
	//Called when the [MultiplayerAPI] is polled. See [method MultiplayerAPI.poll].
	Poll(godot Context)
	//Called when the multiplayer peer should be immediately closed (see [method MultiplayerPeer.close]).
	Close(godot Context)
	//Called when the connected [param p_peer] should be forcibly disconnected (see [method MultiplayerPeer.disconnect_peer]).
	DisconnectPeer(godot Context, p_peer gd.Int, p_force bool)
	//Called when the unique ID of this [MultiplayerPeer] is requested (see [method MultiplayerPeer.get_unique_id]). The value must be between [code]1[/code] and [code]2147483647[/code].
	GetUniqueId(godot Context) gd.Int
	//Called when the "refuse new connections" status is set on this [MultiplayerPeer] (see [member MultiplayerPeer.refuse_new_connections]).
	SetRefuseNewConnections(godot Context, p_enable bool)
	//Called when the "refuse new connections" status is requested on this [MultiplayerPeer] (see [member MultiplayerPeer.refuse_new_connections]).
	IsRefusingNewConnections(godot Context) bool
	//Called to check if the server can act as a relay in the current configuration. See [method MultiplayerPeer.is_server_relay_supported].
	IsServerRelaySupported(godot Context) bool
	//Called when the connection status is requested on the [MultiplayerPeer] (see [method MultiplayerPeer.get_connection_status]).
	GetConnectionStatus(godot Context) MultiplayerPeerConnectionStatus
}

type MultiplayerPeerTransferMode

type MultiplayerPeerTransferMode = classdb.MultiplayerPeerTransferMode
const (
	/*Packets are not acknowledged, no resend attempts are made for lost packets. Packets may arrive in any order. Potentially faster than [constant TRANSFER_MODE_UNRELIABLE_ORDERED]. Use for non-critical data, and always consider whether the order matters.*/
	MultiplayerPeerTransferModeUnreliable MultiplayerPeerTransferMode = 0
	/*Packets are not acknowledged, no resend attempts are made for lost packets. Packets are received in the order they were sent in. Potentially faster than [constant TRANSFER_MODE_RELIABLE]. Use for non-critical data or data that would be outdated if received late due to resend attempt(s) anyway, for example movement and positional data.*/
	MultiplayerPeerTransferModeUnreliableOrdered MultiplayerPeerTransferMode = 1
	/*Packets must be received and resend attempts should be made until the packets are acknowledged. Packets must be received in the order they were sent in. Most reliable transfer mode, but potentially the slowest due to the overhead. Use for critical data that must be transmitted and arrive in order, for example an ability being triggered or a chat message. Consider carefully if the information really is critical, and use sparingly.*/
	MultiplayerPeerTransferModeReliable MultiplayerPeerTransferMode = 2
)

type MultiplayerSpawner

type MultiplayerSpawner = classdb.MultiplayerSpawner

Spawnable scenes can be configured in the editor or through code (see [method add_spawnable_scene]). Also supports custom node spawns through [method spawn], calling [member spawn_function] on all peers. Internally, MultiplayerSpawner uses [method MultiplayerAPI.object_configuration_add] to notify spawns passing the spawned node as the [code]object[/code] and itself as the [code]configuration[/code], and [method MultiplayerAPI.object_configuration_remove] to notify despawns in a similar way.

type MultiplayerSynchronizer

type MultiplayerSynchronizer = classdb.MultiplayerSynchronizer

By default, MultiplayerSynchronizer synchronizes configured properties to all peers. Visibility can be handled directly with [method set_visibility_for] or as-needed with [method add_visibility_filter] and [method update_visibility]. [MultiplayerSpawner]s will handle nodes according to visibility of synchronizers as long as the node at [member root_path] was spawned by one. Internally, MultiplayerSynchronizer uses [method MultiplayerAPI.object_configuration_add] to notify synchronization start passing the Node at [member root_path] as the [code]object[/code] and itself as the [code]configuration[/code], and uses [method MultiplayerAPI.object_configuration_remove] to notify synchronization end in a similar way. [b]Note:[/b] Synchronization is not supported for Object type properties, like Resource. Properties that are unique to each peer, like the instance IDs of [Object]s (see [method Object.get_instance_id]) or [RID]s, will also not work in synchronization.

type MultiplayerSynchronizerVisibilityUpdateMode

type MultiplayerSynchronizerVisibilityUpdateMode = classdb.MultiplayerSynchronizerVisibilityUpdateMode
const (
	/*Visibility filters are updated during process frames (see [constant Node.NOTIFICATION_INTERNAL_PROCESS]).*/
	MultiplayerSynchronizerVisibilityProcessIdle MultiplayerSynchronizerVisibilityUpdateMode = 0
	/*Visibility filters are updated during physics frames (see [constant Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS]).*/
	MultiplayerSynchronizerVisibilityProcessPhysics MultiplayerSynchronizerVisibilityUpdateMode = 1
	/*Visibility filters are not updated automatically, and must be updated manually by calling [method update_visibility].*/
	MultiplayerSynchronizerVisibilityProcessNone MultiplayerSynchronizerVisibilityUpdateMode = 2
)

type Mutex

type Mutex = classdb.Mutex

A synchronization mutex (mutual exclusion). This is used to synchronize multiple [Thread]s, 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. [b]Warning:[/b] Mutexes must be used carefully to avoid deadlocks. [b]Warning:[/b] 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 Thread's reference count reaches zero and it is therefore destroyed, it must not have any mutex locked.

type NavigationAgent2D = classdb.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. [b]Note:[/b] After setting the [member target_position] property, the [method get_next_path_position] 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.

type NavigationAgent3D = classdb.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. [b]Note:[/b] After setting the [member target_position] property, the [method get_next_path_position] 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.

type NavigationLink2D = classdb.NavigationLink2D

A link between two positions on [NavigationRegion2D]s 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.

type NavigationLink3D = classdb.NavigationLink3D

A link between two positions on [NavigationRegion3D]s 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.

type NavigationMesh = classdb.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.

type NavigationMeshParsedGeometryType = classdb.NavigationMeshParsedGeometryType
const (
	/*Parses mesh instances as geometry. This includes [MeshInstance3D], [CSGShape3D], and [GridMap] nodes.*/
	NavigationMeshParsedGeometryMeshInstances NavigationMeshParsedGeometryType = 0
	/*Parses [StaticBody3D] colliders as geometry. The collider should be in any of the layers specified by [member geometry_collision_mask].*/
	NavigationMeshParsedGeometryStaticColliders NavigationMeshParsedGeometryType = 1
	/*Both [constant PARSED_GEOMETRY_MESH_INSTANCES] and [constant PARSED_GEOMETRY_STATIC_COLLIDERS].*/
	NavigationMeshParsedGeometryBoth NavigationMeshParsedGeometryType = 2
	/*Represents the size of the [enum ParsedGeometryType] enum.*/
	NavigationMeshParsedGeometryMax NavigationMeshParsedGeometryType = 3
)
type NavigationMeshSamplePartitionType = classdb.NavigationMeshSamplePartitionType
const (
	/*Watershed partitioning. Generally the best choice if you precompute the navigation mesh, use this if you have large open areas.*/
	NavigationMeshSamplePartitionWatershed NavigationMeshSamplePartitionType = 0
	/*Monotone partitioning. Use this if you want fast navigation mesh generation.*/
	NavigationMeshSamplePartitionMonotone NavigationMeshSamplePartitionType = 1
	/*Layer partitioning. Good choice to use for tiled navigation mesh with medium and small sized tiles.*/
	NavigationMeshSamplePartitionLayers NavigationMeshSamplePartitionType = 2
	/*Represents the size of the [enum SamplePartitionType] enum.*/
	NavigationMeshSamplePartitionMax NavigationMeshSamplePartitionType = 3
)
type NavigationMeshSourceGeometryData2D = classdb.NavigationMeshSourceGeometryData2D

Container for parsed source geometry data used in navigation mesh baking.

type NavigationMeshSourceGeometryData3D = classdb.NavigationMeshSourceGeometryData3D

Container for parsed source geometry data used in navigation mesh baking.

type NavigationMeshSourceGeometryMode = classdb.NavigationMeshSourceGeometryMode
const (
	/*Scans the child nodes of the root node recursively for geometry.*/
	NavigationMeshSourceGeometryRootNodeChildren NavigationMeshSourceGeometryMode = 0
	/*Scans nodes in a group and their child nodes recursively for geometry. The group is specified by [member geometry_source_group_name].*/
	NavigationMeshSourceGeometryGroupsWithChildren NavigationMeshSourceGeometryMode = 1
	/*Uses nodes in a group for geometry. The group is specified by [member geometry_source_group_name].*/
	NavigationMeshSourceGeometryGroupsExplicit NavigationMeshSourceGeometryMode = 2
	/*Represents the size of the [enum SourceGeometryMode] enum.*/
	NavigationMeshSourceGeometryMax NavigationMeshSourceGeometryMode = 3
)
type NavigationObstacle2D = classdb.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 [b]not[/b] a replacement for a (re)baked navigation mesh. Obstacles [b]don't[/b] 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.

type NavigationObstacle3D = classdb.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 [b]not[/b] a replacement for a (re)baked navigation mesh. Obstacles [b]don't[/b] 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.

type NavigationPathQueryParameters2D = classdb.NavigationPathQueryParameters2D

By changing various properties of this object, such as the start and target position, you can configure path queries to the NavigationServer2D.

type NavigationPathQueryParameters2DPathMetadataFlags = classdb.NavigationPathQueryParameters2DPathMetadataFlags
const (
	/*Don't include any additional metadata about the returned path.*/
	NavigationPathQueryParameters2DPathMetadataIncludeNone NavigationPathQueryParameters2DPathMetadataFlags = 0
	/*Include the type of navigation primitive (region or link) that each point of the path goes through.*/
	NavigationPathQueryParameters2DPathMetadataIncludeTypes NavigationPathQueryParameters2DPathMetadataFlags = 1
	/*Include the [RID]s of the regions and links that each point of the path goes through.*/
	NavigationPathQueryParameters2DPathMetadataIncludeRids NavigationPathQueryParameters2DPathMetadataFlags = 2
	/*Include the [code]ObjectID[/code]s of the [Object]s which manage the regions and links each point of the path goes through.*/
	NavigationPathQueryParameters2DPathMetadataIncludeOwners NavigationPathQueryParameters2DPathMetadataFlags = 4
	/*Include all available metadata about the returned path.*/
	NavigationPathQueryParameters2DPathMetadataIncludeAll NavigationPathQueryParameters2DPathMetadataFlags = 7
)
type NavigationPathQueryParameters2DPathPostProcessing = classdb.NavigationPathQueryParameters2DPathPostProcessing
const (
	/*Applies a funnel algorithm to the raw path corridor found by the pathfinding algorithm. This will result in the shortest path possible inside the path corridor. This postprocessing very much depends on the navigation mesh polygon layout and the created corridor. Especially tile- or gridbased layouts can face artificial corners with diagonal movement due to a jagged path corridor imposed by the cell shapes.*/
	NavigationPathQueryParameters2DPathPostprocessingCorridorfunnel NavigationPathQueryParameters2DPathPostProcessing = 0
	/*Centers every path position in the middle of the traveled navigation mesh polygon edge. This creates better paths for tile- or gridbased layouts that restrict the movement to the cells center.*/
	NavigationPathQueryParameters2DPathPostprocessingEdgecentered NavigationPathQueryParameters2DPathPostProcessing = 1
)
type NavigationPathQueryParameters2DPathfindingAlgorithm = classdb.NavigationPathQueryParameters2DPathfindingAlgorithm
const (
	/*The path query uses the default A* pathfinding algorithm.*/
	NavigationPathQueryParameters2DPathfindingAlgorithmAstar NavigationPathQueryParameters2DPathfindingAlgorithm = 0
)
type NavigationPathQueryParameters3D = classdb.NavigationPathQueryParameters3D

By changing various properties of this object, such as the start and target position, you can configure path queries to the NavigationServer3D.

type NavigationPathQueryParameters3DPathMetadataFlags = classdb.NavigationPathQueryParameters3DPathMetadataFlags
const (
	/*Don't include any additional metadata about the returned path.*/
	NavigationPathQueryParameters3DPathMetadataIncludeNone NavigationPathQueryParameters3DPathMetadataFlags = 0
	/*Include the type of navigation primitive (region or link) that each point of the path goes through.*/
	NavigationPathQueryParameters3DPathMetadataIncludeTypes NavigationPathQueryParameters3DPathMetadataFlags = 1
	/*Include the [RID]s of the regions and links that each point of the path goes through.*/
	NavigationPathQueryParameters3DPathMetadataIncludeRids NavigationPathQueryParameters3DPathMetadataFlags = 2
	/*Include the [code]ObjectID[/code]s of the [Object]s which manage the regions and links each point of the path goes through.*/
	NavigationPathQueryParameters3DPathMetadataIncludeOwners NavigationPathQueryParameters3DPathMetadataFlags = 4
	/*Include all available metadata about the returned path.*/
	NavigationPathQueryParameters3DPathMetadataIncludeAll NavigationPathQueryParameters3DPathMetadataFlags = 7
)
type NavigationPathQueryParameters3DPathPostProcessing = classdb.NavigationPathQueryParameters3DPathPostProcessing
const (
	/*Applies a funnel algorithm to the raw path corridor found by the pathfinding algorithm. This will result in the shortest path possible inside the path corridor. This postprocessing very much depends on the navigation mesh polygon layout and the created corridor. Especially tile- or gridbased layouts can face artificial corners with diagonal movement due to a jagged path corridor imposed by the cell shapes.*/
	NavigationPathQueryParameters3DPathPostprocessingCorridorfunnel NavigationPathQueryParameters3DPathPostProcessing = 0
	/*Centers every path position in the middle of the traveled navigation mesh polygon edge. This creates better paths for tile- or gridbased layouts that restrict the movement to the cells center.*/
	NavigationPathQueryParameters3DPathPostprocessingEdgecentered NavigationPathQueryParameters3DPathPostProcessing = 1
)
type NavigationPathQueryParameters3DPathfindingAlgorithm = classdb.NavigationPathQueryParameters3DPathfindingAlgorithm
const (
	/*The path query uses the default A* pathfinding algorithm.*/
	NavigationPathQueryParameters3DPathfindingAlgorithmAstar NavigationPathQueryParameters3DPathfindingAlgorithm = 0
)
type NavigationPathQueryResult2D = classdb.NavigationPathQueryResult2D

This class stores the result of a 2D navigation path query from the NavigationServer2D.

type NavigationPathQueryResult2DPathSegmentType = classdb.NavigationPathQueryResult2DPathSegmentType
const (
	/*This segment of the path goes through a region.*/
	NavigationPathQueryResult2DPathSegmentTypeRegion NavigationPathQueryResult2DPathSegmentType = 0
	/*This segment of the path goes through a link.*/
	NavigationPathQueryResult2DPathSegmentTypeLink NavigationPathQueryResult2DPathSegmentType = 1
)
type NavigationPathQueryResult3D = classdb.NavigationPathQueryResult3D

This class stores the result of a 3D navigation path query from the NavigationServer3D.

type NavigationPathQueryResult3DPathSegmentType = classdb.NavigationPathQueryResult3DPathSegmentType
const (
	/*This segment of the path goes through a region.*/
	NavigationPathQueryResult3DPathSegmentTypeRegion NavigationPathQueryResult3DPathSegmentType = 0
	/*This segment of the path goes through a link.*/
	NavigationPathQueryResult3DPathSegmentTypeLink NavigationPathQueryResult3DPathSegmentType = 1
)
type NavigationPolygon = classdb.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. [codeblocks] [gdscript] var new_navigation_mesh = NavigationPolygon.new() var bounding_outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)]) new_navigation_mesh.add_outline(bounding_outline) NavigationServer2D.bake_from_source_geometry_data(new_navigation_mesh, NavigationMeshSourceGeometryData2D.new()); $NavigationRegion2D.navigation_polygon = new_navigation_mesh [/gdscript] [csharp] 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; [/csharp] [/codeblocks] Adding vertices and polygon indices manually. [codeblocks] [gdscript] var new_navigation_mesh = NavigationPolygon.new() var new_vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)]) new_navigation_mesh.vertices = new_vertices var new_polygon_indices = PackedInt32Array([0, 1, 2, 3]) new_navigation_mesh.add_polygon(new_polygon_indices) $NavigationRegion2D.navigation_polygon = new_navigation_mesh [/gdscript] [csharp] 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; [/csharp] [/codeblocks]

type NavigationPolygonParsedGeometryType = classdb.NavigationPolygonParsedGeometryType
const (
	/*Parses mesh instances as obstruction geometry. This includes [Polygon2D], [MeshInstance2D], [MultiMeshInstance2D], and [TileMap] nodes.
	  Meshes are only parsed when they use a 2D vertices surface format.*/
	NavigationPolygonParsedGeometryMeshInstances NavigationPolygonParsedGeometryType = 0
	/*Parses [StaticBody2D] and [TileMap] colliders as obstruction geometry. The collider should be in any of the layers specified by [member parsed_collision_mask].*/
	NavigationPolygonParsedGeometryStaticColliders NavigationPolygonParsedGeometryType = 1
	/*Both [constant PARSED_GEOMETRY_MESH_INSTANCES] and [constant PARSED_GEOMETRY_STATIC_COLLIDERS].*/
	NavigationPolygonParsedGeometryBoth NavigationPolygonParsedGeometryType = 2
	/*Represents the size of the [enum ParsedGeometryType] enum.*/
	NavigationPolygonParsedGeometryMax NavigationPolygonParsedGeometryType = 3
)
type NavigationPolygonSourceGeometryMode = classdb.NavigationPolygonSourceGeometryMode
const (
	/*Scans the child nodes of the root node recursively for geometry.*/
	NavigationPolygonSourceGeometryRootNodeChildren NavigationPolygonSourceGeometryMode = 0
	/*Scans nodes in a group and their child nodes recursively for geometry. The group is specified by [member source_geometry_group_name].*/
	NavigationPolygonSourceGeometryGroupsWithChildren NavigationPolygonSourceGeometryMode = 1
	/*Uses nodes in a group for geometry. The group is specified by [member source_geometry_group_name].*/
	NavigationPolygonSourceGeometryGroupsExplicit NavigationPolygonSourceGeometryMode = 2
	/*Represents the size of the [enum SourceGeometryMode] enum.*/
	NavigationPolygonSourceGeometryMax NavigationPolygonSourceGeometryMode = 3
)
type NavigationRegion2D = classdb.NavigationRegion2D

A traversable 2D region based on a NavigationPolygon that [NavigationAgent2D]s 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 [method NavigationServer2D.map_set_edge_connection_margin]. [b]Note:[/b] 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 [member enter_cost] value. [b]Note:[/b] 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 [member travel_cost] multiplier. [b]Note:[/b] 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.

type NavigationRegion3D = classdb.NavigationRegion3D

A traversable 3D region based on a NavigationMesh that [NavigationAgent3D]s 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 [method NavigationServer3D.map_set_edge_connection_margin]. [b]Note:[/b] 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 [member enter_cost] value. [b]Note:[/b] 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 [member travel_cost] multiplier. [b]Note:[/b] 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.

type NavigationServer3DProcessInfo = classdb.NavigationServer3DProcessInfo
const (
	/*Constant to get the number of active navigation maps.*/
	NavigationServer3DInfoActiveMaps NavigationServer3DProcessInfo = 0
	/*Constant to get the number of active navigation regions.*/
	NavigationServer3DInfoRegionCount NavigationServer3DProcessInfo = 1
	/*Constant to get the number of active navigation agents processing avoidance.*/
	NavigationServer3DInfoAgentCount NavigationServer3DProcessInfo = 2
	/*Constant to get the number of active navigation links.*/
	NavigationServer3DInfoLinkCount NavigationServer3DProcessInfo = 3
	/*Constant to get the number of navigation mesh polygons.*/
	NavigationServer3DInfoPolygonCount NavigationServer3DProcessInfo = 4
	/*Constant to get the number of navigation mesh polygon edges.*/
	NavigationServer3DInfoEdgeCount NavigationServer3DProcessInfo = 5
	/*Constant to get the number of navigation mesh polygon edges that were merged due to edge key overlap.*/
	NavigationServer3DInfoEdgeMergeCount NavigationServer3DProcessInfo = 6
	/*Constant to get the number of navigation mesh polygon edges that are considered connected by edge proximity.*/
	NavigationServer3DInfoEdgeConnectionCount NavigationServer3DProcessInfo = 7
	/*Constant to get the number of navigation mesh polygon edges that could not be merged but may be still connected by edge proximity or with links.*/
	NavigationServer3DInfoEdgeFreeCount NavigationServer3DProcessInfo = 8
)

type NinePatchRect

type NinePatchRect = classdb.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.

type NinePatchRectAxisStretchMode

type NinePatchRectAxisStretchMode = classdb.NinePatchRectAxisStretchMode
const (
	/*Stretches the center texture across the NinePatchRect. This may cause the texture to be distorted.*/
	NinePatchRectAxisStretchModeStretch NinePatchRectAxisStretchMode = 0
	/*Repeats the center texture across the NinePatchRect. This won't cause any visible distortion. The texture must be seamless for this to work without displaying artifacts between edges.*/
	NinePatchRectAxisStretchModeTile NinePatchRectAxisStretchMode = 1
	/*Repeats the center texture across the NinePatchRect, but will also stretch the texture to make sure each tile is visible in full. This may cause the texture to be distorted, but less than [constant AXIS_STRETCH_MODE_STRETCH]. The texture must be seamless for this to work without displaying artifacts between edges.*/
	NinePatchRectAxisStretchModeTileFit NinePatchRectAxisStretchMode = 2
)

type Node

type Node = classdb.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 [i]scene[/i]. 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. [b]Scene tree:[/b] The SceneTree contains the active tree of nodes. When a node is added to the scene tree, it receives the [constant NOTIFICATION_ENTER_TREE] notification and its [method _enter_tree] callback is triggered. Child nodes are always added [i]after[/i] their parent node, i.e. the [method _enter_tree] 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 [constant NOTIFICATION_READY] notification and their respective [method _ready] callbacks are triggered. For groups of nodes, the [method _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: [method _enter_tree] of the parent, [method _enter_tree] of the children, [method _ready] of the children and finally [method _ready] of the parent (recursively for the entire scene tree). [b]Processing:[/b] Nodes can override the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback [method _process], toggled with [method set_process]) happens as fast as possible and is dependent on the frame rate, so the processing time [i]delta[/i] (in seconds) is passed as an argument. Physics processing (callback [method _physics_process], toggled with [method set_physics_process]) 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 [method _input] 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 [method _unhandled_input] 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 [member 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 [method Object.free] or [method queue_free], it will also free all its children. [b]Groups:[/b] 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 [method add_to_group], [method is_in_group] and [method remove_from_group]. You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on SceneTree. [b]Networking with nodes:[/b] 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 [method rpc] 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. [b]Note:[/b] The [code]script[/code] property is part of the Object class, not Node. It isn't exposed like most properties but does have a setter and getter (see [method Object.set_script] and [method Object.get_script]).

// Node methods that can be overridden by a [Class] that extends it.
type Node interface {
	//Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the [param delta] time since the previous frame is not constant. [param delta] is in seconds.
	//It is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process].
	//Corresponds to the [constant NOTIFICATION_PROCESS] notification in [method Object._notification].
	//[b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
	Process(godot Context, delta gd.Float)
	//Called during the physics processing step of the main loop. Physics processing means that the frame rate is synced to the physics, i.e. the [param delta] variable should be constant. [param delta] is in seconds.
	//It is only called if physics processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_physics_process].
	//Corresponds to the [constant NOTIFICATION_PHYSICS_PROCESS] notification in [method Object._notification].
	//[b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
	PhysicsProcess(godot Context, delta gd.Float)
	//Called when the node enters the [SceneTree] (e.g. upon instantiating, scene changing, or after calling [method add_child] in a script). If the node has children, its [method _enter_tree] callback will be called first, and then that of the children.
	//Corresponds to the [constant NOTIFICATION_ENTER_TREE] notification in [method Object._notification].
	EnterTree(godot Context)
	//Called when the node is about to leave the [SceneTree] (e.g. upon freeing, scene changing, or after calling [method remove_child] in a script). If the node has children, its [method _exit_tree] callback will be called last, after all its children have left the tree.
	//Corresponds to the [constant NOTIFICATION_EXIT_TREE] notification in [method Object._notification] and signal [signal tree_exiting]. To get notified when the node has already left the active tree, connect to the [signal tree_exited].
	ExitTree(godot Context)
	//Called when the node is "ready", i.e. when both the node and its children have entered the scene tree. If the node has children, their [method _ready] callbacks get triggered first, and the parent node will receive the ready notification afterwards.
	//Corresponds to the [constant NOTIFICATION_READY] notification in [method Object._notification]. See also the [code]@onready[/code] annotation for variables.
	//Usually used for initialization. For even earlier initialization, [method Object._init] may be used. See also [method _enter_tree].
	//[b]Note:[/b] This method may be called only once for each node. After removing a node from the scene tree and adding it again, [method _ready] will [b]not[/b] be called a second time. This can be bypassed by requesting another call with [method request_ready], which may be called anywhere before adding the node again.
	Ready(godot Context)
	//The elements in the array returned from this method are displayed as warnings in the Scene dock if the script that overrides it is a [code]tool[/code] script.
	//Returning an empty array produces no warnings.
	//Call [method update_configuration_warnings] when the warnings need to be updated for this node.
	//[codeblock]
	//@export var energy = 0:
	//    set(value):
	//        energy = value
	//        update_configuration_warnings()
	//
	//func _get_configuration_warnings():
	//    if energy < 0:
	//        return ["Energy must be 0 or greater."]
	//    else:
	//        return []
	//[/codeblock]
	GetConfigurationWarnings(godot Context) gd.PackedStringArray
	//Called when there is an input event. The input event propagates up through the node tree until a node consumes it.
	//It is only called if input processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_input].
	//To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
	//For gameplay input, [method _unhandled_input] and [method _unhandled_key_input] are usually a better fit as they allow the GUI to intercept the events first.
	//[b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
	Input(godot Context, event InputEvent)
	//Called when an [InputEventKey], [InputEventShortcut], or [InputEventJoypadButton] hasn't been consumed by [method _input] or any GUI [Control] item. It is called before [method _unhandled_key_input] and [method _unhandled_input]. The input event propagates up through the node tree until a node consumes it.
	//It is only called if shortcut processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_shortcut_input].
	//To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
	//This method can be used to handle shortcuts. For generic GUI events, use [method _input] instead. Gameplay events should usually be handled with either [method _unhandled_input] or [method _unhandled_key_input].
	//[b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not orphan).
	ShortcutInput(godot Context, event InputEvent)
	//Called when an [InputEvent] hasn't been consumed by [method _input] or any GUI [Control] item. It is called after [method _shortcut_input] and after [method _unhandled_key_input]. The input event propagates up through the node tree until a node consumes it.
	//It is only called if unhandled input processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_unhandled_input].
	//To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
	//For gameplay input, this method is usually a better fit than [method _input], as GUI events need a higher priority. For keyboard shortcuts, consider using [method _shortcut_input] instead, as it is called before this method. Finally, to handle keyboard events, consider using [method _unhandled_key_input] for performance reasons.
	//[b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
	UnhandledInput(godot Context, event InputEvent)
	//Called when an [InputEventKey] hasn't been consumed by [method _input] or any GUI [Control] item. It is called after [method _shortcut_input] but before [method _unhandled_input]. The input event propagates up through the node tree until a node consumes it.
	//It is only called if unhandled key input processing is enabled, which is done automatically if this method is overridden, and can be toggled with [method set_process_unhandled_key_input].
	//To consume the input event and stop it propagating further to other nodes, [method Viewport.set_input_as_handled] can be called.
	//This method can be used to handle Unicode character input with [kbd]Alt[/kbd], [kbd]Alt + Ctrl[/kbd], and [kbd]Alt + Shift[/kbd] modifiers, after shortcuts were handled.
	//For gameplay input, this and [method _unhandled_input] are usually a better fit than [method _input], as GUI events should be handled first. This method also performs better than [method _unhandled_input], since unrelated events such as [InputEventMouseMotion] are automatically filtered. For shortcuts, consider using [method _shortcut_input] instead.
	//[b]Note:[/b] This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
	UnhandledKeyInput(godot Context, event InputEvent)
}

type Node2D

type Node2D = classdb.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.

type Node3D

type Node3D = classdb.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. [b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GlobalScope.deg_to_rad]. [b]Note:[/b] 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.

type Node3DGizmo

type Node3DGizmo = classdb.Node3DGizmo

This abstract class helps connect the Node3D scene with the editor-specific EditorNode3DGizmo class. Node3DGizmo by itself has no exposed API, refer to [method Node3D.add_gizmo] and pass it an EditorNode3DGizmo instance.

type Node3DRotationEditMode

type Node3DRotationEditMode = classdb.Node3DRotationEditMode
const (
	/*The rotation is edited using [Vector3] Euler angles.*/
	Node3DRotationEditModeEuler Node3DRotationEditMode = 0
	/*The rotation is edited using a [Quaternion].*/
	Node3DRotationEditModeQuaternion Node3DRotationEditMode = 1
	/*The rotation is edited using a [Basis]. In this mode, [member scale] can't be edited separately.*/
	Node3DRotationEditModeBasis Node3DRotationEditMode = 2
)

type NodeDuplicateFlags

type NodeDuplicateFlags = classdb.NodeDuplicateFlags
const (
	/*Duplicate the node's signal connections.*/
	NodeDuplicateSignals NodeDuplicateFlags = 1
	/*Duplicate the node's groups.*/
	NodeDuplicateGroups NodeDuplicateFlags = 2
	/*Duplicate the node's script (including the ancestor's script, if combined with [constant DUPLICATE_USE_INSTANTIATION]).*/
	NodeDuplicateScripts NodeDuplicateFlags = 4
	/*Duplicate using [method PackedScene.instantiate]. If the node comes from a scene saved on disk, re-uses [method PackedScene.instantiate] as the base for the duplicated node and its children.*/
	NodeDuplicateUseInstantiation NodeDuplicateFlags = 8
)

type NodeInternalMode

type NodeInternalMode = classdb.NodeInternalMode
const (
	/*The node will not be internal.*/
	NodeInternalModeDisabled NodeInternalMode = 0
	/*The node will be placed at the beginning of the parent's children, before any non-internal sibling.*/
	NodeInternalModeFront NodeInternalMode = 1
	/*The node will be placed at the end of the parent's children, after any non-internal sibling.*/
	NodeInternalModeBack NodeInternalMode = 2
)

type NodePath

type NodePath = gd.NodePath

type NodeProcessMode

type NodeProcessMode = classdb.NodeProcessMode
const (
	/*Inherits [member process_mode] from the node's parent. For the root node, it is equivalent to [constant PROCESS_MODE_PAUSABLE]. This is the default for any newly created node.*/
	NodeProcessModeInherit NodeProcessMode = 0
	/*Stops processing when [member SceneTree.paused] is [code]true[/code]. This is the inverse of [constant PROCESS_MODE_WHEN_PAUSED].*/
	NodeProcessModePausable NodeProcessMode = 1
	/*Process [b]only[/b] when [member SceneTree.paused] is [code]true[/code]. This is the inverse of [constant PROCESS_MODE_PAUSABLE].*/
	NodeProcessModeWhenPaused NodeProcessMode = 2
	/*Always process. Keeps processing, ignoring [member SceneTree.paused]. This is the inverse of [constant PROCESS_MODE_DISABLED].*/
	NodeProcessModeAlways NodeProcessMode = 3
	/*Never process. Completely disables processing, ignoring [member SceneTree.paused]. This is the inverse of [constant PROCESS_MODE_ALWAYS].*/
	NodeProcessModeDisabled NodeProcessMode = 4
)

type NodeProcessThreadGroup

type NodeProcessThreadGroup = classdb.NodeProcessThreadGroup
const (
	/*Process this node based on the thread group mode of the first parent (or grandparent) node that has a thread group mode that is not inherit. See [member process_thread_group] for more information.*/
	NodeProcessThreadGroupInherit NodeProcessThreadGroup = 0
	/*Process this node (and child nodes set to inherit) on the main thread. See [member process_thread_group] for more information.*/
	NodeProcessThreadGroupMainThread NodeProcessThreadGroup = 1
	/*Process this node (and child nodes set to inherit) on a sub-thread. See [member process_thread_group] for more information.*/
	NodeProcessThreadGroupSubThread NodeProcessThreadGroup = 2
)

type NodeProcessThreadMessages

type NodeProcessThreadMessages = classdb.NodeProcessThreadMessages
const (
	NodeFlagProcessThreadMessages        NodeProcessThreadMessages = 1
	NodeFlagProcessThreadMessagesPhysics NodeProcessThreadMessages = 2
	NodeFlagProcessThreadMessagesAll     NodeProcessThreadMessages = 3
)

type Noise

type Noise = classdb.Noise

This class defines the interface for noise generation libraries to inherit from. A default [method get_seamless_image] implementation is provided for libraries that do not provide seamless noise. This function requests a larger image from the [method get_image] 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.

type NoiseTexture2D

type NoiseTexture2D = classdb.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 [Thread]s to generate the texture data internally, so [method Texture2D.get_image] may return [code]null[/code] 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: [codeblock] var texture = NoiseTexture2D.new() texture.noise = FastNoiseLite.new() await texture.changed var image = texture.get_image() var data = image.get_data() [/codeblock]

type NoiseTexture3D

type NoiseTexture3D = classdb.NoiseTexture3D

Uses the FastNoiseLite library or other noise generators to fill the texture data of your desired size. The class uses [Thread]s to generate the texture data internally, so [method Texture3D.get_data] may return [code]null[/code] 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: [codeblock] var texture = NoiseTexture3D.new() texture.noise = FastNoiseLite.new() await texture.changed var data = texture.get_data() [/codeblock]

type NotificationType

type NotificationType int32

NotificationType sent to an Object's notification method.

const (
	// Notification received when the object is initialized, before its script is attached. Used internally.
	NotificationPostInitialize NotificationType = iota
	// Notification received when the object is about to be deleted. Can act as the deconstructor of some programming languages.
	NotificationPreDelete
	// Notification received when the object finishes hot reloading. This notification is only sent for extensions classes and derived.
	NotificationExtensionReloaded
)

type ORMMaterial3D

type ORMMaterial3D = classdb.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.

type OSRenderingDriver

type OSRenderingDriver = classdb.OSRenderingDriver
const (
	/*The Vulkan rendering driver. It requires Vulkan 1.0 support and automatically uses features from Vulkan 1.1 and 1.2 if available.*/
	OSRenderingDriverVulkan OSRenderingDriver = 0
	/*The OpenGL 3 rendering driver. It uses OpenGL 3.3 Core Profile on desktop platforms, OpenGL ES 3.0 on mobile devices, and WebGL 2.0 on Web.*/
	OSRenderingDriverOpengl3 OSRenderingDriver = 1
)

type OSSystemDir

type OSSystemDir = classdb.OSSystemDir
const (
	/*Desktop directory path.*/
	OSSystemDirDesktop OSSystemDir = 0
	/*DCIM (Digital Camera Images) directory path.*/
	OSSystemDirDcim OSSystemDir = 1
	/*Documents directory path.*/
	OSSystemDirDocuments OSSystemDir = 2
	/*Downloads directory path.*/
	OSSystemDirDownloads OSSystemDir = 3
	/*Movies directory path.*/
	OSSystemDirMovies OSSystemDir = 4
	/*Music directory path.*/
	OSSystemDirMusic OSSystemDir = 5
	/*Pictures directory path.*/
	OSSystemDirPictures OSSystemDir = 6
	/*Ringtones directory path.*/
	OSSystemDirRingtones OSSystemDir = 7
)

type Object

type Object = gd.Object

Object is 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 [Node.AddChild] because it inherits from Node.

You can create new instances, using Create.

To delete an Object instance, call [Object.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.

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 [Object.Set], [Object.Get], [Object.Call], [Object.HasMethod], [Object.HasSignal], etc. Note that these methods are much slower than direct references.

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 to update. To make use of notifications, see [Object.Notification].

Lastly, every object can also contain metadata (data about data). [Object.SetMeta] 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 against null. Instead, se [Context.IsInstanceValid]. It's also recommended to inherit from RefCounted for classes storing data instead of Object.

Note: The script is not exposed like most properties. To set or get an object's Script in code, use [Object.SetScript] and [Object.GetScript], respectively.

// Object methods that can be overridden by a [Class] that extends it.
type Object interface {
	// Override this method to customize the behavior of get. Should return the given property's value,
	// or null if the property should be handled normally.
	//
	// Combined with Set and GetPropertyList, this method allows defining custom properties, which is
	// particularly useful for editor plugins. Note that a property must be present in GetPropertyList,
	// otherwise this method will not be called.
	Get(Context, StringName) Variant
	// Override this method to customize how script properties should be handled by the engine.
	GetPropertyList(Context) []gd.PropertyInfo
	// Called when the object's script is instantiated, oftentimes after the object is initialized in
	// memory (through [Create]). It can be also defined to take in parameters. This method is similar
	// to a constructor in most programming languages.
	Init(Context)
	// Called when the object receives a notification, which can be identified in what by comparing it
	// with a constant. See also [Object.Notification].
	Notification(Context, NotificationType)
	// Override this method to customize the given property's revert behavior. Should return true if the
	// property can be reverted in the Inspector dock. Use PropertyGetRevert to specify the property's
	// default value.
	PropertyCanRevert(Context, StringName) Bool
	// Override this method to customize the given property's revert behavior. Should return the default
	// value for the property. If the default value differs from the property's current value, a revert
	// icon is displayed in the Inspector dock.
	PropertyGetRevert(Context, StringName) Variant
	// Override this method to customize the behavior of set. Should set the property to value and return
	// true, or false if the property should be handled normally. The exact way to set the property is up
	// to this method's implementation.
	//
	// Combined with Get and GetPropertyList, this method allows defining custom properties, which is
	// particularly useful for editor plugins. Note that a property must be present in GetPropertyList,
	// otherwise this method will not be called.
	Set(Context, StringName, Variant) Bool
	// Override this method to customize the return value of [Object.ToString], and therefore the object's
	// representation as a String.
	ToString(Context) String
	// Override this method to customize existing properties. Every property info goes through this method.
	ValidateProperty(Context, StringName, *gd.PropertyInfo)
}

type ObjectConnectFlags

type ObjectConnectFlags = gd.ObjectConnectFlags
const (
	/*Deferred connections trigger their [Callable]s on idle time (at the end of the frame), rather than instantly.*/
	ObjectConnectDeferred ObjectConnectFlags = 1
	/*Persisting connections are stored when the object is serialized (such as when using [method PackedScene.pack]). In the editor, connections created through the Node dock are always persisting.*/
	ObjectConnectPersist ObjectConnectFlags = 2
	/*One-shot connections disconnect themselves after emission.*/
	ObjectConnectOneShot ObjectConnectFlags = 4
	/*Reference-counted connections can be assigned to the same [Callable] multiple times. Each disconnection decreases the internal counter. The signal fully disconnects only when the counter reaches 0.*/
	ObjectConnectReferenceCounted ObjectConnectFlags = 8
)

type Occluder3D

type Occluder3D = classdb.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.

type OccluderInstance3D

type OccluderInstance3D = classdb.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. [OccluderInstance3D]s 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 [OccluderInstance3D]s 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 [url=https://www.embree.org/]Embree[/url], 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 [b]Perspective > Debug Advanced... > Occlusion Culling Buffer[/b] in the top-left corner of the 3D viewport. The occlusion culling buffer quality can be adjusted in the Project Settings. [b]Baking:[/b] Select an OccluderInstance3D node, then use the [b]Bake Occluders[/b] 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. [b]Note:[/b] Occlusion culling is only effective if [member ProjectSettings.rendering/occlusion_culling/use_occlusion_culling] is [code]true[/code]. 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 ([member GeometryInstance3D.visibility_range_begin] and [member GeometryInstance3D.visibility_range_end]) compared to occlusion culling. [b]Note:[/b] 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 [code]module_raycast_enabled=yes[/code].

type OccluderPolygon2D

type OccluderPolygon2D = classdb.OccluderPolygon2D

Editor facility that helps you draw a 2D polygon used as resource for LightOccluder2D.

type OccluderPolygon2DCullMode

type OccluderPolygon2DCullMode = classdb.OccluderPolygon2DCullMode
const (
	/*Culling is disabled. See [member cull_mode].*/
	OccluderPolygon2DCullDisabled OccluderPolygon2DCullMode = 0
	/*Culling is performed in the clockwise direction. See [member cull_mode].*/
	OccluderPolygon2DCullClockwise OccluderPolygon2DCullMode = 1
	/*Culling is performed in the counterclockwise direction. See [member cull_mode].*/
	OccluderPolygon2DCullCounterClockwise OccluderPolygon2DCullMode = 2
)

type OfflineMultiplayerPeer

type OfflineMultiplayerPeer = classdb.OfflineMultiplayerPeer

This is the default [member MultiplayerAPI.multiplayer_peer] for the [member Node.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 [method MultiplayerAPI.is_server] will return [code]true[/code], and calls to [method MultiplayerAPI.get_unique_id] will return [constant MultiplayerPeer.TARGET_PEER_SERVER].

type OggPacketSequence

type OggPacketSequence = classdb.OggPacketSequence

A sequence of Ogg packets.

type OggPacketSequencePlayback

type OggPacketSequencePlayback = classdb.OggPacketSequencePlayback

type OmniLight3D

type OmniLight3D = classdb.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. [b]Note:[/b] 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 [member ProjectSettings.rendering/limits/opengl/max_lights_per_object]. [b]Note:[/b] 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, [member GeometryInstance3D.extra_cull_margin] must be increased on the mesh. Otherwise, the light may not be visible on the mesh.

type OmniLight3DShadowMode

type OmniLight3DShadowMode = classdb.OmniLight3DShadowMode
const (
	/*Shadows are rendered to a dual-paraboloid texture. Faster than [constant SHADOW_CUBE], but lower-quality.*/
	OmniLight3DShadowDualParaboloid OmniLight3DShadowMode = 0
	/*Shadows are rendered to a cubemap. Slower than [constant SHADOW_DUAL_PARABOLOID], but higher-quality.*/
	OmniLight3DShadowCube OmniLight3DShadowMode = 1
)

type OpenXRAPIExtension

type OpenXRAPIExtension = classdb.OpenXRAPIExtension

OpenXRAPIExtension makes OpenXR available for GDExtension. It provides the OpenXR API to GDExtension through the [method get_instance_proc_addr] method, and the OpenXR instance through [method get_instance]. It also provides methods for querying the status of OpenXR initialization, and helper methods for ease of use of the API with GDExtension.

type OpenXRAction

type OpenXRAction = classdb.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 [code]false[/code] if the trigger is depressed and [code]true[/code] 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 [url=https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#semantic-path-reserved]reserved path section in the OpenXR specification[/url] for more info on the top level paths. Note that the name of the resource is used to register the action with.

type OpenXRActionActionType

type OpenXRActionActionType = classdb.OpenXRActionActionType
const (
	/*This action provides a boolean value.*/
	OpenXRActionOpenxrActionBool OpenXRActionActionType = 0
	/*This action provides a float value between [code]0.0[/code] and [code]1.0[/code] for any analog input such as triggers.*/
	OpenXRActionOpenxrActionFloat OpenXRActionActionType = 1
	/*This action provides a [Vector2] value and can be bound to embedded trackpads and joysticks.*/
	OpenXRActionOpenxrActionVector2 OpenXRActionActionType = 2
	OpenXRActionOpenxrActionPose    OpenXRActionActionType = 3
)

type OpenXRActionMap

type OpenXRActionMap = classdb.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.

type OpenXRActionSet

type OpenXRActionSet = classdb.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.

type OpenXRExtensionWrapperExtension

type OpenXRExtensionWrapperExtension = classdb.OpenXRExtensionWrapperExtension

OpenXRExtensionWrapperExtension allows clients to implement OpenXR extensions with GDExtension. The extension should be registered with [method register_extension_wrapper].

// OpenXRExtensionWrapperExtension methods that can be overridden by a [Class] that extends it.
type OpenXRExtensionWrapperExtension interface {
	//Returns a [Dictionary] of OpenXR extensions related to this extension. The [Dictionary] should contain the name of the extension, mapped to a [code]bool *[/code] cast to an integer:
	//- If the [code]bool *[/code] is a [code]nullptr[/code] this extension is mandatory.
	//- If the [code]bool *[/code] points to a boolean, the boolean will be updated to [code]true[/code] if the extension is enabled.
	GetRequestedExtensions(godot Context) gd.Dictionary
	//Adds additional data structures when interogating OpenXR system abilities.
	SetSystemPropertiesAndGetNextPointer(godot Context, next_pointer unsafe.Pointer) gd.Int
	//Adds additional data structures when the OpenXR instance is created.
	SetInstanceCreateInfoAndGetNextPointer(godot Context, next_pointer unsafe.Pointer) gd.Int
	//Adds additional data structures when the OpenXR session is created.
	SetSessionCreateAndGetNextPointer(godot Context, next_pointer unsafe.Pointer) gd.Int
	//Adds additional data structures when creating OpenXR swapchains.
	SetSwapchainCreateInfoAndGetNextPointer(godot Context, next_pointer unsafe.Pointer) gd.Int
	//Allows extensions to register additional controller metadata. This function is called even when the OpenXR API is not constructed as the metadata needs to be available to the editor.
	//Extensions should also provide metadata regardless of whether they are supported on the host system. The controller data is used to setup action maps for users who may have access to the relevant hardware.
	OnRegisterMetadata(godot Context)
	//Called before the OpenXR instance is created.
	OnBeforeInstanceCreated(godot Context)
	//Called right after the OpenXR instance is created.
	OnInstanceCreated(godot Context, instance gd.Int)
	//Called right before the OpenXR instance is destroyed.
	OnInstanceDestroyed(godot Context)
	//Called right after the OpenXR session is created.
	OnSessionCreated(godot Context, session gd.Int)
	//Called as part of the OpenXR process handling. This happens right before general and physics processing steps of the main loop. During this step controller data is queried and made available to game logic.
	OnProcess(godot Context)
	//Called right before the XR viewports begin their rendering step.
	OnPreRender(godot Context)
	//Called right before the OpenXR session is destroyed.
	OnSessionDestroyed(godot Context)
	//Called when the OpenXR session state is changed to idle.
	OnStateIdle(godot Context)
	//Called when the OpenXR session state is changed to ready. This means OpenXR is ready to set up the session.
	OnStateReady(godot Context)
	//Called when the OpenXR session state is changed to synchronized. OpenXR also returns to this state when the application loses focus.
	OnStateSynchronized(godot Context)
	//Called when the OpenXR session state is changed to visible. This means OpenXR is now ready to receive frames.
	OnStateVisible(godot Context)
	//Called when the OpenXR session state is changed to focused. This state is the active state when the game runs.
	OnStateFocused(godot Context)
	//Called when the OpenXR session state is changed to stopping.
	OnStateStopping(godot Context)
	//Called when the OpenXR session state is changed to loss pending.
	OnStateLossPending(godot Context)
	//Called when the OpenXR session state is changed to exiting.
	OnStateExiting(godot Context)
	//Called when there is an OpenXR event to process. When implementing, return [code]true[/code] if the event was handled, return [code]false[/code] otherwise.
	OnEventPolled(godot Context, event unsafe.Pointer) bool
}

type OpenXRHand

type OpenXRHand = classdb.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.

type OpenXRHandHands

type OpenXRHandHands = classdb.OpenXRHandHands
const (
	/*Tracking the player's left hand.*/
	OpenXRHandHandLeft OpenXRHandHands = 0
	/*Tracking the player's right hand.*/
	OpenXRHandHandRight OpenXRHandHands = 1
	/*Maximum supported hands.*/
	OpenXRHandHandMax OpenXRHandHands = 2
)

type OpenXRHandMotionRange

type OpenXRHandMotionRange = classdb.OpenXRHandMotionRange
const (
	/*When player grips, hand skeleton will form a full fist.*/
	OpenXRHandMotionRangeUnobstructed OpenXRHandMotionRange = 0
	/*When player grips, hand skeleton conforms to the controller the player is holding.*/
	OpenXRHandMotionRangeConformToController OpenXRHandMotionRange = 1
	/*Maximum supported motion ranges.*/
	OpenXRHandMotionRangeMax OpenXRHandMotionRange = 2
)

type OpenXRIPBinding

type OpenXRIPBinding = classdb.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".

type OpenXRInteractionProfile

type OpenXRInteractionProfile = classdb.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 [url=https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#semantic-path-interaction-profiles]interaction profiles info in the OpenXR specification[/url].

type OpenXRInteractionProfileMetadata

type OpenXRInteractionProfileMetadata = classdb.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.

type OpenXRInterface

type OpenXRInterface = classdb.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.

type OpenXRInterfaceHand

type OpenXRInterfaceHand = classdb.OpenXRInterfaceHand
const (
	/*Left hand.*/
	OpenXRInterfaceHandLeft OpenXRInterfaceHand = 0
	/*Right hand.*/
	OpenXRInterfaceHandRight OpenXRInterfaceHand = 1
	/*Maximum value for the hand enum.*/
	OpenXRInterfaceHandMax OpenXRInterfaceHand = 2
)

type OpenXRInterfaceHandJointFlags

type OpenXRInterfaceHandJointFlags = classdb.OpenXRInterfaceHandJointFlags
const (
	/*No flags are set.*/
	OpenXRInterfaceHandJointNone OpenXRInterfaceHandJointFlags = 0
	/*If set, the orientation data is valid, otherwise, the orientation data is unreliable and should not be used.*/
	OpenXRInterfaceHandJointOrientationValid OpenXRInterfaceHandJointFlags = 1
	/*If set, the orientation data comes from tracking data, otherwise, the orientation data contains predicted data.*/
	OpenXRInterfaceHandJointOrientationTracked OpenXRInterfaceHandJointFlags = 2
	/*If set, the positional data is valid, otherwise, the positional data is unreliable and should not be used.*/
	OpenXRInterfaceHandJointPositionValid OpenXRInterfaceHandJointFlags = 4
	/*If set, the positional data comes from tracking data, otherwise, the positional data contains predicted data.*/
	OpenXRInterfaceHandJointPositionTracked OpenXRInterfaceHandJointFlags = 8
	/*If set, our linear velocity data is valid, otherwise, the linear velocity data is unreliable and should not be used.*/
	OpenXRInterfaceHandJointLinearVelocityValid OpenXRInterfaceHandJointFlags = 16
	/*If set, our angular velocity data is valid, otherwise, the angular velocity data is unreliable and should not be used.*/
	OpenXRInterfaceHandJointAngularVelocityValid OpenXRInterfaceHandJointFlags = 32
)

type OpenXRInterfaceHandJoints

type OpenXRInterfaceHandJoints = classdb.OpenXRInterfaceHandJoints
const (
	/*Palm joint.*/
	OpenXRInterfaceHandJointPalm OpenXRInterfaceHandJoints = 0
	/*Wrist joint.*/
	OpenXRInterfaceHandJointWrist OpenXRInterfaceHandJoints = 1
	/*Thumb metacarpal joint.*/
	OpenXRInterfaceHandJointThumbMetacarpal OpenXRInterfaceHandJoints = 2
	/*Thumb proximal joint.*/
	OpenXRInterfaceHandJointThumbProximal OpenXRInterfaceHandJoints = 3
	/*Thumb distal joint.*/
	OpenXRInterfaceHandJointThumbDistal OpenXRInterfaceHandJoints = 4
	/*Thumb tip joint.*/
	OpenXRInterfaceHandJointThumbTip OpenXRInterfaceHandJoints = 5
	/*Index metacarpal joint.*/
	OpenXRInterfaceHandJointIndexMetacarpal OpenXRInterfaceHandJoints = 6
	/*Index proximal joint.*/
	OpenXRInterfaceHandJointIndexProximal OpenXRInterfaceHandJoints = 7
	/*Index intermediate joint.*/
	OpenXRInterfaceHandJointIndexIntermediate OpenXRInterfaceHandJoints = 8
	/*Index distal joint.*/
	OpenXRInterfaceHandJointIndexDistal OpenXRInterfaceHandJoints = 9
	/*Index tip joint.*/
	OpenXRInterfaceHandJointIndexTip OpenXRInterfaceHandJoints = 10
	/*Middle metacarpal joint.*/
	OpenXRInterfaceHandJointMiddleMetacarpal OpenXRInterfaceHandJoints = 11
	/*Middle proximal joint.*/
	OpenXRInterfaceHandJointMiddleProximal OpenXRInterfaceHandJoints = 12
	/*Middle intermediate joint.*/
	OpenXRInterfaceHandJointMiddleIntermediate OpenXRInterfaceHandJoints = 13
	/*Middle distal joint.*/
	OpenXRInterfaceHandJointMiddleDistal OpenXRInterfaceHandJoints = 14
	/*Middle tip joint.*/
	OpenXRInterfaceHandJointMiddleTip OpenXRInterfaceHandJoints = 15
	/*Ring metacarpal joint.*/
	OpenXRInterfaceHandJointRingMetacarpal OpenXRInterfaceHandJoints = 16
	/*Ring proximal joint.*/
	OpenXRInterfaceHandJointRingProximal OpenXRInterfaceHandJoints = 17
	/*Ring intermediate joint.*/
	OpenXRInterfaceHandJointRingIntermediate OpenXRInterfaceHandJoints = 18
	/*Ring distal joint.*/
	OpenXRInterfaceHandJointRingDistal OpenXRInterfaceHandJoints = 19
	/*Ring tip joint.*/
	OpenXRInterfaceHandJointRingTip OpenXRInterfaceHandJoints = 20
	/*Little metacarpal joint.*/
	OpenXRInterfaceHandJointLittleMetacarpal OpenXRInterfaceHandJoints = 21
	/*Little proximal joint.*/
	OpenXRInterfaceHandJointLittleProximal OpenXRInterfaceHandJoints = 22
	/*Little intermediate joint.*/
	OpenXRInterfaceHandJointLittleIntermediate OpenXRInterfaceHandJoints = 23
	/*Little distal joint.*/
	OpenXRInterfaceHandJointLittleDistal OpenXRInterfaceHandJoints = 24
	/*Little tip joint.*/
	OpenXRInterfaceHandJointLittleTip OpenXRInterfaceHandJoints = 25
	/*Maximum value for the hand joint enum.*/
	OpenXRInterfaceHandJointMax OpenXRInterfaceHandJoints = 26
)

type OpenXRInterfaceHandMotionRange

type OpenXRInterfaceHandMotionRange = classdb.OpenXRInterfaceHandMotionRange
const (
	OpenXRInterfaceHandMotionRangeUnobstructed        OpenXRInterfaceHandMotionRange = 0
	OpenXRInterfaceHandMotionRangeConformToController OpenXRInterfaceHandMotionRange = 1
	OpenXRInterfaceHandMotionRangeMax                 OpenXRInterfaceHandMotionRange = 2
)

type OptimizedTranslation

type OptimizedTranslation = classdb.OptimizedTranslation

An optimized translation, used by default for CSV Translations. Uses real-time compressed translations, which results in very small dictionaries.

type OptionButton

type OptionButton = classdb.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. [b]Note:[/b] The ID values used for items are limited to 32 bits, not full 64 bits of [int]. This has a range of [code]-2^32[/code] to [code]2^32 - 1[/code], i.e. [code]-2147483648[/code] to [code]2147483647[/code]. [b]Note:[/b] The [member Button.text] and [member Button.icon] properties are set automatically based on the selected item. They shouldn't be changed manually.

type Orientation

type Orientation = gd.Orientation
const (
	/*General vertical alignment, usually used for [Separator], [ScrollBar], [Slider], etc.*/
	Vertical Orientation = 1
	/*General horizontal alignment, usually used for [Separator], [ScrollBar], [Slider], etc.*/
	Horizontal Orientation = 0
)

type PCKPacker

type PCKPacker = classdb.PCKPacker

The PCKPacker is used to create packages that can be loaded into a running project using [method ProjectSettings.load_resource_pack]. [codeblocks] [gdscript] var packer = PCKPacker.new() packer.pck_start("test.pck") packer.add_file("res://text.txt", "text.txt") packer.flush() [/gdscript] [csharp] var packer = new PckPacker(); packer.PckStart("test.pck"); packer.AddFile("res://text.txt", "text.txt"); packer.Flush(); [/csharp] [/codeblocks] The above PCKPacker creates package [code]test.pck[/code], then adds a file named [code]text.txt[/code] at the root of the package.

type PackedByteArray

type PackedByteArray = gd.PackedByteArray

type PackedColorArray

type PackedColorArray = gd.PackedColorArray

type PackedDataContainer

type PackedDataContainer = classdb.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). [codeblock] var data = { "key": "value", "another_key": 123, "lock": Vector2() } var packed = PackedDataContainer.new() packed.pack(data) ResourceSaver.save(packed, "packed_data.res") [/codeblock] [codeblock] var container = load("packed_data.res") for key in container:

prints(key, container[key])

# Prints: # key value # lock (0, 0) # another_key 123 [/codeblock] Nested containers will be packed recursively. While iterating, they will be returned as PackedDataContainerRef.

type PackedDataContainerRef

type PackedDataContainerRef = classdb.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. [codeblock] 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 [/codeblock]

type PackedFloat32Array

type PackedFloat32Array = gd.PackedFloat32Array

type PackedFloat64Array

type PackedFloat64Array = gd.PackedFloat64Array

type PackedInt32Array

type PackedInt32Array = gd.PackedInt32Array

type PackedInt64Array

type PackedInt64Array = gd.PackedInt64Array

type PackedScene

type PackedScene = classdb.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 [member Node.owner] property). [b]Note:[/b] The node doesn't need to own itself. [b]Example of loading a saved scene:[/b] [codeblocks] [gdscript] # Use load() instead of preload() if the path isn't known at compile-time. var scene = preload("res://scene.tscn").instantiate() # Add the node as a child of the node the script is attached to. add_child(scene) [/gdscript] [csharp] // 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); [/csharp] [/codeblocks] [b]Example of saving a node with different owners:[/b] The following example creates 3 objects: Node2D ([code]node[/code]), RigidBody2D ([code]body[/code]) and CollisionObject2D ([code]collision[/code]). [code]collision[/code] is a child of [code]body[/code] which is a child of [code]node[/code]. Only [code]body[/code] is owned by [code]node[/code] and [method pack] will therefore only save those two nodes, but not [code]collision[/code]. [codeblocks] [gdscript] # Create the objects. var node = Node2D.new() var body = RigidBody2D.new() var collision = CollisionShape2D.new()

# Create the object hierarchy. body.add_child(collision) node.add_child(body)

# Change owner of `body`, but not of `collision`. body.owner = node var scene = PackedScene.new()

# Only `node` and `body` are now packed. var result = scene.pack(node) if result == OK:

var error = ResourceSaver.save(scene, "res://path/name.tscn")  # Or "user://..."
if error != OK:
    push_error("An error occurred while saving the scene to disk.")

[/gdscript] [csharp] // 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 of `collision`. body.Owner = node; var scene = new PackedScene();

// Only `node` and `body` 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.");
    }
}

[/csharp] [/codeblocks]

type PackedSceneGenEditState

type PackedSceneGenEditState = classdb.PackedSceneGenEditState
const (
	/*If passed to [method instantiate], blocks edits to the scene state.*/
	PackedSceneGenEditStateDisabled PackedSceneGenEditState = 0
	/*If passed to [method instantiate], provides local scene resources to the local scene.
	  [b]Note:[/b] Only available in editor builds.*/
	PackedSceneGenEditStateInstance PackedSceneGenEditState = 1
	/*If passed to [method instantiate], provides local scene resources to the local scene. Only the main scene should receive the main edit state.
	  [b]Note:[/b] Only available in editor builds.*/
	PackedSceneGenEditStateMain PackedSceneGenEditState = 2
	/*It's similar to [constant GEN_EDIT_STATE_MAIN], but for the case where the scene is being instantiated to be the base of another one.
	  [b]Note:[/b] Only available in editor builds.*/
	PackedSceneGenEditStateMainInherited PackedSceneGenEditState = 3
)

type PackedStringArray

type PackedStringArray = gd.PackedStringArray

type PackedVector2Array

type PackedVector2Array = gd.PackedVector2Array

type PackedVector3Array

type PackedVector3Array = gd.PackedVector3Array

type PacketPeer

type PacketPeer = classdb.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. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type PacketPeerDTLS

type PacketPeerDTLS = classdb.PacketPeerDTLS

This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by [method DTLSServer.take_connection]. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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. [b]Warning:[/b] 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.

type PacketPeerDTLSStatus

type PacketPeerDTLSStatus = classdb.PacketPeerDTLSStatus
const (
	/*A status representing a [PacketPeerDTLS] that is disconnected.*/
	PacketPeerDTLSStatusDisconnected PacketPeerDTLSStatus = 0
	/*A status representing a [PacketPeerDTLS] that is currently performing the handshake with a remote peer.*/
	PacketPeerDTLSStatusHandshaking PacketPeerDTLSStatus = 1
	/*A status representing a [PacketPeerDTLS] that is connected to a remote peer.*/
	PacketPeerDTLSStatusConnected PacketPeerDTLSStatus = 2
	/*A status representing a [PacketPeerDTLS] in a generic error state.*/
	PacketPeerDTLSStatusError PacketPeerDTLSStatus = 3
	/*An error status that shows a mismatch in the DTLS certificate domain presented by the host and the domain requested for validation.*/
	PacketPeerDTLSStatusErrorHostnameMismatch PacketPeerDTLSStatus = 4
)

type PacketPeerExtension

type PacketPeerExtension = classdb.PacketPeerExtension

type PacketPeerStream

type PacketPeerStream = classdb.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. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type PacketPeerUDP

type PacketPeerUDP = classdb.PacketPeerUDP

UDP packet peer. Can be used to send raw UDP packets as well as [Variant]s. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type Panel

type Panel = classdb.Panel

Panel is a GUI control that displays a StyleBox. See also PanelContainer.

type PanelContainer

type PanelContainer = classdb.PanelContainer

A container that keeps its child controls within the area of a StyleBox. Useful for giving controls an outline.

type PanoramaSkyMaterial

type PanoramaSkyMaterial = classdb.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 ([code].hdr[/code]) and OpenEXR ([code].exr[/code]) image formats for this purpose. You can use [url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/cubemap_to_panorama.html]this tool[/url] to convert a cubemap to an equirectangular sky map.

type ParallaxBackground

type ParallaxBackground = classdb.ParallaxBackground

A ParallaxBackground uses one or more ParallaxLayer child nodes to create a parallax effect. Each ParallaxLayer can move at a different speed using [member ParallaxLayer.motion_offset]. This creates an illusion of depth in a 2D game. If not used with a Camera2D, you must manually calculate the [member scroll_offset]. [b]Note:[/b] Each ParallaxBackground is drawn on one specific Viewport and cannot be shared between multiple [Viewport]s, see [member CanvasLayer.custom_viewport]. When using multiple [Viewport]s, for example in a split-screen game, you need create an individual ParallaxBackground for each Viewport you want it to be drawn on.

type ParallaxLayer

type ParallaxLayer = classdb.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 [member ParallaxBackground.scroll_offset] value. This node's children will be affected by its scroll offset. [b]Note:[/b] Any changes to this node's position and scale made after it enters the scene will be ignored.

type ParticleProcessMaterial

type ParticleProcessMaterial = classdb.ParticleProcessMaterial

ParticleProcessMaterial defines particle properties and behavior. It is used in the [code]process_material[/code] 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.

type ParticleProcessMaterialCollisionMode

type ParticleProcessMaterialCollisionMode = classdb.ParticleProcessMaterialCollisionMode
const (
	/*No collision for particles. Particles will go through [GPUParticlesCollision3D] nodes.*/
	ParticleProcessMaterialCollisionDisabled ParticleProcessMaterialCollisionMode = 0
	/*[RigidBody3D]-style collision for particles using [GPUParticlesCollision3D] nodes.*/
	ParticleProcessMaterialCollisionRigid ParticleProcessMaterialCollisionMode = 1
	/*Hide particles instantly when colliding with a [GPUParticlesCollision3D] node. This can be combined with a subemitter that uses the [constant COLLISION_RIGID] collision mode to "replace" the parent particle with the subemitter on impact.*/
	ParticleProcessMaterialCollisionHideOnContact ParticleProcessMaterialCollisionMode = 2
	/*Represents the size of the [enum CollisionMode] enum.*/
	ParticleProcessMaterialCollisionMax ParticleProcessMaterialCollisionMode = 3
)

type ParticleProcessMaterialEmissionShape

type ParticleProcessMaterialEmissionShape = classdb.ParticleProcessMaterialEmissionShape
const (
	/*All particles will be emitted from a single point.*/
	ParticleProcessMaterialEmissionShapePoint ParticleProcessMaterialEmissionShape = 0
	/*Particles will be emitted in the volume of a sphere.*/
	ParticleProcessMaterialEmissionShapeSphere ParticleProcessMaterialEmissionShape = 1
	/*Particles will be emitted on the surface of a sphere.*/
	ParticleProcessMaterialEmissionShapeSphereSurface ParticleProcessMaterialEmissionShape = 2
	/*Particles will be emitted in the volume of a box.*/
	ParticleProcessMaterialEmissionShapeBox ParticleProcessMaterialEmissionShape = 3
	/*Particles will be emitted at a position determined by sampling a random point on the [member emission_point_texture]. Particle color will be modulated by [member emission_color_texture].*/
	ParticleProcessMaterialEmissionShapePoints ParticleProcessMaterialEmissionShape = 4
	/*Particles will be emitted at a position determined by sampling a random point on the [member emission_point_texture]. Particle velocity and rotation will be set based on [member emission_normal_texture]. Particle color will be modulated by [member emission_color_texture].*/
	ParticleProcessMaterialEmissionShapeDirectedPoints ParticleProcessMaterialEmissionShape = 5
	/*Particles will be emitted in a ring or cylinder.*/
	ParticleProcessMaterialEmissionShapeRing ParticleProcessMaterialEmissionShape = 6
	/*Represents the size of the [enum EmissionShape] enum.*/
	ParticleProcessMaterialEmissionShapeMax ParticleProcessMaterialEmissionShape = 7
)

type ParticleProcessMaterialParameter

type ParticleProcessMaterialParameter = classdb.ParticleProcessMaterialParameter
const (
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set initial velocity properties.*/
	ParticleProcessMaterialParamInitialLinearVelocity ParticleProcessMaterialParameter = 0
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set angular velocity properties.*/
	ParticleProcessMaterialParamAngularVelocity ParticleProcessMaterialParameter = 1
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set orbital velocity properties.*/
	ParticleProcessMaterialParamOrbitVelocity ParticleProcessMaterialParameter = 2
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set linear acceleration properties.*/
	ParticleProcessMaterialParamLinearAccel ParticleProcessMaterialParameter = 3
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set radial acceleration properties.*/
	ParticleProcessMaterialParamRadialAccel ParticleProcessMaterialParameter = 4
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set tangential acceleration properties.*/
	ParticleProcessMaterialParamTangentialAccel ParticleProcessMaterialParameter = 5
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set damping properties.*/
	ParticleProcessMaterialParamDamping ParticleProcessMaterialParameter = 6
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set angle properties.*/
	ParticleProcessMaterialParamAngle ParticleProcessMaterialParameter = 7
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set scale properties.*/
	ParticleProcessMaterialParamScale ParticleProcessMaterialParameter = 8
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set hue variation properties.*/
	ParticleProcessMaterialParamHueVariation ParticleProcessMaterialParameter = 9
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set animation speed properties.*/
	ParticleProcessMaterialParamAnimSpeed ParticleProcessMaterialParameter = 10
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set animation offset properties.*/
	ParticleProcessMaterialParamAnimOffset ParticleProcessMaterialParameter = 11
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set radial velocity properties.*/
	ParticleProcessMaterialParamRadialVelocity ParticleProcessMaterialParameter = 15
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set directional velocity properties.*/
	ParticleProcessMaterialParamDirectionalVelocity ParticleProcessMaterialParameter = 16
	/*Use with [method set_param_min], [method set_param_max], and [method set_param_texture] to set scale over velocity properties.*/
	ParticleProcessMaterialParamScaleOverVelocity ParticleProcessMaterialParameter = 17
	/*Represents the size of the [enum Parameter] enum.*/
	ParticleProcessMaterialParamMax ParticleProcessMaterialParameter = 18
	/*Use with [method set_param_min] and [method set_param_max] to set the turbulence minimum und maximum influence on each particles velocity.*/
	ParticleProcessMaterialParamTurbVelInfluence ParticleProcessMaterialParameter = 13
	/*Use with [method set_param_min] and [method set_param_max] to set the turbulence minimum and maximum displacement of the particles spawn position.*/
	ParticleProcessMaterialParamTurbInitDisplacement ParticleProcessMaterialParameter = 14
	/*Use with [method set_param_texture] to set the turbulence influence over the particles life time.*/
	ParticleProcessMaterialParamTurbInfluenceOverLife ParticleProcessMaterialParameter = 12
)

type ParticleProcessMaterialParticleFlags

type ParticleProcessMaterialParticleFlags = classdb.ParticleProcessMaterialParticleFlags
const (
	/*Use with [method set_particle_flag] to set [member particle_flag_align_y].*/
	ParticleProcessMaterialParticleFlagAlignYToVelocity ParticleProcessMaterialParticleFlags = 0
	/*Use with [method set_particle_flag] to set [member particle_flag_rotate_y].*/
	ParticleProcessMaterialParticleFlagRotateY ParticleProcessMaterialParticleFlags = 1
	/*Use with [method set_particle_flag] to set [member particle_flag_disable_z].*/
	ParticleProcessMaterialParticleFlagDisableZ          ParticleProcessMaterialParticleFlags = 2
	ParticleProcessMaterialParticleFlagDampingAsFriction ParticleProcessMaterialParticleFlags = 3
	/*Represents the size of the [enum ParticleFlags] enum.*/
	ParticleProcessMaterialParticleFlagMax ParticleProcessMaterialParticleFlags = 4
)

type ParticleProcessMaterialSubEmitterMode

type ParticleProcessMaterialSubEmitterMode = classdb.ParticleProcessMaterialSubEmitterMode
const (
	ParticleProcessMaterialSubEmitterDisabled    ParticleProcessMaterialSubEmitterMode = 0
	ParticleProcessMaterialSubEmitterConstant    ParticleProcessMaterialSubEmitterMode = 1
	ParticleProcessMaterialSubEmitterAtEnd       ParticleProcessMaterialSubEmitterMode = 2
	ParticleProcessMaterialSubEmitterAtCollision ParticleProcessMaterialSubEmitterMode = 3
	/*Represents the size of the [enum SubEmitterMode] enum.*/
	ParticleProcessMaterialSubEmitterMax ParticleProcessMaterialSubEmitterMode = 4
)

type Path2D

type Path2D = classdb.Path2D

Can have PathFollow2D child nodes moving along the Curve2D. See PathFollow2D for more information on usage. [b]Note:[/b] The path is considered as relative to the moved nodes (children of PathFollow2D). As such, the curve should usually start with a zero vector ([code](0, 0)[/code]).

type Path3D

type Path3D = classdb.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 [code](0, 0, 0)[/code].

type PathFollow2D

type PathFollow2D = classdb.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 [member progress] in this node.

type PathFollow3D

type PathFollow3D = classdb.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 [member progress] in this node.

type PathFollow3DRotationMode

type PathFollow3DRotationMode = classdb.PathFollow3DRotationMode
const (
	/*Forbids the PathFollow3D to rotate.*/
	PathFollow3DRotationNone PathFollow3DRotationMode = 0
	/*Allows the PathFollow3D to rotate in the Y axis only.*/
	PathFollow3DRotationY PathFollow3DRotationMode = 1
	/*Allows the PathFollow3D to rotate in both the X, and Y axes.*/
	PathFollow3DRotationXy PathFollow3DRotationMode = 2
	/*Allows the PathFollow3D to rotate in any axis.*/
	PathFollow3DRotationXyz PathFollow3DRotationMode = 3
	/*Uses the up vector information in a [Curve3D] to enforce orientation. This rotation mode requires the [Path3D]'s [member Curve3D.up_vector_enabled] property to be set to [code]true[/code].*/
	PathFollow3DRotationOriented PathFollow3DRotationMode = 4
)

type PerformanceMonitor

type PerformanceMonitor = classdb.PerformanceMonitor
const (
	/*The number of frames rendered in the last second. This metric is only updated once per second, even if queried more often. [i]Higher is better.[/i]*/
	PerformanceTimeFps PerformanceMonitor = 0
	/*Time it took to complete one frame, in seconds. [i]Lower is better.[/i]*/
	PerformanceTimeProcess PerformanceMonitor = 1
	/*Time it took to complete one physics frame, in seconds. [i]Lower is better.[/i]*/
	PerformanceTimePhysicsProcess PerformanceMonitor = 2
	/*Time it took to complete one navigation step, in seconds. This includes navigation map updates as well as agent avoidance calculations. [i]Lower is better.[/i]*/
	PerformanceTimeNavigationProcess PerformanceMonitor = 3
	/*Static memory currently used, in bytes. Not available in release builds. [i]Lower is better.[/i]*/
	PerformanceMemoryStatic PerformanceMonitor = 4
	/*Available static memory. Not available in release builds. [i]Lower is better.[/i]*/
	PerformanceMemoryStaticMax PerformanceMonitor = 5
	/*Largest amount of memory the message queue buffer has used, in bytes. The message queue is used for deferred functions calls and notifications. [i]Lower is better.[/i]*/
	PerformanceMemoryMessageBufferMax PerformanceMonitor = 6
	/*Number of objects currently instantiated (including nodes). [i]Lower is better.[/i]*/
	PerformanceObjectCount PerformanceMonitor = 7
	/*Number of resources currently used. [i]Lower is better.[/i]*/
	PerformanceObjectResourceCount PerformanceMonitor = 8
	/*Number of nodes currently instantiated in the scene tree. This also includes the root node. [i]Lower is better.[/i]*/
	PerformanceObjectNodeCount PerformanceMonitor = 9
	/*Number of orphan nodes, i.e. nodes which are not parented to a node of the scene tree. [i]Lower is better.[/i]*/
	PerformanceObjectOrphanNodeCount PerformanceMonitor = 10
	/*The total number of objects in the last rendered frame. This metric doesn't include culled objects (either via hiding nodes, frustum culling or occlusion culling). [i]Lower is better.[/i]*/
	PerformanceRenderTotalObjectsInFrame PerformanceMonitor = 11
	/*The total number of vertices or indices rendered in the last rendered frame. This metric doesn't include primitives from culled objects (either via hiding nodes, frustum culling or occlusion culling). Due to the depth prepass and shadow passes, the number of primitives is always higher than the actual number of vertices in the scene (typically double or triple the original vertex count). [i]Lower is better.[/i]*/
	PerformanceRenderTotalPrimitivesInFrame PerformanceMonitor = 12
	/*The total number of draw calls performed in the last rendered frame. This metric doesn't include culled objects (either via hiding nodes, frustum culling or occlusion culling), since they do not result in draw calls. [i]Lower is better.[/i]*/
	PerformanceRenderTotalDrawCallsInFrame PerformanceMonitor = 13
	/*The amount of video memory used (texture and vertex memory combined, in bytes). Since this metric also includes miscellaneous allocations, this value is always greater than the sum of [constant RENDER_TEXTURE_MEM_USED] and [constant RENDER_BUFFER_MEM_USED]. [i]Lower is better.[/i]*/
	PerformanceRenderVideoMemUsed PerformanceMonitor = 14
	/*The amount of texture memory used (in bytes). [i]Lower is better.[/i]*/
	PerformanceRenderTextureMemUsed PerformanceMonitor = 15
	/*The amount of render buffer memory used (in bytes). [i]Lower is better.[/i]*/
	PerformanceRenderBufferMemUsed PerformanceMonitor = 16
	/*Number of active [RigidBody2D] nodes in the game. [i]Lower is better.[/i]*/
	PerformancePhysics2dActiveObjects PerformanceMonitor = 17
	/*Number of collision pairs in the 2D physics engine. [i]Lower is better.[/i]*/
	PerformancePhysics2dCollisionPairs PerformanceMonitor = 18
	/*Number of islands in the 2D physics engine. [i]Lower is better.[/i]*/
	PerformancePhysics2dIslandCount PerformanceMonitor = 19
	/*Number of active [RigidBody3D] and [VehicleBody3D] nodes in the game. [i]Lower is better.[/i]*/
	PerformancePhysics3dActiveObjects PerformanceMonitor = 20
	/*Number of collision pairs in the 3D physics engine. [i]Lower is better.[/i]*/
	PerformancePhysics3dCollisionPairs PerformanceMonitor = 21
	/*Number of islands in the 3D physics engine. [i]Lower is better.[/i]*/
	PerformancePhysics3dIslandCount PerformanceMonitor = 22
	/*Output latency of the [AudioServer]. Equivalent to calling [method AudioServer.get_output_latency], it is not recommended to call this every frame.*/
	PerformanceAudioOutputLatency PerformanceMonitor = 23
	/*Number of active navigation maps in the [NavigationServer3D]. This also includes the two empty default navigation maps created by World2D and World3D.*/
	PerformanceNavigationActiveMaps PerformanceMonitor = 24
	/*Number of active navigation regions in the [NavigationServer3D].*/
	PerformanceNavigationRegionCount PerformanceMonitor = 25
	/*Number of active navigation agents processing avoidance in the [NavigationServer3D].*/
	PerformanceNavigationAgentCount PerformanceMonitor = 26
	/*Number of active navigation links in the [NavigationServer3D].*/
	PerformanceNavigationLinkCount PerformanceMonitor = 27
	/*Number of navigation mesh polygons in the [NavigationServer3D].*/
	PerformanceNavigationPolygonCount PerformanceMonitor = 28
	/*Number of navigation mesh polygon edges in the [NavigationServer3D].*/
	PerformanceNavigationEdgeCount PerformanceMonitor = 29
	/*Number of navigation mesh polygon edges that were merged due to edge key overlap in the [NavigationServer3D].*/
	PerformanceNavigationEdgeMergeCount PerformanceMonitor = 30
	/*Number of polygon edges that are considered connected by edge proximity [NavigationServer3D].*/
	PerformanceNavigationEdgeConnectionCount PerformanceMonitor = 31
	/*Number of navigation mesh polygon edges that could not be merged in the [NavigationServer3D]. The edges still may be connected by edge proximity or with links.*/
	PerformanceNavigationEdgeFreeCount PerformanceMonitor = 32
	/*Represents the size of the [enum Monitor] enum.*/
	PerformanceMonitorMax PerformanceMonitor = 33
)

type PhysicalBone2D

type PhysicalBone2D = classdb.PhysicalBone2D

The PhysicalBone2D node is a RigidBody2D-based node that can be used to make [Bone2D]s in a Skeleton2D react to physics. [b]Note:[/b] To make the [Bone2D]s visually follow the PhysicalBone2D node, use a SkeletonModification2DPhysicalBones modification on the Skeleton2D parent. [b]Note:[/b] 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.

type PhysicalBone3D

type PhysicalBone3D = classdb.PhysicalBone3D

The PhysicalBone3D node is a physics body that can be used to make bones in a Skeleton3D react to physics.

// PhysicalBone3D methods that can be overridden by a [Class] that extends it.
type PhysicalBone3D interface {
	//Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the [member custom_integrator] property allows you to disable the default behavior and do fully custom force integration for a body.
	IntegrateForces(godot Context, state PhysicsDirectBodyState3D)
}

type PhysicalBone3DDampMode

type PhysicalBone3DDampMode = classdb.PhysicalBone3DDampMode
const (
	/*In this mode, the body's damping value is added to any value set in areas or the default value.*/
	PhysicalBone3DDampModeCombine PhysicalBone3DDampMode = 0
	/*In this mode, the body's damping value replaces any value set in areas or the default value.*/
	PhysicalBone3DDampModeReplace PhysicalBone3DDampMode = 1
)

type PhysicalBone3DJointType

type PhysicalBone3DJointType = classdb.PhysicalBone3DJointType
const (
	PhysicalBone3DJointTypeNone   PhysicalBone3DJointType = 0
	PhysicalBone3DJointTypePin    PhysicalBone3DJointType = 1
	PhysicalBone3DJointTypeCone   PhysicalBone3DJointType = 2
	PhysicalBone3DJointTypeHinge  PhysicalBone3DJointType = 3
	PhysicalBone3DJointTypeSlider PhysicalBone3DJointType = 4
	PhysicalBone3DJointType6dof   PhysicalBone3DJointType = 5
)

type PhysicalSkyMaterial

type PhysicalSkyMaterial = classdb.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.

type PhysicsBody2D

type PhysicsBody2D = classdb.PhysicsBody2D

PhysicsBody2D is an abstract base class for 2D game objects affected by physics. All 2D physics bodies inherit from it.

type PhysicsBody3D

type PhysicsBody3D = classdb.PhysicsBody3D

PhysicsBody3D is an abstract base class for 3D game objects affected by physics. All 3D physics bodies inherit from it. [b]Warning:[/b] 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.

type PhysicsDirectBodyState2D

type PhysicsDirectBodyState2D = classdb.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 [method RigidBody2D._integrate_forces].

type PhysicsDirectBodyState2DExtension

type PhysicsDirectBodyState2DExtension = classdb.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 methods that can be overridden by a [Class] that extends it.
type PhysicsDirectBodyState2DExtension interface {
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.total_gravity] and its respective getter.
	GetTotalGravity(godot Context) gd.Vector2
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.total_linear_damp] and its respective getter.
	GetTotalLinearDamp(godot Context) gd.Float
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.total_angular_damp] and its respective getter.
	GetTotalAngularDamp(godot Context) gd.Float
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.center_of_mass] and its respective getter.
	GetCenterOfMass(godot Context) gd.Vector2
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.center_of_mass_local] and its respective getter.
	GetCenterOfMassLocal(godot Context) gd.Vector2
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.inverse_mass] and its respective getter.
	GetInverseMass(godot Context) gd.Float
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.inverse_inertia] and its respective getter.
	GetInverseInertia(godot Context) gd.Float
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.linear_velocity] and its respective setter.
	SetLinearVelocity(godot Context, velocity gd.Vector2)
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.linear_velocity] and its respective getter.
	GetLinearVelocity(godot Context) gd.Vector2
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.angular_velocity] and its respective setter.
	SetAngularVelocity(godot Context, velocity gd.Float)
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.angular_velocity] and its respective getter.
	GetAngularVelocity(godot Context) gd.Float
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.transform] and its respective setter.
	SetTransform(godot Context, transform gd.Transform2D)
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.transform] and its respective getter.
	GetTransform(godot Context) gd.Transform2D
	//Overridable version of [method PhysicsDirectBodyState2D.get_velocity_at_local_position].
	GetVelocityAtLocalPosition(godot Context, local_position gd.Vector2) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.apply_central_impulse].
	ApplyCentralImpulse(godot Context, impulse gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.apply_impulse].
	ApplyImpulse(godot Context, impulse gd.Vector2, position gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.apply_torque_impulse].
	ApplyTorqueImpulse(godot Context, impulse gd.Float)
	//Overridable version of [method PhysicsDirectBodyState2D.apply_central_force].
	ApplyCentralForce(godot Context, force gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.apply_force].
	ApplyForce(godot Context, force gd.Vector2, position gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.apply_torque].
	ApplyTorque(godot Context, torque gd.Float)
	//Overridable version of [method PhysicsDirectBodyState2D.add_constant_central_force].
	AddConstantCentralForce(godot Context, force gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.add_constant_force].
	AddConstantForce(godot Context, force gd.Vector2, position gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.add_constant_torque].
	AddConstantTorque(godot Context, torque gd.Float)
	//Overridable version of [method PhysicsDirectBodyState2D.set_constant_force].
	SetConstantForce(godot Context, force gd.Vector2)
	//Overridable version of [method PhysicsDirectBodyState2D.get_constant_force].
	GetConstantForce(godot Context) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.set_constant_torque].
	SetConstantTorque(godot Context, torque gd.Float)
	//Overridable version of [method PhysicsDirectBodyState2D.get_constant_torque].
	GetConstantTorque(godot Context) gd.Float
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.sleeping] and its respective setter.
	SetSleepState(godot Context, enabled bool)
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.sleeping] and its respective getter.
	IsSleeping(godot Context) bool
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_count].
	GetContactCount(godot Context) gd.Int
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_local_position].
	GetContactLocalPosition(godot Context, contact_idx gd.Int) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_local_normal].
	GetContactLocalNormal(godot Context, contact_idx gd.Int) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_local_shape].
	GetContactLocalShape(godot Context, contact_idx gd.Int) gd.Int
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_local_velocity_at_position].
	GetContactLocalVelocityAtPosition(godot Context, contact_idx gd.Int) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider].
	GetContactCollider(godot Context, contact_idx gd.Int) gd.RID
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider_position].
	GetContactColliderPosition(godot Context, contact_idx gd.Int) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider_id].
	GetContactColliderId(godot Context, contact_idx gd.Int) gd.Int
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider_object].
	GetContactColliderObject(godot Context, contact_idx gd.Int) gd.Object
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider_shape].
	GetContactColliderShape(godot Context, contact_idx gd.Int) gd.Int
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_collider_velocity_at_position].
	GetContactColliderVelocityAtPosition(godot Context, contact_idx gd.Int) gd.Vector2
	//Overridable version of [method PhysicsDirectBodyState2D.get_contact_impulse].
	GetContactImpulse(godot Context, contact_idx gd.Int) gd.Vector2
	//Implement to override the behavior of [member PhysicsDirectBodyState2D.step] and its respective getter.
	GetStep(godot Context) gd.Float
	//Overridable version of [method PhysicsDirectBodyState2D.integrate_forces].
	IntegrateForces(godot Context)
	//Overridable version of [method PhysicsDirectBodyState2D.get_space_state].
	GetSpaceState(godot Context) PhysicsDirectSpaceState2D
}

type PhysicsDirectBodyState3D

type PhysicsDirectBodyState3D = classdb.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 [method RigidBody3D._integrate_forces].

type PhysicsDirectBodyState3DExtension

type PhysicsDirectBodyState3DExtension = classdb.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 methods that can be overridden by a [Class] that extends it.
type PhysicsDirectBodyState3DExtension interface {
	GetTotalGravity(godot Context) gd.Vector3
	GetTotalLinearDamp(godot Context) gd.Float
	GetTotalAngularDamp(godot Context) gd.Float
	GetCenterOfMass(godot Context) gd.Vector3
	GetCenterOfMassLocal(godot Context) gd.Vector3
	GetPrincipalInertiaAxes(godot Context) gd.Basis
	GetInverseMass(godot Context) gd.Float
	GetInverseInertia(godot Context) gd.Vector3
	GetInverseInertiaTensor(godot Context) gd.Basis
	SetLinearVelocity(godot Context, velocity gd.Vector3)
	GetLinearVelocity(godot Context) gd.Vector3
	SetAngularVelocity(godot Context, velocity gd.Vector3)
	GetAngularVelocity(godot Context) gd.Vector3
	SetTransform(godot Context, transform gd.Transform3D)
	GetTransform(godot Context) gd.Transform3D
	GetVelocityAtLocalPosition(godot Context, local_position gd.Vector3) gd.Vector3
	ApplyCentralImpulse(godot Context, impulse gd.Vector3)
	ApplyImpulse(godot Context, impulse gd.Vector3, position gd.Vector3)
	ApplyTorqueImpulse(godot Context, impulse gd.Vector3)
	ApplyCentralForce(godot Context, force gd.Vector3)
	ApplyForce(godot Context, force gd.Vector3, position gd.Vector3)
	ApplyTorque(godot Context, torque gd.Vector3)
	AddConstantCentralForce(godot Context, force gd.Vector3)
	AddConstantForce(godot Context, force gd.Vector3, position gd.Vector3)
	AddConstantTorque(godot Context, torque gd.Vector3)
	SetConstantForce(godot Context, force gd.Vector3)
	GetConstantForce(godot Context) gd.Vector3
	SetConstantTorque(godot Context, torque gd.Vector3)
	GetConstantTorque(godot Context) gd.Vector3
	SetSleepState(godot Context, enabled bool)
	IsSleeping(godot Context) bool
	GetContactCount(godot Context) gd.Int
	GetContactLocalPosition(godot Context, contact_idx gd.Int) gd.Vector3
	GetContactLocalNormal(godot Context, contact_idx gd.Int) gd.Vector3
	GetContactImpulse(godot Context, contact_idx gd.Int) gd.Vector3
	GetContactLocalShape(godot Context, contact_idx gd.Int) gd.Int
	GetContactLocalVelocityAtPosition(godot Context, contact_idx gd.Int) gd.Vector3
	GetContactCollider(godot Context, contact_idx gd.Int) gd.RID
	GetContactColliderPosition(godot Context, contact_idx gd.Int) gd.Vector3
	GetContactColliderId(godot Context, contact_idx gd.Int) gd.Int
	GetContactColliderObject(godot Context, contact_idx gd.Int) gd.Object
	GetContactColliderShape(godot Context, contact_idx gd.Int) gd.Int
	GetContactColliderVelocityAtPosition(godot Context, contact_idx gd.Int) gd.Vector3
	GetStep(godot Context) gd.Float
	IntegrateForces(godot Context)
	GetSpaceState(godot Context) PhysicsDirectSpaceState3D
}

type PhysicsDirectSpaceState2D

type PhysicsDirectSpaceState2D = classdb.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.

type PhysicsDirectSpaceState2DExtension

type PhysicsDirectSpaceState2DExtension = classdb.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 methods that can be overridden by a [Class] that extends it.
type PhysicsDirectSpaceState2DExtension interface {
	IntersectRay(godot Context, from gd.Vector2, to gd.Vector2, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, hit_from_inside bool, result *PhysicsServer2DExtensionRayResult) bool
	IntersectPoint(godot Context, position gd.Vector2, canvas_instance_id gd.Int, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, results *PhysicsServer2DExtensionShapeResult, max_results gd.Int) gd.Int
	IntersectShape(godot Context, shape_rid gd.RID, transform gd.Transform2D, motion gd.Vector2, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, result *PhysicsServer2DExtensionShapeResult, max_results gd.Int) gd.Int
	CastMotion(godot Context, shape_rid gd.RID, transform gd.Transform2D, motion gd.Vector2, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, closest_safe *float64, closest_unsafe *float64) bool
	CollideShape(godot Context, shape_rid gd.RID, transform gd.Transform2D, motion gd.Vector2, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, results unsafe.Pointer, max_results gd.Int, result_count *int32) bool
	RestInfo(godot Context, shape_rid gd.RID, transform gd.Transform2D, motion gd.Vector2, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, rest_info *PhysicsServer2DExtensionShapeRestInfo) bool
}

type PhysicsDirectSpaceState3D

type PhysicsDirectSpaceState3D = classdb.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.

type PhysicsDirectSpaceState3DExtension

type PhysicsDirectSpaceState3DExtension = classdb.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 methods that can be overridden by a [Class] that extends it.
type PhysicsDirectSpaceState3DExtension interface {
	IntersectRay(godot Context, from gd.Vector3, to gd.Vector3, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, hit_from_inside bool, hit_back_faces bool, pick_ray bool, result *PhysicsServer3DExtensionRayResult) bool
	IntersectPoint(godot Context, position gd.Vector3, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, results *PhysicsServer3DExtensionShapeResult, max_results gd.Int) gd.Int
	IntersectShape(godot Context, shape_rid gd.RID, transform gd.Transform3D, motion gd.Vector3, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, result_count *PhysicsServer3DExtensionShapeResult, max_results gd.Int) gd.Int
	CastMotion(godot Context, shape_rid gd.RID, transform gd.Transform3D, motion gd.Vector3, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, closest_safe *float64, closest_unsafe *float64, info *PhysicsServer3DExtensionShapeRestInfo) bool
	CollideShape(godot Context, shape_rid gd.RID, transform gd.Transform3D, motion gd.Vector3, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, results unsafe.Pointer, max_results gd.Int, result_count *int32) bool
	RestInfo(godot Context, shape_rid gd.RID, transform gd.Transform3D, motion gd.Vector3, margin gd.Float, collision_mask gd.Int, collide_with_bodies bool, collide_with_areas bool, rest_info *PhysicsServer3DExtensionShapeRestInfo) bool
	GetClosestPointToObjectVolume(godot Context, object gd.RID, point gd.Vector3) gd.Vector3
}

type PhysicsMaterial

type PhysicsMaterial = classdb.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.

type PhysicsPointQueryParameters2D

type PhysicsPointQueryParameters2D = classdb.PhysicsPointQueryParameters2D

By changing various properties of this object, such as the point position, you can configure the parameters for [method PhysicsDirectSpaceState2D.intersect_point].

type PhysicsPointQueryParameters3D

type PhysicsPointQueryParameters3D = classdb.PhysicsPointQueryParameters3D

By changing various properties of this object, such as the point position, you can configure the parameters for [method PhysicsDirectSpaceState3D.intersect_point].

type PhysicsRayQueryParameters2D

type PhysicsRayQueryParameters2D = classdb.PhysicsRayQueryParameters2D

By changing various properties of this object, such as the ray position, you can configure the parameters for [method PhysicsDirectSpaceState2D.intersect_ray].

type PhysicsRayQueryParameters3D

type PhysicsRayQueryParameters3D = classdb.PhysicsRayQueryParameters3D

By changing various properties of this object, such as the ray position, you can configure the parameters for [method PhysicsDirectSpaceState3D.intersect_ray].

type PhysicsServer2DAreaBodyStatus

type PhysicsServer2DAreaBodyStatus = classdb.PhysicsServer2DAreaBodyStatus
const (
	/*The value of the first parameter and area callback function receives, when an object enters one of its shapes.*/
	PhysicsServer2DAreaBodyAdded PhysicsServer2DAreaBodyStatus = 0
	/*The value of the first parameter and area callback function receives, when an object exits one of its shapes.*/
	PhysicsServer2DAreaBodyRemoved PhysicsServer2DAreaBodyStatus = 1
)

type PhysicsServer2DAreaParameter

type PhysicsServer2DAreaParameter = classdb.PhysicsServer2DAreaParameter
const (
	/*Constant to set/get gravity override mode in an area. See [enum AreaSpaceOverrideMode] for possible values. The default value of this parameter is [constant AREA_SPACE_OVERRIDE_DISABLED].*/
	PhysicsServer2DAreaParamGravityOverrideMode PhysicsServer2DAreaParameter = 0
	/*Constant to set/get gravity strength in an area. The default value of this parameter is [code]9.80665[/code].*/
	PhysicsServer2DAreaParamGravity PhysicsServer2DAreaParameter = 1
	/*Constant to set/get gravity vector/center in an area. The default value of this parameter is [code]Vector2(0, -1)[/code].*/
	PhysicsServer2DAreaParamGravityVector PhysicsServer2DAreaParameter = 2
	/*Constant to set/get whether the gravity vector of an area is a direction, or a center point. The default value of this parameter is [code]false[/code].*/
	PhysicsServer2DAreaParamGravityIsPoint PhysicsServer2DAreaParameter = 3
	/*Constant to set/get the distance at which the gravity strength is equal to the gravity controlled by [constant AREA_PARAM_GRAVITY]. For example, on a planet 100 pixels in radius with a surface gravity of 4.0 px/s², set the gravity to 4.0 and the unit distance to 100.0. The gravity will have falloff according to the inverse square law, so in the example, at 200 pixels from the center the gravity will be 1.0 px/s² (twice the distance, 1/4th the gravity), at 50 pixels it will be 16.0 px/s² (half the distance, 4x the gravity), and so on.
	  The above is true only when the unit distance is a positive number. When the unit distance is set to 0.0, the gravity will be constant regardless of distance. The default value of this parameter is [code]0.0[/code].*/
	PhysicsServer2DAreaParamGravityPointUnitDistance PhysicsServer2DAreaParameter = 4
	/*Constant to set/get linear damping override mode in an area. See [enum AreaSpaceOverrideMode] for possible values. The default value of this parameter is [constant AREA_SPACE_OVERRIDE_DISABLED].*/
	PhysicsServer2DAreaParamLinearDampOverrideMode PhysicsServer2DAreaParameter = 5
	/*Constant to set/get the linear damping factor of an area. The default value of this parameter is [code]0.1[/code].*/
	PhysicsServer2DAreaParamLinearDamp PhysicsServer2DAreaParameter = 6
	/*Constant to set/get angular damping override mode in an area. See [enum AreaSpaceOverrideMode] for possible values. The default value of this parameter is [constant AREA_SPACE_OVERRIDE_DISABLED].*/
	PhysicsServer2DAreaParamAngularDampOverrideMode PhysicsServer2DAreaParameter = 7
	/*Constant to set/get the angular damping factor of an area. The default value of this parameter is [code]1.0[/code].*/
	PhysicsServer2DAreaParamAngularDamp PhysicsServer2DAreaParameter = 8
	/*Constant to set/get the priority (order of processing) of an area. The default value of this parameter is [code]0[/code].*/
	PhysicsServer2DAreaParamPriority PhysicsServer2DAreaParameter = 9
)

type PhysicsServer2DAreaSpaceOverrideMode

type PhysicsServer2DAreaSpaceOverrideMode = classdb.PhysicsServer2DAreaSpaceOverrideMode
const (
	/*This area does not affect gravity/damp. These are generally areas that exist only to detect collisions, and objects entering or exiting them.*/
	PhysicsServer2DAreaSpaceOverrideDisabled PhysicsServer2DAreaSpaceOverrideMode = 0
	/*This area adds its gravity/damp values to whatever has been calculated so far. This way, many overlapping areas can combine their physics to make interesting effects.*/
	PhysicsServer2DAreaSpaceOverrideCombine PhysicsServer2DAreaSpaceOverrideMode = 1
	/*This area adds its gravity/damp values to whatever has been calculated so far. Then stops taking into account the rest of the areas, even the default one.*/
	PhysicsServer2DAreaSpaceOverrideCombineReplace PhysicsServer2DAreaSpaceOverrideMode = 2
	/*This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas.*/
	PhysicsServer2DAreaSpaceOverrideReplace PhysicsServer2DAreaSpaceOverrideMode = 3
	/*This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one.*/
	PhysicsServer2DAreaSpaceOverrideReplaceCombine PhysicsServer2DAreaSpaceOverrideMode = 4
)

type PhysicsServer2DBodyDampMode

type PhysicsServer2DBodyDampMode = classdb.PhysicsServer2DBodyDampMode
const (
	/*The body's damping value is added to any value set in areas or the default value.*/
	PhysicsServer2DBodyDampModeCombine PhysicsServer2DBodyDampMode = 0
	/*The body's damping value replaces any value set in areas or the default value.*/
	PhysicsServer2DBodyDampModeReplace PhysicsServer2DBodyDampMode = 1
)

type PhysicsServer2DBodyMode

type PhysicsServer2DBodyMode = classdb.PhysicsServer2DBodyMode
const (
	/*Constant for static bodies. In this mode, a body can be only moved by user code and doesn't collide with other bodies along its path when moved.*/
	PhysicsServer2DBodyModeStatic PhysicsServer2DBodyMode = 0
	/*Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path.*/
	PhysicsServer2DBodyModeKinematic PhysicsServer2DBodyMode = 1
	/*Constant for rigid bodies. In this mode, a body can be pushed by other bodies and has forces applied.*/
	PhysicsServer2DBodyModeRigid PhysicsServer2DBodyMode = 2
	/*Constant for linear rigid bodies. In this mode, a body can not rotate, and only its linear velocity is affected by external forces.*/
	PhysicsServer2DBodyModeRigidLinear PhysicsServer2DBodyMode = 3
)

type PhysicsServer2DBodyParameter

type PhysicsServer2DBodyParameter = classdb.PhysicsServer2DBodyParameter
const (
	/*Constant to set/get a body's bounce factor. The default value of this parameter is [code]0.0[/code].*/
	PhysicsServer2DBodyParamBounce PhysicsServer2DBodyParameter = 0
	/*Constant to set/get a body's friction. The default value of this parameter is [code]1.0[/code].*/
	PhysicsServer2DBodyParamFriction PhysicsServer2DBodyParameter = 1
	/*Constant to set/get a body's mass. The default value of this parameter is [code]1.0[/code]. If the body's mode is set to [constant BODY_MODE_RIGID], then setting this parameter will have the following additional effects:
	  - If the parameter [constant BODY_PARAM_CENTER_OF_MASS] has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes.
	  - If the parameter [constant BODY_PARAM_INERTIA] is set to a value [code]<= 0.0[/code], then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass.*/
	PhysicsServer2DBodyParamMass PhysicsServer2DBodyParameter = 2
	/*Constant to set/get a body's inertia. The default value of this parameter is [code]0.0[/code]. If the body's inertia is set to a value [code]<= 0.0[/code], then the inertia will be recalculated based on the body's shapes, mass, and center of mass.*/
	PhysicsServer2DBodyParamInertia PhysicsServer2DBodyParameter = 3
	/*Constant to set/get a body's center of mass position in the body's local coordinate system. The default value of this parameter is [code]Vector2(0,0)[/code]. If this parameter is never set explicitly, then it is recalculated based on the body's shapes when setting the parameter [constant BODY_PARAM_MASS] or when calling [method body_set_space].*/
	PhysicsServer2DBodyParamCenterOfMass PhysicsServer2DBodyParameter = 4
	/*Constant to set/get a body's gravity multiplier. The default value of this parameter is [code]1.0[/code].*/
	PhysicsServer2DBodyParamGravityScale PhysicsServer2DBodyParameter = 5
	/*Constant to set/get a body's linear damping mode. See [enum BodyDampMode] for possible values. The default value of this parameter is [constant BODY_DAMP_MODE_COMBINE].*/
	PhysicsServer2DBodyParamLinearDampMode PhysicsServer2DBodyParameter = 6
	/*Constant to set/get a body's angular damping mode. See [enum BodyDampMode] for possible values. The default value of this parameter is [constant BODY_DAMP_MODE_COMBINE].*/
	PhysicsServer2DBodyParamAngularDampMode PhysicsServer2DBodyParameter = 7
	/*Constant to set/get a body's linear damping factor. The default value of this parameter is [code]0.0[/code].*/
	PhysicsServer2DBodyParamLinearDamp PhysicsServer2DBodyParameter = 8
	/*Constant to set/get a body's angular damping factor. The default value of this parameter is [code]0.0[/code].*/
	PhysicsServer2DBodyParamAngularDamp PhysicsServer2DBodyParameter = 9
	/*Represents the size of the [enum BodyParameter] enum.*/
	PhysicsServer2DBodyParamMax PhysicsServer2DBodyParameter = 10
)

type PhysicsServer2DBodyState

type PhysicsServer2DBodyState = classdb.PhysicsServer2DBodyState
const (
	/*Constant to set/get the current transform matrix of the body.*/
	PhysicsServer2DBodyStateTransform PhysicsServer2DBodyState = 0
	/*Constant to set/get the current linear velocity of the body.*/
	PhysicsServer2DBodyStateLinearVelocity PhysicsServer2DBodyState = 1
	/*Constant to set/get the current angular velocity of the body.*/
	PhysicsServer2DBodyStateAngularVelocity PhysicsServer2DBodyState = 2
	/*Constant to sleep/wake up a body, or to get whether it is sleeping.*/
	PhysicsServer2DBodyStateSleeping PhysicsServer2DBodyState = 3
	/*Constant to set/get whether the body can sleep.*/
	PhysicsServer2DBodyStateCanSleep PhysicsServer2DBodyState = 4
)

type PhysicsServer2DCCDMode

type PhysicsServer2DCCDMode = classdb.PhysicsServer2DCCDMode
const (
	/*Disables continuous collision detection. This is the fastest way to detect body collisions, but it can miss small and/or fast-moving objects.*/
	PhysicsServer2DCcdModeDisabled PhysicsServer2DCCDMode = 0
	/*Enables continuous collision detection by raycasting. It is faster than shapecasting, but less precise.*/
	PhysicsServer2DCcdModeCastRay PhysicsServer2DCCDMode = 1
	/*Enables continuous collision detection by shapecasting. It is the slowest CCD method, and the most precise.*/
	PhysicsServer2DCcdModeCastShape PhysicsServer2DCCDMode = 2
)

type PhysicsServer2DDampedSpringParam

type PhysicsServer2DDampedSpringParam = classdb.PhysicsServer2DDampedSpringParam
const (
	/*Sets the resting length of the spring joint. The joint will always try to go to back this length when pulled apart. The default value of this parameter is the distance between the joint's anchor points.*/
	PhysicsServer2DDampedSpringRestLength PhysicsServer2DDampedSpringParam = 0
	/*Sets the stiffness of the spring joint. The joint applies a force equal to the stiffness times the distance from its resting length. The default value of this parameter is [code]20.0[/code].*/
	PhysicsServer2DDampedSpringStiffness PhysicsServer2DDampedSpringParam = 1
	/*Sets the damping ratio of the spring joint. A value of 0 indicates an undamped spring, while 1 causes the system to reach equilibrium as fast as possible (critical damping). The default value of this parameter is [code]1.5[/code].*/
	PhysicsServer2DDampedSpringDamping PhysicsServer2DDampedSpringParam = 2
)

type PhysicsServer2DExtension

type PhysicsServer2DExtension = classdb.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 methods that can be overridden by a [Class] that extends it.
type PhysicsServer2DExtension interface {
	//Overridable version of [method PhysicsServer2D.world_boundary_shape_create].
	WorldBoundaryShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.separation_ray_shape_create].
	SeparationRayShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.segment_shape_create].
	SegmentShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.circle_shape_create].
	CircleShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.rectangle_shape_create].
	RectangleShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.capsule_shape_create].
	CapsuleShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.convex_polygon_shape_create].
	ConvexPolygonShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.concave_polygon_shape_create].
	ConcavePolygonShapeCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.shape_set_data].
	ShapeSetData(godot Context, shape gd.RID, data gd.Variant)
	//Should set the custom solver bias for the given [param shape]. It defines how much bodies are forced to separate on contact.
	//Overridable version of [PhysicsServer2D]'s internal [code]shape_get_custom_solver_bias[/code] method. Corresponds to [member Shape2D.custom_solver_bias].
	ShapeSetCustomSolverBias(godot Context, shape gd.RID, bias gd.Float)
	//Overridable version of [method PhysicsServer2D.shape_get_type].
	ShapeGetType(godot Context, shape gd.RID) PhysicsServer2DShapeType
	//Overridable version of [method PhysicsServer2D.shape_get_data].
	ShapeGetData(godot Context, shape gd.RID) gd.Variant
	//Should return the custom solver bias of the given [param shape], which defines how much bodies are forced to separate on contact when this shape is involved.
	//Overridable version of [PhysicsServer2D]'s internal [code]shape_get_custom_solver_bias[/code] method. Corresponds to [member Shape2D.custom_solver_bias].
	ShapeGetCustomSolverBias(godot Context, shape gd.RID) gd.Float
	//Given two shapes and their parameters, should return [code]true[/code] if a collision between the two would occur, with additional details passed in [param results].
	//Overridable version of [PhysicsServer2D]'s internal [code]shape_collide[/code] method. Corresponds to [method PhysicsDirectSpaceState2D.collide_shape].
	ShapeCollide(godot Context, shape_A gd.RID, xform_A gd.Transform2D, motion_A gd.Vector2, shape_B gd.RID, xform_B gd.Transform2D, motion_B gd.Vector2, results unsafe.Pointer, result_max gd.Int, result_count *int32) bool
	//Overridable version of [method PhysicsServer2D.space_create].
	SpaceCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.space_set_active].
	SpaceSetActive(godot Context, space gd.RID, active bool)
	//Overridable version of [method PhysicsServer2D.space_is_active].
	SpaceIsActive(godot Context, space gd.RID) bool
	//Overridable version of [method PhysicsServer2D.space_set_param].
	SpaceSetParam(godot Context, space gd.RID, param PhysicsServer2DSpaceParameter, value gd.Float)
	//Overridable version of [method PhysicsServer2D.space_get_param].
	SpaceGetParam(godot Context, space gd.RID, param PhysicsServer2DSpaceParameter) gd.Float
	//Overridable version of [method PhysicsServer2D.space_get_direct_state].
	SpaceGetDirectState(godot Context, space gd.RID) PhysicsDirectSpaceState2D
	//Used internally to allow the given [param space] to store contact points, up to [param max_contacts]. This is automatically set for the main [World2D]'s space when [member SceneTree.debug_collisions_hint] is [code]true[/code], or by checking "Visible Collision Shapes" in the editor. Only works in debug builds.
	//Overridable version of [PhysicsServer2D]'s internal [code]space_set_debug_contacts[/code] method.
	SpaceSetDebugContacts(godot Context, space gd.RID, max_contacts gd.Int)
	//Should return the positions of all contacts that have occurred during the last physics step in the given [param space]. See also [method _space_get_contact_count] and [method _space_set_debug_contacts].
	//Overridable version of [PhysicsServer2D]'s internal [code]space_get_contacts[/code] method.
	SpaceGetContacts(godot Context, space gd.RID) gd.PackedVector2Array
	//Should return how many contacts have occurred during the last physics step in the given [param space]. See also [method _space_get_contacts] and [method _space_set_debug_contacts].
	//Overridable version of [PhysicsServer2D]'s internal [code]space_get_contact_count[/code] method.
	SpaceGetContactCount(godot Context, space gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.area_create].
	AreaCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.area_set_space].
	AreaSetSpace(godot Context, area gd.RID, space gd.RID)
	//Overridable version of [method PhysicsServer2D.area_get_space].
	AreaGetSpace(godot Context, area gd.RID) gd.RID
	//Overridable version of [method PhysicsServer2D.area_add_shape].
	AreaAddShape(godot Context, area gd.RID, shape gd.RID, transform gd.Transform2D, disabled bool)
	//Overridable version of [method PhysicsServer2D.area_set_shape].
	AreaSetShape(godot Context, area gd.RID, shape_idx gd.Int, shape gd.RID)
	//Overridable version of [method PhysicsServer2D.area_set_shape_transform].
	AreaSetShapeTransform(godot Context, area gd.RID, shape_idx gd.Int, transform gd.Transform2D)
	//Overridable version of [method PhysicsServer2D.area_set_shape_disabled].
	AreaSetShapeDisabled(godot Context, area gd.RID, shape_idx gd.Int, disabled bool)
	//Overridable version of [method PhysicsServer2D.area_get_shape_count].
	AreaGetShapeCount(godot Context, area gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.area_get_shape].
	AreaGetShape(godot Context, area gd.RID, shape_idx gd.Int) gd.RID
	//Overridable version of [method PhysicsServer2D.area_get_shape_transform].
	AreaGetShapeTransform(godot Context, area gd.RID, shape_idx gd.Int) gd.Transform2D
	//Overridable version of [method PhysicsServer2D.area_remove_shape].
	AreaRemoveShape(godot Context, area gd.RID, shape_idx gd.Int)
	//Overridable version of [method PhysicsServer2D.area_clear_shapes].
	AreaClearShapes(godot Context, area gd.RID)
	//Overridable version of [method PhysicsServer2D.area_attach_object_instance_id].
	AreaAttachObjectInstanceId(godot Context, area gd.RID, id gd.Int)
	//Overridable version of [method PhysicsServer2D.area_get_object_instance_id].
	AreaGetObjectInstanceId(godot Context, area gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.area_attach_canvas_instance_id].
	AreaAttachCanvasInstanceId(godot Context, area gd.RID, id gd.Int)
	//Overridable version of [method PhysicsServer2D.area_get_canvas_instance_id].
	AreaGetCanvasInstanceId(godot Context, area gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.area_set_param].
	AreaSetParam(godot Context, area gd.RID, param PhysicsServer2DAreaParameter, value gd.Variant)
	//Overridable version of [method PhysicsServer2D.area_set_transform].
	AreaSetTransform(godot Context, area gd.RID, transform gd.Transform2D)
	//Overridable version of [method PhysicsServer2D.area_get_param].
	AreaGetParam(godot Context, area gd.RID, param PhysicsServer2DAreaParameter) gd.Variant
	//Overridable version of [method PhysicsServer2D.area_get_transform].
	AreaGetTransform(godot Context, area gd.RID) gd.Transform2D
	//Overridable version of [method PhysicsServer2D.area_set_collision_layer].
	AreaSetCollisionLayer(godot Context, area gd.RID, layer gd.Int)
	//Overridable version of [method PhysicsServer2D.area_get_collision_layer].
	AreaGetCollisionLayer(godot Context, area gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.area_set_collision_mask].
	AreaSetCollisionMask(godot Context, area gd.RID, mask gd.Int)
	//Overridable version of [method PhysicsServer2D.area_get_collision_mask].
	AreaGetCollisionMask(godot Context, area gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.area_set_monitorable].
	AreaSetMonitorable(godot Context, area gd.RID, monitorable bool)
	//If set to [code]true[/code], allows the area with the given [RID] to detect mouse inputs when the mouse cursor is hovering on it.
	//Overridable version of [PhysicsServer2D]'s internal [code]area_set_pickable[/code] method. Corresponds to [member PhysicsBody2D.input_pickable].
	AreaSetPickable(godot Context, area gd.RID, pickable bool)
	//Overridable version of [method PhysicsServer2D.area_set_monitor_callback].
	AreaSetMonitorCallback(godot Context, area gd.RID, callback gd.Callable)
	//Overridable version of [method PhysicsServer2D.area_set_area_monitor_callback].
	AreaSetAreaMonitorCallback(godot Context, area gd.RID, callback gd.Callable)
	//Overridable version of [method PhysicsServer2D.body_create].
	BodyCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.body_set_space].
	BodySetSpace(godot Context, body gd.RID, space gd.RID)
	//Overridable version of [method PhysicsServer2D.body_get_space].
	BodyGetSpace(godot Context, body gd.RID) gd.RID
	//Overridable version of [method PhysicsServer2D.body_set_mode].
	BodySetMode(godot Context, body gd.RID, mode PhysicsServer2DBodyMode)
	//Overridable version of [method PhysicsServer2D.body_get_mode].
	BodyGetMode(godot Context, body gd.RID) PhysicsServer2DBodyMode
	//Overridable version of [method PhysicsServer2D.body_add_shape].
	BodyAddShape(godot Context, body gd.RID, shape gd.RID, transform gd.Transform2D, disabled bool)
	//Overridable version of [method PhysicsServer2D.body_set_shape].
	BodySetShape(godot Context, body gd.RID, shape_idx gd.Int, shape gd.RID)
	//Overridable version of [method PhysicsServer2D.body_set_shape_transform].
	BodySetShapeTransform(godot Context, body gd.RID, shape_idx gd.Int, transform gd.Transform2D)
	//Overridable version of [method PhysicsServer2D.body_get_shape_count].
	BodyGetShapeCount(godot Context, body gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.body_get_shape].
	BodyGetShape(godot Context, body gd.RID, shape_idx gd.Int) gd.RID
	//Overridable version of [method PhysicsServer2D.body_get_shape_transform].
	BodyGetShapeTransform(godot Context, body gd.RID, shape_idx gd.Int) gd.Transform2D
	//Overridable version of [method PhysicsServer2D.body_set_shape_disabled].
	BodySetShapeDisabled(godot Context, body gd.RID, shape_idx gd.Int, disabled bool)
	//Overridable version of [method PhysicsServer2D.body_set_shape_as_one_way_collision].
	BodySetShapeAsOneWayCollision(godot Context, body gd.RID, shape_idx gd.Int, enable bool, margin gd.Float)
	//Overridable version of [method PhysicsServer2D.body_remove_shape].
	BodyRemoveShape(godot Context, body gd.RID, shape_idx gd.Int)
	//Overridable version of [method PhysicsServer2D.body_clear_shapes].
	BodyClearShapes(godot Context, body gd.RID)
	//Overridable version of [method PhysicsServer2D.body_attach_object_instance_id].
	BodyAttachObjectInstanceId(godot Context, body gd.RID, id gd.Int)
	//Overridable version of [method PhysicsServer2D.body_get_object_instance_id].
	BodyGetObjectInstanceId(godot Context, body gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.body_attach_canvas_instance_id].
	BodyAttachCanvasInstanceId(godot Context, body gd.RID, id gd.Int)
	//Overridable version of [method PhysicsServer2D.body_get_canvas_instance_id].
	BodyGetCanvasInstanceId(godot Context, body gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.body_set_continuous_collision_detection_mode].
	BodySetContinuousCollisionDetectionMode(godot Context, body gd.RID, mode PhysicsServer2DCCDMode)
	//Overridable version of [method PhysicsServer2D.body_get_continuous_collision_detection_mode].
	BodyGetContinuousCollisionDetectionMode(godot Context, body gd.RID) PhysicsServer2DCCDMode
	//Overridable version of [method PhysicsServer2D.body_set_collision_layer].
	BodySetCollisionLayer(godot Context, body gd.RID, layer gd.Int)
	//Overridable version of [method PhysicsServer2D.body_get_collision_layer].
	BodyGetCollisionLayer(godot Context, body gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.body_set_collision_mask].
	BodySetCollisionMask(godot Context, body gd.RID, mask gd.Int)
	//Overridable version of [method PhysicsServer2D.body_get_collision_mask].
	BodyGetCollisionMask(godot Context, body gd.RID) gd.Int
	//Overridable version of [method PhysicsServer2D.body_set_collision_priority].
	BodySetCollisionPriority(godot Context, body gd.RID, priority gd.Float)
	//Overridable version of [method PhysicsServer2D.body_get_collision_priority].
	BodyGetCollisionPriority(godot Context, body gd.RID) gd.Float
	//Overridable version of [method PhysicsServer2D.body_set_param].
	BodySetParam(godot Context, body gd.RID, param PhysicsServer2DBodyParameter, value gd.Variant)
	//Overridable version of [method PhysicsServer2D.body_get_param].
	BodyGetParam(godot Context, body gd.RID, param PhysicsServer2DBodyParameter) gd.Variant
	//Overridable version of [method PhysicsServer2D.body_reset_mass_properties].
	BodyResetMassProperties(godot Context, body gd.RID)
	//Overridable version of [method PhysicsServer2D.body_set_state].
	BodySetState(godot Context, body gd.RID, state PhysicsServer2DBodyState, value gd.Variant)
	//Overridable version of [method PhysicsServer2D.body_get_state].
	BodyGetState(godot Context, body gd.RID, state PhysicsServer2DBodyState) gd.Variant
	//Overridable version of [method PhysicsServer2D.body_apply_central_impulse].
	BodyApplyCentralImpulse(godot Context, body gd.RID, impulse gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_apply_torque_impulse].
	BodyApplyTorqueImpulse(godot Context, body gd.RID, impulse gd.Float)
	//Overridable version of [method PhysicsServer2D.body_apply_impulse].
	BodyApplyImpulse(godot Context, body gd.RID, impulse gd.Vector2, position gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_apply_central_force].
	BodyApplyCentralForce(godot Context, body gd.RID, force gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_apply_force].
	BodyApplyForce(godot Context, body gd.RID, force gd.Vector2, position gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_apply_torque].
	BodyApplyTorque(godot Context, body gd.RID, torque gd.Float)
	//Overridable version of [method PhysicsServer2D.body_add_constant_central_force].
	BodyAddConstantCentralForce(godot Context, body gd.RID, force gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_add_constant_force].
	BodyAddConstantForce(godot Context, body gd.RID, force gd.Vector2, position gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_add_constant_torque].
	BodyAddConstantTorque(godot Context, body gd.RID, torque gd.Float)
	//Overridable version of [method PhysicsServer2D.body_set_constant_force].
	BodySetConstantForce(godot Context, body gd.RID, force gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_get_constant_force].
	BodyGetConstantForce(godot Context, body gd.RID) gd.Vector2
	//Overridable version of [method PhysicsServer2D.body_set_constant_torque].
	BodySetConstantTorque(godot Context, body gd.RID, torque gd.Float)
	//Overridable version of [method PhysicsServer2D.body_get_constant_torque].
	BodyGetConstantTorque(godot Context, body gd.RID) gd.Float
	//Overridable version of [method PhysicsServer2D.body_set_axis_velocity].
	BodySetAxisVelocity(godot Context, body gd.RID, axis_velocity gd.Vector2)
	//Overridable version of [method PhysicsServer2D.body_add_collision_exception].
	BodyAddCollisionException(godot Context, body gd.RID, excepted_body gd.RID)
	//Overridable version of [method PhysicsServer2D.body_remove_collision_exception].
	BodyRemoveCollisionException(godot Context, body gd.RID, excepted_body gd.RID)
	//Returns the [RID]s of all bodies added as collision exceptions for the given [param body]. See also [method _body_add_collision_exception] and [method _body_remove_collision_exception].
	//Overridable version of [PhysicsServer2D]'s internal [code]body_get_collision_exceptions[/code] method. Corresponds to [method PhysicsBody2D.get_collision_exceptions].
	BodyGetCollisionExceptions(godot Context, body gd.RID) gd.ArrayOf[gd.RID]
	//Overridable version of [method PhysicsServer2D.body_set_max_contacts_reported].
	BodySetMaxContactsReported(godot Context, body gd.RID, amount gd.Int)
	//Overridable version of [method PhysicsServer2D.body_get_max_contacts_reported].
	BodyGetMaxContactsReported(godot Context, body gd.RID) gd.Int
	//Overridable version of [PhysicsServer2D]'s internal [code]body_set_contacts_reported_depth_threshold[/code] method.
	//[b]Note:[/b] This method is currently unused by Godot's default physics implementation.
	BodySetContactsReportedDepthThreshold(godot Context, body gd.RID, threshold gd.Float)
	//Overridable version of [PhysicsServer2D]'s internal [code]body_get_contacts_reported_depth_threshold[/code] method.
	//[b]Note:[/b] This method is currently unused by Godot's default physics implementation.
	BodyGetContactsReportedDepthThreshold(godot Context, body gd.RID) gd.Float
	//Overridable version of [method PhysicsServer2D.body_set_omit_force_integration].
	BodySetOmitForceIntegration(godot Context, body gd.RID, enable bool)
	//Overridable version of [method PhysicsServer2D.body_is_omitting_force_integration].
	BodyIsOmittingForceIntegration(godot Context, body gd.RID) bool
	//Assigns the [param body] to call the given [param callable] during the synchronization phase of the loop, before [method _step] is called. See also [method _sync].
	//Overridable version of [PhysicsServer2D]'s internal [code]body_set_state_sync_callback[/code] method.
	BodySetStateSyncCallback(godot Context, body gd.RID, callable gd.Callable)
	//Overridable version of [method PhysicsServer2D.body_set_force_integration_callback].
	BodySetForceIntegrationCallback(godot Context, body gd.RID, callable gd.Callable, userdata gd.Variant)
	//Given a [param body], a [param shape], and their respective parameters, this method should return [code]true[/code] if a collision between the two would occur, with additional details passed in [param results].
	//Overridable version of [PhysicsServer2D]'s internal [code]shape_collide[/code] method. Corresponds to [method PhysicsDirectSpaceState2D.collide_shape].
	BodyCollideShape(godot Context, body gd.RID, body_shape gd.Int, shape gd.RID, shape_xform gd.Transform2D, motion gd.Vector2, results unsafe.Pointer, result_max gd.Int, result_count *int32) bool
	//If set to [code]true[/code], allows the body with the given [RID] to detect mouse inputs when the mouse cursor is hovering on it.
	//Overridable version of [PhysicsServer2D]'s internal [code]body_set_pickable[/code] method. Corresponds to [member PhysicsBody2D.input_pickable].
	BodySetPickable(godot Context, body gd.RID, pickable bool)
	//Overridable version of [method PhysicsServer2D.body_get_direct_state].
	BodyGetDirectState(godot Context, body gd.RID) PhysicsDirectBodyState2D
	//Overridable version of [method PhysicsServer2D.body_test_motion]. Unlike the exposed implementation, this method does not receive all of the arguments inside a [PhysicsTestMotionParameters2D].
	BodyTestMotion(godot Context, body gd.RID, from gd.Transform2D, motion gd.Vector2, margin gd.Float, collide_separation_ray bool, recovery_as_collision bool, result *PhysicsServer2DExtensionMotionResult) bool
	//Overridable version of [method PhysicsServer2D.joint_create].
	JointCreate(godot Context) gd.RID
	//Overridable version of [method PhysicsServer2D.joint_clear].
	JointClear(godot Context, joint gd.RID)
	//Overridable version of [method PhysicsServer2D.joint_set_param].
	JointSetParam(godot Context, joint gd.RID, param PhysicsServer2DJointParam, value gd.Float)
	//Overridable version of [method PhysicsServer2D.joint_get_param].
	JointGetParam(godot Context, joint gd.RID, param PhysicsServer2DJointParam) gd.Float
	//Overridable version of [method PhysicsServer2D.joint_disable_collisions_between_bodies].
	JointDisableCollisionsBetweenBodies(godot Context, joint gd.RID, disable bool)
	//Overridable version of [method PhysicsServer2D.joint_is_disabled_collisions_between_bodies].
	JointIsDisabledCollisionsBetweenBodies(godot Context, joint gd.RID) bool
	//Overridable version of [method PhysicsServer2D.joint_make_pin].
	JointMakePin(godot Context, joint gd.RID, anchor gd.Vector2, body_a gd.RID, body_b gd.RID)
	//Overridable version of [method PhysicsServer2D.joint_make_groove].
	JointMakeGroove(godot Context, joint gd.RID, a_groove1 gd.Vector2, a_groove2 gd.Vector2, b_anchor gd.Vector2, body_a gd.RID, body_b gd.RID)
	//Overridable version of [method PhysicsServer2D.joint_make_damped_spring].
	JointMakeDampedSpring(godot Context, joint gd.RID, anchor_a gd.Vector2, anchor_b gd.Vector2, body_a gd.RID, body_b gd.RID)
	//Overridable version of [method PhysicsServer2D.pin_joint_set_flag].
	PinJointSetFlag(godot Context, joint gd.RID, flag PhysicsServer2DPinJointFlag, enabled bool)
	//Overridable version of [method PhysicsServer2D.pin_joint_get_flag].
	PinJointGetFlag(godot Context, joint gd.RID, flag PhysicsServer2DPinJointFlag) bool
	//Overridable version of [method PhysicsServer2D.pin_joint_set_param].
	PinJointSetParam(godot Context, joint gd.RID, param PhysicsServer2DPinJointParam, value gd.Float)
	//Overridable version of [method PhysicsServer2D.pin_joint_get_param].
	PinJointGetParam(godot Context, joint gd.RID, param PhysicsServer2DPinJointParam) gd.Float
	//Overridable version of [method PhysicsServer2D.damped_spring_joint_set_param].
	DampedSpringJointSetParam(godot Context, joint gd.RID, param PhysicsServer2DDampedSpringParam, value gd.Float)
	//Overridable version of [method PhysicsServer2D.damped_spring_joint_get_param].
	DampedSpringJointGetParam(godot Context, joint gd.RID, param PhysicsServer2DDampedSpringParam) gd.Float
	//Overridable version of [method PhysicsServer2D.joint_get_type].
	JointGetType(godot Context, joint gd.RID) PhysicsServer2DJointType
	//Overridable version of [method PhysicsServer2D.free_rid].
	FreeRid(godot Context, rid gd.RID)
	//Overridable version of [method PhysicsServer2D.set_active].
	SetActive(godot Context, active bool)
	//Called when the main loop is initialized and creates a new instance of this physics server. See also [method MainLoop._initialize] and [method _finish].
	//Overridable version of [PhysicsServer2D]'s internal [code]init[/code] method.
	Init(godot Context)
	//Called every physics step to process the physics simulation. [param step] is the time elapsed since the last physics step, in seconds. It is usually the same as [method Node.get_physics_process_delta_time].
	//Overridable version of [PhysicsServer2D]'s internal [code skip-lint]step[/code] method.
	Step(godot Context, step gd.Float)
	//Called to indicate that the physics server is synchronizing and cannot access physics states if running on a separate thread. See also [method _end_sync].
	//Overridable version of [PhysicsServer2D]'s internal [code]sync[/code] method.
	Sync(godot Context)
	//Called every physics step before [method _step] to process all remaining queries.
	//Overridable version of [PhysicsServer2D]'s internal [code]flush_queries[/code] method.
	FlushQueries(godot Context)
	//Called to indicate that the physics server has stopped synchronizing. It is in the loop's iteration/physics phase, and can access physics objects even if running on a separate thread. See also [method _sync].
	//Overridable version of [PhysicsServer2D]'s internal [code]end_sync[/code] method.
	EndSync(godot Context)
	//Called when the main loop finalizes to shut down the physics server. See also [method MainLoop._finalize] and [method _init].
	//Overridable version of [PhysicsServer2D]'s internal [code]finish[/code] method.
	Finish(godot Context)
	//Overridable method that should return [code]true[/code] when the physics server is processing queries. See also [method _flush_queries].
	//Overridable version of [PhysicsServer2D]'s internal [code]is_flushing_queries[/code] method.
	IsFlushingQueries(godot Context) bool
	//Overridable version of [method PhysicsServer2D.get_process_info].
	GetProcessInfo(godot Context, process_info PhysicsServer2DProcessInfo) gd.Int
}

type PhysicsServer2DJointParam

type PhysicsServer2DJointParam = classdb.PhysicsServer2DJointParam
const (
	/*Constant to set/get how fast the joint pulls the bodies back to satisfy the joint constraint. The lower the value, the more the two bodies can pull on the joint. The default value of this parameter is [code]0.0[/code].
	  [b]Note:[/b] In Godot Physics, this parameter is only used for pin joints and groove joints.*/
	PhysicsServer2DJointParamBias PhysicsServer2DJointParam = 0
	/*Constant to set/get the maximum speed with which the joint can apply corrections. The default value of this parameter is [code]3.40282e+38[/code].
	  [b]Note:[/b] In Godot Physics, this parameter is only used for groove joints.*/
	PhysicsServer2DJointParamMaxBias PhysicsServer2DJointParam = 1
	/*Constant to set/get the maximum force that the joint can use to act on the two bodies. The default value of this parameter is [code]3.40282e+38[/code].
	  [b]Note:[/b] In Godot Physics, this parameter is only used for groove joints.*/
	PhysicsServer2DJointParamMaxForce PhysicsServer2DJointParam = 2
)

type PhysicsServer2DJointType

type PhysicsServer2DJointType = classdb.PhysicsServer2DJointType
const (
	/*Constant to create pin joints.*/
	PhysicsServer2DJointTypePin PhysicsServer2DJointType = 0
	/*Constant to create groove joints.*/
	PhysicsServer2DJointTypeGroove PhysicsServer2DJointType = 1
	/*Constant to create damped spring joints.*/
	PhysicsServer2DJointTypeDampedSpring PhysicsServer2DJointType = 2
	/*Represents the size of the [enum JointType] enum.*/
	PhysicsServer2DJointTypeMax PhysicsServer2DJointType = 3
)

type PhysicsServer2DPinJointFlag

type PhysicsServer2DPinJointFlag = classdb.PhysicsServer2DPinJointFlag
const (
	/*If [code]true[/code], the pin has a maximum and a minimum rotation.*/
	PhysicsServer2DPinJointFlagAngularLimitEnabled PhysicsServer2DPinJointFlag = 0
	/*If [code]true[/code], a motor turns the pin.*/
	PhysicsServer2DPinJointFlagMotorEnabled PhysicsServer2DPinJointFlag = 1
)

type PhysicsServer2DPinJointParam

type PhysicsServer2DPinJointParam = classdb.PhysicsServer2DPinJointParam
const (
	/*Constant to set/get a how much the bond of the pin joint can flex. The default value of this parameter is [code]0.0[/code].*/
	PhysicsServer2DPinJointSoftness PhysicsServer2DPinJointParam = 0
	/*The maximum rotation around the pin.*/
	PhysicsServer2DPinJointLimitUpper PhysicsServer2DPinJointParam = 1
	/*The minimum rotation around the pin.*/
	PhysicsServer2DPinJointLimitLower PhysicsServer2DPinJointParam = 2
	/*Target speed for the motor. In radians per second.*/
	PhysicsServer2DPinJointMotorTargetVelocity PhysicsServer2DPinJointParam = 3
)

type PhysicsServer2DProcessInfo

type PhysicsServer2DProcessInfo = classdb.PhysicsServer2DProcessInfo
const (
	/*Constant to get the number of objects that are not sleeping.*/
	PhysicsServer2DInfoActiveObjects PhysicsServer2DProcessInfo = 0
	/*Constant to get the number of possible collisions.*/
	PhysicsServer2DInfoCollisionPairs PhysicsServer2DProcessInfo = 1
	/*Constant to get the number of space regions where a collision could occur.*/
	PhysicsServer2DInfoIslandCount PhysicsServer2DProcessInfo = 2
)

type PhysicsServer2DShapeType

type PhysicsServer2DShapeType = classdb.PhysicsServer2DShapeType
const (
	/*This is the constant for creating world boundary shapes. A world boundary shape is an [i]infinite[/i] line with an origin point, and a normal. Thus, it can be used for front/behind checks.*/
	PhysicsServer2DShapeWorldBoundary PhysicsServer2DShapeType = 0
	/*This is the constant for creating separation ray shapes. A separation ray is defined by a length and separates itself from what is touching its far endpoint. Useful for character controllers.*/
	PhysicsServer2DShapeSeparationRay PhysicsServer2DShapeType = 1
	/*This is the constant for creating segment shapes. A segment shape is a [i]finite[/i] line from a point A to a point B. It can be checked for intersections.*/
	PhysicsServer2DShapeSegment PhysicsServer2DShapeType = 2
	/*This is the constant for creating circle shapes. A circle shape only has a radius. It can be used for intersections and inside/outside checks.*/
	PhysicsServer2DShapeCircle PhysicsServer2DShapeType = 3
	/*This is the constant for creating rectangle shapes. A rectangle shape is defined by a width and a height. It can be used for intersections and inside/outside checks.*/
	PhysicsServer2DShapeRectangle PhysicsServer2DShapeType = 4
	/*This is the constant for creating capsule shapes. A capsule shape is defined by a radius and a length. It can be used for intersections and inside/outside checks.*/
	PhysicsServer2DShapeCapsule PhysicsServer2DShapeType = 5
	/*This is the constant for creating convex polygon shapes. A polygon is defined by a list of points. It can be used for intersections and inside/outside checks.*/
	PhysicsServer2DShapeConvexPolygon PhysicsServer2DShapeType = 6
	/*This is the constant for creating concave polygon shapes. A polygon is defined by a list of points. It can be used for intersections checks, but not for inside/outside checks.*/
	PhysicsServer2DShapeConcavePolygon PhysicsServer2DShapeType = 7
	/*This constant is used internally by the engine. Any attempt to create this kind of shape results in an error.*/
	PhysicsServer2DShapeCustom PhysicsServer2DShapeType = 8
)

type PhysicsServer2DSpaceParameter

type PhysicsServer2DSpaceParameter = classdb.PhysicsServer2DSpaceParameter
const (
	/*Constant to set/get the maximum distance a pair of bodies has to move before their collision status has to be recalculated. The default value of this parameter is [member ProjectSettings.physics/2d/solver/contact_recycle_radius].*/
	PhysicsServer2DSpaceParamContactRecycleRadius PhysicsServer2DSpaceParameter = 0
	/*Constant to set/get the maximum distance a shape can be from another before they are considered separated and the contact is discarded. The default value of this parameter is [member ProjectSettings.physics/2d/solver/contact_max_separation].*/
	PhysicsServer2DSpaceParamContactMaxSeparation PhysicsServer2DSpaceParameter = 1
	/*Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision. The default value of this parameter is [member ProjectSettings.physics/2d/solver/contact_max_allowed_penetration].*/
	PhysicsServer2DSpaceParamContactMaxAllowedPenetration PhysicsServer2DSpaceParameter = 2
	/*Constant to set/get the default solver bias for all physics contacts. A solver bias is a factor controlling how much two objects "rebound", after overlapping, to avoid leaving them in that state because of numerical imprecision. The default value of this parameter is [member ProjectSettings.physics/2d/solver/default_contact_bias].*/
	PhysicsServer2DSpaceParamContactDefaultBias PhysicsServer2DSpaceParameter = 3
	/*Constant to set/get the threshold linear velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given. The default value of this parameter is [member ProjectSettings.physics/2d/sleep_threshold_linear].*/
	PhysicsServer2DSpaceParamBodyLinearVelocitySleepThreshold PhysicsServer2DSpaceParameter = 4
	/*Constant to set/get the threshold angular velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given. The default value of this parameter is [member ProjectSettings.physics/2d/sleep_threshold_angular].*/
	PhysicsServer2DSpaceParamBodyAngularVelocitySleepThreshold PhysicsServer2DSpaceParameter = 5
	/*Constant to set/get the maximum time of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after this time. The default value of this parameter is [member ProjectSettings.physics/2d/time_before_sleep].*/
	PhysicsServer2DSpaceParamBodyTimeToSleep PhysicsServer2DSpaceParameter = 6
	/*Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision. The default value of this parameter is [member ProjectSettings.physics/2d/solver/default_constraint_bias].*/
	PhysicsServer2DSpaceParamConstraintDefaultBias PhysicsServer2DSpaceParameter = 7
	/*Constant to set/get the number of solver iterations for all contacts and constraints. The greater the number of iterations, the more accurate the collisions will be. However, a greater number of iterations requires more CPU power, which can decrease performance. The default value of this parameter is [member ProjectSettings.physics/2d/solver/solver_iterations].*/
	PhysicsServer2DSpaceParamSolverIterations PhysicsServer2DSpaceParameter = 8
)

type PhysicsServer3DAreaBodyStatus

type PhysicsServer3DAreaBodyStatus = classdb.PhysicsServer3DAreaBodyStatus
const (
	/*The value of the first parameter and area callback function receives, when an object enters one of its shapes.*/
	PhysicsServer3DAreaBodyAdded PhysicsServer3DAreaBodyStatus = 0
	/*The value of the first parameter and area callback function receives, when an object exits one of its shapes.*/
	PhysicsServer3DAreaBodyRemoved PhysicsServer3DAreaBodyStatus = 1
)

type PhysicsServer3DAreaParameter

type PhysicsServer3DAreaParameter = classdb.PhysicsServer3DAreaParameter
const (
	/*Constant to set/get gravity override mode in an area. See [enum AreaSpaceOverrideMode] for possible values.*/
	PhysicsServer3DAreaParamGravityOverrideMode PhysicsServer3DAreaParameter = 0
	/*Constant to set/get gravity strength in an area.*/
	PhysicsServer3DAreaParamGravity PhysicsServer3DAreaParameter = 1
	/*Constant to set/get gravity vector/center in an area.*/
	PhysicsServer3DAreaParamGravityVector PhysicsServer3DAreaParameter = 2
	/*Constant to set/get whether the gravity vector of an area is a direction, or a center point.*/
	PhysicsServer3DAreaParamGravityIsPoint PhysicsServer3DAreaParameter = 3
	/*Constant to set/get the distance at which the gravity strength is equal to the gravity controlled by [constant AREA_PARAM_GRAVITY]. For example, on a planet 100 meters in radius with a surface gravity of 4.0 m/s², set the gravity to 4.0 and the unit distance to 100.0. The gravity will have falloff according to the inverse square law, so in the example, at 200 meters from the center the gravity will be 1.0 m/s² (twice the distance, 1/4th the gravity), at 50 meters it will be 16.0 m/s² (half the distance, 4x the gravity), and so on.
	  The above is true only when the unit distance is a positive number. When this is set to 0.0, the gravity will be constant regardless of distance.*/
	PhysicsServer3DAreaParamGravityPointUnitDistance PhysicsServer3DAreaParameter = 4
	/*Constant to set/get linear damping override mode in an area. See [enum AreaSpaceOverrideMode] for possible values.*/
	PhysicsServer3DAreaParamLinearDampOverrideMode PhysicsServer3DAreaParameter = 5
	/*Constant to set/get the linear damping factor of an area.*/
	PhysicsServer3DAreaParamLinearDamp PhysicsServer3DAreaParameter = 6
	/*Constant to set/get angular damping override mode in an area. See [enum AreaSpaceOverrideMode] for possible values.*/
	PhysicsServer3DAreaParamAngularDampOverrideMode PhysicsServer3DAreaParameter = 7
	/*Constant to set/get the angular damping factor of an area.*/
	PhysicsServer3DAreaParamAngularDamp PhysicsServer3DAreaParameter = 8
	/*Constant to set/get the priority (order of processing) of an area.*/
	PhysicsServer3DAreaParamPriority PhysicsServer3DAreaParameter = 9
	/*Constant to set/get the magnitude of area-specific wind force.*/
	PhysicsServer3DAreaParamWindForceMagnitude PhysicsServer3DAreaParameter = 10
	/*Constant to set/get the 3D vector that specifies the origin from which an area-specific wind blows.*/
	PhysicsServer3DAreaParamWindSource PhysicsServer3DAreaParameter = 11
	/*Constant to set/get the 3D vector that specifies the direction in which an area-specific wind blows.*/
	PhysicsServer3DAreaParamWindDirection PhysicsServer3DAreaParameter = 12
	/*Constant to set/get the exponential rate at which wind force decreases with distance from its origin.*/
	PhysicsServer3DAreaParamWindAttenuationFactor PhysicsServer3DAreaParameter = 13
)

type PhysicsServer3DAreaSpaceOverrideMode

type PhysicsServer3DAreaSpaceOverrideMode = classdb.PhysicsServer3DAreaSpaceOverrideMode
const (
	/*This area does not affect gravity/damp. These are generally areas that exist only to detect collisions, and objects entering or exiting them.*/
	PhysicsServer3DAreaSpaceOverrideDisabled PhysicsServer3DAreaSpaceOverrideMode = 0
	/*This area adds its gravity/damp values to whatever has been calculated so far. This way, many overlapping areas can combine their physics to make interesting effects.*/
	PhysicsServer3DAreaSpaceOverrideCombine PhysicsServer3DAreaSpaceOverrideMode = 1
	/*This area adds its gravity/damp values to whatever has been calculated so far. Then stops taking into account the rest of the areas, even the default one.*/
	PhysicsServer3DAreaSpaceOverrideCombineReplace PhysicsServer3DAreaSpaceOverrideMode = 2
	/*This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas.*/
	PhysicsServer3DAreaSpaceOverrideReplace PhysicsServer3DAreaSpaceOverrideMode = 3
	/*This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one.*/
	PhysicsServer3DAreaSpaceOverrideReplaceCombine PhysicsServer3DAreaSpaceOverrideMode = 4
)

type PhysicsServer3DBodyAxis

type PhysicsServer3DBodyAxis = classdb.PhysicsServer3DBodyAxis
const (
	PhysicsServer3DBodyAxisLinearX  PhysicsServer3DBodyAxis = 1
	PhysicsServer3DBodyAxisLinearY  PhysicsServer3DBodyAxis = 2
	PhysicsServer3DBodyAxisLinearZ  PhysicsServer3DBodyAxis = 4
	PhysicsServer3DBodyAxisAngularX PhysicsServer3DBodyAxis = 8
	PhysicsServer3DBodyAxisAngularY PhysicsServer3DBodyAxis = 16
	PhysicsServer3DBodyAxisAngularZ PhysicsServer3DBodyAxis = 32
)

type PhysicsServer3DBodyDampMode

type PhysicsServer3DBodyDampMode = classdb.PhysicsServer3DBodyDampMode
const (
	/*The body's damping value is added to any value set in areas or the default value.*/
	PhysicsServer3DBodyDampModeCombine PhysicsServer3DBodyDampMode = 0
	/*The body's damping value replaces any value set in areas or the default value.*/
	PhysicsServer3DBodyDampModeReplace PhysicsServer3DBodyDampMode = 1
)

type PhysicsServer3DBodyMode

type PhysicsServer3DBodyMode = classdb.PhysicsServer3DBodyMode
const (
	/*Constant for static bodies. In this mode, a body can be only moved by user code and doesn't collide with other bodies along its path when moved.*/
	PhysicsServer3DBodyModeStatic PhysicsServer3DBodyMode = 0
	/*Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path.*/
	PhysicsServer3DBodyModeKinematic PhysicsServer3DBodyMode = 1
	/*Constant for rigid bodies. In this mode, a body can be pushed by other bodies and has forces applied.*/
	PhysicsServer3DBodyModeRigid PhysicsServer3DBodyMode = 2
	/*Constant for linear rigid bodies. In this mode, a body can not rotate, and only its linear velocity is affected by external forces.*/
	PhysicsServer3DBodyModeRigidLinear PhysicsServer3DBodyMode = 3
)

type PhysicsServer3DBodyParameter

type PhysicsServer3DBodyParameter = classdb.PhysicsServer3DBodyParameter
const (
	/*Constant to set/get a body's bounce factor.*/
	PhysicsServer3DBodyParamBounce PhysicsServer3DBodyParameter = 0
	/*Constant to set/get a body's friction.*/
	PhysicsServer3DBodyParamFriction PhysicsServer3DBodyParameter = 1
	/*Constant to set/get a body's mass.*/
	PhysicsServer3DBodyParamMass PhysicsServer3DBodyParameter = 2
	/*Constant to set/get a body's inertia.*/
	PhysicsServer3DBodyParamInertia PhysicsServer3DBodyParameter = 3
	/*Constant to set/get a body's center of mass position in the body's local coordinate system.*/
	PhysicsServer3DBodyParamCenterOfMass PhysicsServer3DBodyParameter = 4
	/*Constant to set/get a body's gravity multiplier.*/
	PhysicsServer3DBodyParamGravityScale PhysicsServer3DBodyParameter = 5
	/*Constant to set/get a body's linear damping mode. See [enum BodyDampMode] for possible values.*/
	PhysicsServer3DBodyParamLinearDampMode PhysicsServer3DBodyParameter = 6
	/*Constant to set/get a body's angular damping mode. See [enum BodyDampMode] for possible values.*/
	PhysicsServer3DBodyParamAngularDampMode PhysicsServer3DBodyParameter = 7
	/*Constant to set/get a body's linear damping factor.*/
	PhysicsServer3DBodyParamLinearDamp PhysicsServer3DBodyParameter = 8
	/*Constant to set/get a body's angular damping factor.*/
	PhysicsServer3DBodyParamAngularDamp PhysicsServer3DBodyParameter = 9
	/*Represents the size of the [enum BodyParameter] enum.*/
	PhysicsServer3DBodyParamMax PhysicsServer3DBodyParameter = 10
)

type PhysicsServer3DBodyState

type PhysicsServer3DBodyState = classdb.PhysicsServer3DBodyState
const (
	/*Constant to set/get the current transform matrix of the body.*/
	PhysicsServer3DBodyStateTransform PhysicsServer3DBodyState = 0
	/*Constant to set/get the current linear velocity of the body.*/
	PhysicsServer3DBodyStateLinearVelocity PhysicsServer3DBodyState = 1
	/*Constant to set/get the current angular velocity of the body.*/
	PhysicsServer3DBodyStateAngularVelocity PhysicsServer3DBodyState = 2
	/*Constant to sleep/wake up a body, or to get whether it is sleeping.*/
	PhysicsServer3DBodyStateSleeping PhysicsServer3DBodyState = 3
	/*Constant to set/get whether the body can sleep.*/
	PhysicsServer3DBodyStateCanSleep PhysicsServer3DBodyState = 4
)

type PhysicsServer3DConeTwistJointParam

type PhysicsServer3DConeTwistJointParam = classdb.PhysicsServer3DConeTwistJointParam
const (
	/*Swing is rotation from side to side, around the axis perpendicular to the twist axis.
	  The swing span defines, how much rotation will not get corrected along the swing axis.
	  Could be defined as looseness in the [ConeTwistJoint3D].
	  If below 0.05, this behavior is locked.*/
	PhysicsServer3DConeTwistJointSwingSpan PhysicsServer3DConeTwistJointParam = 0
	/*Twist is the rotation around the twist axis, this value defined how far the joint can twist.
	  Twist is locked if below 0.05.*/
	PhysicsServer3DConeTwistJointTwistSpan PhysicsServer3DConeTwistJointParam = 1
	/*The speed with which the swing or twist will take place.
	  The higher, the faster.*/
	PhysicsServer3DConeTwistJointBias PhysicsServer3DConeTwistJointParam = 2
	/*The ease with which the Joint3D twists, if it's too low, it takes more force to twist the joint.*/
	PhysicsServer3DConeTwistJointSoftness PhysicsServer3DConeTwistJointParam = 3
	/*Defines, how fast the swing- and twist-speed-difference on both sides gets synced.*/
	PhysicsServer3DConeTwistJointRelaxation PhysicsServer3DConeTwistJointParam = 4
)

type PhysicsServer3DExtension

type PhysicsServer3DExtension = classdb.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 methods that can be overridden by a [Class] that extends it.
type PhysicsServer3DExtension interface {
	WorldBoundaryShapeCreate(godot Context) gd.RID
	SeparationRayShapeCreate(godot Context) gd.RID
	SphereShapeCreate(godot Context) gd.RID
	BoxShapeCreate(godot Context) gd.RID
	CapsuleShapeCreate(godot Context) gd.RID
	CylinderShapeCreate(godot Context) gd.RID
	ConvexPolygonShapeCreate(godot Context) gd.RID
	ConcavePolygonShapeCreate(godot Context) gd.RID
	HeightmapShapeCreate(godot Context) gd.RID
	CustomShapeCreate(godot Context) gd.RID
	ShapeSetData(godot Context, shape gd.RID, data gd.Variant)
	ShapeSetCustomSolverBias(godot Context, shape gd.RID, bias gd.Float)
	ShapeSetMargin(godot Context, shape gd.RID, margin gd.Float)
	ShapeGetMargin(godot Context, shape gd.RID) gd.Float
	ShapeGetType(godot Context, shape gd.RID) PhysicsServer3DShapeType
	ShapeGetData(godot Context, shape gd.RID) gd.Variant
	ShapeGetCustomSolverBias(godot Context, shape gd.RID) gd.Float
	SpaceCreate(godot Context) gd.RID
	SpaceSetActive(godot Context, space gd.RID, active bool)
	SpaceIsActive(godot Context, space gd.RID) bool
	SpaceSetParam(godot Context, space gd.RID, param PhysicsServer3DSpaceParameter, value gd.Float)
	SpaceGetParam(godot Context, space gd.RID, param PhysicsServer3DSpaceParameter) gd.Float
	SpaceGetDirectState(godot Context, space gd.RID) PhysicsDirectSpaceState3D
	SpaceSetDebugContacts(godot Context, space gd.RID, max_contacts gd.Int)
	SpaceGetContacts(godot Context, space gd.RID) gd.PackedVector3Array
	SpaceGetContactCount(godot Context, space gd.RID) gd.Int
	AreaCreate(godot Context) gd.RID
	AreaSetSpace(godot Context, area gd.RID, space gd.RID)
	AreaGetSpace(godot Context, area gd.RID) gd.RID
	AreaAddShape(godot Context, area gd.RID, shape gd.RID, transform gd.Transform3D, disabled bool)
	AreaSetShape(godot Context, area gd.RID, shape_idx gd.Int, shape gd.RID)
	AreaSetShapeTransform(godot Context, area gd.RID, shape_idx gd.Int, transform gd.Transform3D)
	AreaSetShapeDisabled(godot Context, area gd.RID, shape_idx gd.Int, disabled bool)
	AreaGetShapeCount(godot Context, area gd.RID) gd.Int
	AreaGetShape(godot Context, area gd.RID, shape_idx gd.Int) gd.RID
	AreaGetShapeTransform(godot Context, area gd.RID, shape_idx gd.Int) gd.Transform3D
	AreaRemoveShape(godot Context, area gd.RID, shape_idx gd.Int)
	AreaClearShapes(godot Context, area gd.RID)
	AreaAttachObjectInstanceId(godot Context, area gd.RID, id gd.Int)
	AreaGetObjectInstanceId(godot Context, area gd.RID) gd.Int
	AreaSetParam(godot Context, area gd.RID, param PhysicsServer3DAreaParameter, value gd.Variant)
	AreaSetTransform(godot Context, area gd.RID, transform gd.Transform3D)
	AreaGetParam(godot Context, area gd.RID, param PhysicsServer3DAreaParameter) gd.Variant
	AreaGetTransform(godot Context, area gd.RID) gd.Transform3D
	AreaSetCollisionLayer(godot Context, area gd.RID, layer gd.Int)
	AreaGetCollisionLayer(godot Context, area gd.RID) gd.Int
	AreaSetCollisionMask(godot Context, area gd.RID, mask gd.Int)
	AreaGetCollisionMask(godot Context, area gd.RID) gd.Int
	AreaSetMonitorable(godot Context, area gd.RID, monitorable bool)
	AreaSetRayPickable(godot Context, area gd.RID, enable bool)
	AreaSetMonitorCallback(godot Context, area gd.RID, callback gd.Callable)
	AreaSetAreaMonitorCallback(godot Context, area gd.RID, callback gd.Callable)
	BodyCreate(godot Context) gd.RID
	BodySetSpace(godot Context, body gd.RID, space gd.RID)
	BodyGetSpace(godot Context, body gd.RID) gd.RID
	BodySetMode(godot Context, body gd.RID, mode PhysicsServer3DBodyMode)
	BodyGetMode(godot Context, body gd.RID) PhysicsServer3DBodyMode
	BodyAddShape(godot Context, body gd.RID, shape gd.RID, transform gd.Transform3D, disabled bool)
	BodySetShape(godot Context, body gd.RID, shape_idx gd.Int, shape gd.RID)
	BodySetShapeTransform(godot Context, body gd.RID, shape_idx gd.Int, transform gd.Transform3D)
	BodySetShapeDisabled(godot Context, body gd.RID, shape_idx gd.Int, disabled bool)
	BodyGetShapeCount(godot Context, body gd.RID) gd.Int
	BodyGetShape(godot Context, body gd.RID, shape_idx gd.Int) gd.RID
	BodyGetShapeTransform(godot Context, body gd.RID, shape_idx gd.Int) gd.Transform3D
	BodyRemoveShape(godot Context, body gd.RID, shape_idx gd.Int)
	BodyClearShapes(godot Context, body gd.RID)
	BodyAttachObjectInstanceId(godot Context, body gd.RID, id gd.Int)
	BodyGetObjectInstanceId(godot Context, body gd.RID) gd.Int
	BodySetEnableContinuousCollisionDetection(godot Context, body gd.RID, enable bool)
	BodyIsContinuousCollisionDetectionEnabled(godot Context, body gd.RID) bool
	BodySetCollisionLayer(godot Context, body gd.RID, layer gd.Int)
	BodyGetCollisionLayer(godot Context, body gd.RID) gd.Int
	BodySetCollisionMask(godot Context, body gd.RID, mask gd.Int)
	BodyGetCollisionMask(godot Context, body gd.RID) gd.Int
	BodySetCollisionPriority(godot Context, body gd.RID, priority gd.Float)
	BodyGetCollisionPriority(godot Context, body gd.RID) gd.Float
	BodySetUserFlags(godot Context, body gd.RID, flags gd.Int)
	BodyGetUserFlags(godot Context, body gd.RID) gd.Int
	BodySetParam(godot Context, body gd.RID, param PhysicsServer3DBodyParameter, value gd.Variant)
	BodyGetParam(godot Context, body gd.RID, param PhysicsServer3DBodyParameter) gd.Variant
	BodyResetMassProperties(godot Context, body gd.RID)
	BodySetState(godot Context, body gd.RID, state PhysicsServer3DBodyState, value gd.Variant)
	BodyGetState(godot Context, body gd.RID, state PhysicsServer3DBodyState) gd.Variant
	BodyApplyCentralImpulse(godot Context, body gd.RID, impulse gd.Vector3)
	BodyApplyImpulse(godot Context, body gd.RID, impulse gd.Vector3, position gd.Vector3)
	BodyApplyTorqueImpulse(godot Context, body gd.RID, impulse gd.Vector3)
	BodyApplyCentralForce(godot Context, body gd.RID, force gd.Vector3)
	BodyApplyForce(godot Context, body gd.RID, force gd.Vector3, position gd.Vector3)
	BodyApplyTorque(godot Context, body gd.RID, torque gd.Vector3)
	BodyAddConstantCentralForce(godot Context, body gd.RID, force gd.Vector3)
	BodyAddConstantForce(godot Context, body gd.RID, force gd.Vector3, position gd.Vector3)
	BodyAddConstantTorque(godot Context, body gd.RID, torque gd.Vector3)
	BodySetConstantForce(godot Context, body gd.RID, force gd.Vector3)
	BodyGetConstantForce(godot Context, body gd.RID) gd.Vector3
	BodySetConstantTorque(godot Context, body gd.RID, torque gd.Vector3)
	BodyGetConstantTorque(godot Context, body gd.RID) gd.Vector3
	BodySetAxisVelocity(godot Context, body gd.RID, axis_velocity gd.Vector3)
	BodySetAxisLock(godot Context, body gd.RID, axis PhysicsServer3DBodyAxis, lock bool)
	BodyIsAxisLocked(godot Context, body gd.RID, axis PhysicsServer3DBodyAxis) bool
	BodyAddCollisionException(godot Context, body gd.RID, excepted_body gd.RID)
	BodyRemoveCollisionException(godot Context, body gd.RID, excepted_body gd.RID)
	BodyGetCollisionExceptions(godot Context, body gd.RID) gd.ArrayOf[gd.RID]
	BodySetMaxContactsReported(godot Context, body gd.RID, amount gd.Int)
	BodyGetMaxContactsReported(godot Context, body gd.RID) gd.Int
	BodySetContactsReportedDepthThreshold(godot Context, body gd.RID, threshold gd.Float)
	BodyGetContactsReportedDepthThreshold(godot Context, body gd.RID) gd.Float
	BodySetOmitForceIntegration(godot Context, body gd.RID, enable bool)
	BodyIsOmittingForceIntegration(godot Context, body gd.RID) bool
	BodySetStateSyncCallback(godot Context, body gd.RID, callable gd.Callable)
	BodySetForceIntegrationCallback(godot Context, body gd.RID, callable gd.Callable, userdata gd.Variant)
	BodySetRayPickable(godot Context, body gd.RID, enable bool)
	BodyTestMotion(godot Context, body gd.RID, from gd.Transform3D, motion gd.Vector3, margin gd.Float, max_collisions gd.Int, collide_separation_ray bool, recovery_as_collision bool, result *PhysicsServer3DExtensionMotionResult) bool
	BodyGetDirectState(godot Context, body gd.RID) PhysicsDirectBodyState3D
	SoftBodyCreate(godot Context) gd.RID
	SoftBodyUpdateRenderingServer(godot Context, body gd.RID, rendering_server_handler PhysicsServer3DRenderingServerHandler)
	SoftBodySetSpace(godot Context, body gd.RID, space gd.RID)
	SoftBodyGetSpace(godot Context, body gd.RID) gd.RID
	SoftBodySetRayPickable(godot Context, body gd.RID, enable bool)
	SoftBodySetCollisionLayer(godot Context, body gd.RID, layer gd.Int)
	SoftBodyGetCollisionLayer(godot Context, body gd.RID) gd.Int
	SoftBodySetCollisionMask(godot Context, body gd.RID, mask gd.Int)
	SoftBodyGetCollisionMask(godot Context, body gd.RID) gd.Int
	SoftBodyAddCollisionException(godot Context, body gd.RID, body_b gd.RID)
	SoftBodyRemoveCollisionException(godot Context, body gd.RID, body_b gd.RID)
	SoftBodyGetCollisionExceptions(godot Context, body gd.RID) gd.ArrayOf[gd.RID]
	SoftBodySetState(godot Context, body gd.RID, state PhysicsServer3DBodyState, variant gd.Variant)
	SoftBodyGetState(godot Context, body gd.RID, state PhysicsServer3DBodyState) gd.Variant
	SoftBodySetTransform(godot Context, body gd.RID, transform gd.Transform3D)
	SoftBodySetSimulationPrecision(godot Context, body gd.RID, simulation_precision gd.Int)
	SoftBodyGetSimulationPrecision(godot Context, body gd.RID) gd.Int
	SoftBodySetTotalMass(godot Context, body gd.RID, total_mass gd.Float)
	SoftBodyGetTotalMass(godot Context, body gd.RID) gd.Float
	SoftBodySetLinearStiffness(godot Context, body gd.RID, linear_stiffness gd.Float)
	SoftBodyGetLinearStiffness(godot Context, body gd.RID) gd.Float
	SoftBodySetPressureCoefficient(godot Context, body gd.RID, pressure_coefficient gd.Float)
	SoftBodyGetPressureCoefficient(godot Context, body gd.RID) gd.Float
	SoftBodySetDampingCoefficient(godot Context, body gd.RID, damping_coefficient gd.Float)
	SoftBodyGetDampingCoefficient(godot Context, body gd.RID) gd.Float
	SoftBodySetDragCoefficient(godot Context, body gd.RID, drag_coefficient gd.Float)
	SoftBodyGetDragCoefficient(godot Context, body gd.RID) gd.Float
	SoftBodySetMesh(godot Context, body gd.RID, mesh gd.RID)
	SoftBodyGetBounds(godot Context, body gd.RID) gd.AABB
	SoftBodyMovePoint(godot Context, body gd.RID, point_index gd.Int, global_position gd.Vector3)
	SoftBodyGetPointGlobalPosition(godot Context, body gd.RID, point_index gd.Int) gd.Vector3
	SoftBodyRemoveAllPinnedPoints(godot Context, body gd.RID)
	SoftBodyPinPoint(godot Context, body gd.RID, point_index gd.Int, pin bool)
	SoftBodyIsPointPinned(godot Context, body gd.RID, point_index gd.Int) bool
	JointCreate(godot Context) gd.RID
	JointClear(godot Context, joint gd.RID)
	JointMakePin(godot Context, joint gd.RID, body_A gd.RID, local_A gd.Vector3, body_B gd.RID, local_B gd.Vector3)
	PinJointSetParam(godot Context, joint gd.RID, param PhysicsServer3DPinJointParam, value gd.Float)
	PinJointGetParam(godot Context, joint gd.RID, param PhysicsServer3DPinJointParam) gd.Float
	PinJointSetLocalA(godot Context, joint gd.RID, local_A gd.Vector3)
	PinJointGetLocalA(godot Context, joint gd.RID) gd.Vector3
	PinJointSetLocalB(godot Context, joint gd.RID, local_B gd.Vector3)
	PinJointGetLocalB(godot Context, joint gd.RID) gd.Vector3
	JointMakeHinge(godot Context, joint gd.RID, body_A gd.RID, hinge_A gd.Transform3D, body_B gd.RID, hinge_B gd.Transform3D)
	JointMakeHingeSimple(godot Context, joint gd.RID, body_A gd.RID, pivot_A gd.Vector3, axis_A gd.Vector3, body_B gd.RID, pivot_B gd.Vector3, axis_B gd.Vector3)
	HingeJointSetParam(godot Context, joint gd.RID, param PhysicsServer3DHingeJointParam, value gd.Float)
	HingeJointGetParam(godot Context, joint gd.RID, param PhysicsServer3DHingeJointParam) gd.Float
	HingeJointSetFlag(godot Context, joint gd.RID, flag PhysicsServer3DHingeJointFlag, enabled bool)
	HingeJointGetFlag(godot Context, joint gd.RID, flag PhysicsServer3DHingeJointFlag) bool
	JointMakeSlider(godot Context, joint gd.RID, body_A gd.RID, local_ref_A gd.Transform3D, body_B gd.RID, local_ref_B gd.Transform3D)
	SliderJointSetParam(godot Context, joint gd.RID, param PhysicsServer3DSliderJointParam, value gd.Float)
	SliderJointGetParam(godot Context, joint gd.RID, param PhysicsServer3DSliderJointParam) gd.Float
	JointMakeConeTwist(godot Context, joint gd.RID, body_A gd.RID, local_ref_A gd.Transform3D, body_B gd.RID, local_ref_B gd.Transform3D)
	ConeTwistJointSetParam(godot Context, joint gd.RID, param PhysicsServer3DConeTwistJointParam, value gd.Float)
	ConeTwistJointGetParam(godot Context, joint gd.RID, param PhysicsServer3DConeTwistJointParam) gd.Float
	JointMakeGeneric6dof(godot Context, joint gd.RID, body_A gd.RID, local_ref_A gd.Transform3D, body_B gd.RID, local_ref_B gd.Transform3D)
	Generic6dofJointSetParam(godot Context, joint gd.RID, axis gd.Vector3Axis, param PhysicsServer3DG6DOFJointAxisParam, value gd.Float)
	Generic6dofJointGetParam(godot Context, joint gd.RID, axis gd.Vector3Axis, param PhysicsServer3DG6DOFJointAxisParam) gd.Float
	Generic6dofJointSetFlag(godot Context, joint gd.RID, axis gd.Vector3Axis, flag PhysicsServer3DG6DOFJointAxisFlag, enable bool)
	Generic6dofJointGetFlag(godot Context, joint gd.RID, axis gd.Vector3Axis, flag PhysicsServer3DG6DOFJointAxisFlag) bool
	JointGetType(godot Context, joint gd.RID) PhysicsServer3DJointType
	JointSetSolverPriority(godot Context, joint gd.RID, priority gd.Int)
	JointGetSolverPriority(godot Context, joint gd.RID) gd.Int
	JointDisableCollisionsBetweenBodies(godot Context, joint gd.RID, disable bool)
	JointIsDisabledCollisionsBetweenBodies(godot Context, joint gd.RID) bool
	FreeRid(godot Context, rid gd.RID)
	SetActive(godot Context, active bool)
	Init(godot Context)
	Step(godot Context, step gd.Float)
	Sync(godot Context)
	FlushQueries(godot Context)
	EndSync(godot Context)
	Finish(godot Context)
	IsFlushingQueries(godot Context) bool
	GetProcessInfo(godot Context, process_info PhysicsServer3DProcessInfo) gd.Int
}

type PhysicsServer3DG6DOFJointAxisFlag

type PhysicsServer3DG6DOFJointAxisFlag = classdb.PhysicsServer3DG6DOFJointAxisFlag
const (
	/*If set, linear motion is possible within the given limits.*/
	PhysicsServer3DG6dofJointFlagEnableLinearLimit PhysicsServer3DG6DOFJointAxisFlag = 0
	/*If set, rotational motion is possible.*/
	PhysicsServer3DG6dofJointFlagEnableAngularLimit PhysicsServer3DG6DOFJointAxisFlag = 1
	/*If set, there is a rotational motor across these axes.*/
	PhysicsServer3DG6dofJointFlagEnableMotor PhysicsServer3DG6DOFJointAxisFlag = 4
	/*If set, there is a linear motor on this axis that targets a specific velocity.*/
	PhysicsServer3DG6dofJointFlagEnableLinearMotor PhysicsServer3DG6DOFJointAxisFlag = 5
)

type PhysicsServer3DG6DOFJointAxisParam

type PhysicsServer3DG6DOFJointAxisParam = classdb.PhysicsServer3DG6DOFJointAxisParam
const (
	/*The minimum difference between the pivot points' axes.*/
	PhysicsServer3DG6dofJointLinearLowerLimit PhysicsServer3DG6DOFJointAxisParam = 0
	/*The maximum difference between the pivot points' axes.*/
	PhysicsServer3DG6dofJointLinearUpperLimit PhysicsServer3DG6DOFJointAxisParam = 1
	/*A factor that gets applied to the movement across the axes. The lower, the slower the movement.*/
	PhysicsServer3DG6dofJointLinearLimitSoftness PhysicsServer3DG6DOFJointAxisParam = 2
	/*The amount of restitution on the axes movement. The lower, the more velocity-energy gets lost.*/
	PhysicsServer3DG6dofJointLinearRestitution PhysicsServer3DG6DOFJointAxisParam = 3
	/*The amount of damping that happens at the linear motion across the axes.*/
	PhysicsServer3DG6dofJointLinearDamping PhysicsServer3DG6DOFJointAxisParam = 4
	/*The velocity that the joint's linear motor will attempt to reach.*/
	PhysicsServer3DG6dofJointLinearMotorTargetVelocity PhysicsServer3DG6DOFJointAxisParam = 5
	/*The maximum force that the linear motor can apply while trying to reach the target velocity.*/
	PhysicsServer3DG6dofJointLinearMotorForceLimit PhysicsServer3DG6DOFJointAxisParam = 6
	/*The minimum rotation in negative direction to break loose and rotate around the axes.*/
	PhysicsServer3DG6dofJointAngularLowerLimit PhysicsServer3DG6DOFJointAxisParam = 10
	/*The minimum rotation in positive direction to break loose and rotate around the axes.*/
	PhysicsServer3DG6dofJointAngularUpperLimit PhysicsServer3DG6DOFJointAxisParam = 11
	/*A factor that gets multiplied onto all rotations across the axes.*/
	PhysicsServer3DG6dofJointAngularLimitSoftness PhysicsServer3DG6DOFJointAxisParam = 12
	/*The amount of rotational damping across the axes. The lower, the more damping occurs.*/
	PhysicsServer3DG6dofJointAngularDamping PhysicsServer3DG6DOFJointAxisParam = 13
	/*The amount of rotational restitution across the axes. The lower, the more restitution occurs.*/
	PhysicsServer3DG6dofJointAngularRestitution PhysicsServer3DG6DOFJointAxisParam = 14
	/*The maximum amount of force that can occur, when rotating around the axes.*/
	PhysicsServer3DG6dofJointAngularForceLimit PhysicsServer3DG6DOFJointAxisParam = 15
	/*When correcting the crossing of limits in rotation across the axes, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.*/
	PhysicsServer3DG6dofJointAngularErp PhysicsServer3DG6DOFJointAxisParam = 16
	/*Target speed for the motor at the axes.*/
	PhysicsServer3DG6dofJointAngularMotorTargetVelocity PhysicsServer3DG6DOFJointAxisParam = 17
	/*Maximum acceleration for the motor at the axes.*/
	PhysicsServer3DG6dofJointAngularMotorForceLimit PhysicsServer3DG6DOFJointAxisParam = 18
)

type PhysicsServer3DHingeJointFlag

type PhysicsServer3DHingeJointFlag = classdb.PhysicsServer3DHingeJointFlag
const (
	/*If [code]true[/code], the Hinge has a maximum and a minimum rotation.*/
	PhysicsServer3DHingeJointFlagUseLimit PhysicsServer3DHingeJointFlag = 0
	/*If [code]true[/code], a motor turns the Hinge.*/
	PhysicsServer3DHingeJointFlagEnableMotor PhysicsServer3DHingeJointFlag = 1
)

type PhysicsServer3DHingeJointParam

type PhysicsServer3DHingeJointParam = classdb.PhysicsServer3DHingeJointParam
const (
	/*The speed with which the two bodies get pulled together when they move in different directions.*/
	PhysicsServer3DHingeJointBias PhysicsServer3DHingeJointParam = 0
	/*The maximum rotation across the Hinge.*/
	PhysicsServer3DHingeJointLimitUpper PhysicsServer3DHingeJointParam = 1
	/*The minimum rotation across the Hinge.*/
	PhysicsServer3DHingeJointLimitLower PhysicsServer3DHingeJointParam = 2
	/*The speed with which the rotation across the axis perpendicular to the hinge gets corrected.*/
	PhysicsServer3DHingeJointLimitBias     PhysicsServer3DHingeJointParam = 3
	PhysicsServer3DHingeJointLimitSoftness PhysicsServer3DHingeJointParam = 4
	/*The lower this value, the more the rotation gets slowed down.*/
	PhysicsServer3DHingeJointLimitRelaxation PhysicsServer3DHingeJointParam = 5
	/*Target speed for the motor.*/
	PhysicsServer3DHingeJointMotorTargetVelocity PhysicsServer3DHingeJointParam = 6
	/*Maximum acceleration for the motor.*/
	PhysicsServer3DHingeJointMotorMaxImpulse PhysicsServer3DHingeJointParam = 7
)

type PhysicsServer3DJointType

type PhysicsServer3DJointType = classdb.PhysicsServer3DJointType
const (
	/*The [Joint3D] is a [PinJoint3D].*/
	PhysicsServer3DJointTypePin PhysicsServer3DJointType = 0
	/*The [Joint3D] is a [HingeJoint3D].*/
	PhysicsServer3DJointTypeHinge PhysicsServer3DJointType = 1
	/*The [Joint3D] is a [SliderJoint3D].*/
	PhysicsServer3DJointTypeSlider PhysicsServer3DJointType = 2
	/*The [Joint3D] is a [ConeTwistJoint3D].*/
	PhysicsServer3DJointTypeConeTwist PhysicsServer3DJointType = 3
	/*The [Joint3D] is a [Generic6DOFJoint3D].*/
	PhysicsServer3DJointType6dof PhysicsServer3DJointType = 4
	/*Represents the size of the [enum JointType] enum.*/
	PhysicsServer3DJointTypeMax PhysicsServer3DJointType = 5
)

type PhysicsServer3DPinJointParam

type PhysicsServer3DPinJointParam = classdb.PhysicsServer3DPinJointParam
const (
	/*The strength with which the pinned objects try to stay in positional relation to each other.
	  The higher, the stronger.*/
	PhysicsServer3DPinJointBias PhysicsServer3DPinJointParam = 0
	/*The strength with which the pinned objects try to stay in velocity relation to each other.
	  The higher, the stronger.*/
	PhysicsServer3DPinJointDamping PhysicsServer3DPinJointParam = 1
	/*If above 0, this value is the maximum value for an impulse that this Joint3D puts on its ends.*/
	PhysicsServer3DPinJointImpulseClamp PhysicsServer3DPinJointParam = 2
)

type PhysicsServer3DProcessInfo

type PhysicsServer3DProcessInfo = classdb.PhysicsServer3DProcessInfo
const (
	/*Constant to get the number of objects that are not sleeping.*/
	PhysicsServer3DInfoActiveObjects PhysicsServer3DProcessInfo = 0
	/*Constant to get the number of possible collisions.*/
	PhysicsServer3DInfoCollisionPairs PhysicsServer3DProcessInfo = 1
	/*Constant to get the number of space regions where a collision could occur.*/
	PhysicsServer3DInfoIslandCount PhysicsServer3DProcessInfo = 2
)

type PhysicsServer3DShapeType

type PhysicsServer3DShapeType = classdb.PhysicsServer3DShapeType
const (
	/*The [Shape3D] is a [WorldBoundaryShape3D].*/
	PhysicsServer3DShapeWorldBoundary PhysicsServer3DShapeType = 0
	/*The [Shape3D] is a [SeparationRayShape3D].*/
	PhysicsServer3DShapeSeparationRay PhysicsServer3DShapeType = 1
	/*The [Shape3D] is a [SphereShape3D].*/
	PhysicsServer3DShapeSphere PhysicsServer3DShapeType = 2
	/*The [Shape3D] is a [BoxShape3D].*/
	PhysicsServer3DShapeBox PhysicsServer3DShapeType = 3
	/*The [Shape3D] is a [CapsuleShape3D].*/
	PhysicsServer3DShapeCapsule PhysicsServer3DShapeType = 4
	/*The [Shape3D] is a [CylinderShape3D].*/
	PhysicsServer3DShapeCylinder PhysicsServer3DShapeType = 5
	/*The [Shape3D] is a [ConvexPolygonShape3D].*/
	PhysicsServer3DShapeConvexPolygon PhysicsServer3DShapeType = 6
	/*The [Shape3D] is a [ConcavePolygonShape3D].*/
	PhysicsServer3DShapeConcavePolygon PhysicsServer3DShapeType = 7
	/*The [Shape3D] is a [HeightMapShape3D].*/
	PhysicsServer3DShapeHeightmap PhysicsServer3DShapeType = 8
	/*The [Shape3D] is used internally for a soft body. Any attempt to create this kind of shape results in an error.*/
	PhysicsServer3DShapeSoftBody PhysicsServer3DShapeType = 9
	/*This constant is used internally by the engine. Any attempt to create this kind of shape results in an error.*/
	PhysicsServer3DShapeCustom PhysicsServer3DShapeType = 10
)

type PhysicsServer3DSliderJointParam

type PhysicsServer3DSliderJointParam = classdb.PhysicsServer3DSliderJointParam
const (
	/*The maximum difference between the pivot points on their X axis before damping happens.*/
	PhysicsServer3DSliderJointLinearLimitUpper PhysicsServer3DSliderJointParam = 0
	/*The minimum difference between the pivot points on their X axis before damping happens.*/
	PhysicsServer3DSliderJointLinearLimitLower PhysicsServer3DSliderJointParam = 1
	/*A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement.*/
	PhysicsServer3DSliderJointLinearLimitSoftness PhysicsServer3DSliderJointParam = 2
	/*The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost.*/
	PhysicsServer3DSliderJointLinearLimitRestitution PhysicsServer3DSliderJointParam = 3
	/*The amount of damping once the slider limits are surpassed.*/
	PhysicsServer3DSliderJointLinearLimitDamping PhysicsServer3DSliderJointParam = 4
	/*A factor applied to the movement across the slider axis as long as the slider is in the limits. The lower, the slower the movement.*/
	PhysicsServer3DSliderJointLinearMotionSoftness PhysicsServer3DSliderJointParam = 5
	/*The amount of restitution inside the slider limits.*/
	PhysicsServer3DSliderJointLinearMotionRestitution PhysicsServer3DSliderJointParam = 6
	/*The amount of damping inside the slider limits.*/
	PhysicsServer3DSliderJointLinearMotionDamping PhysicsServer3DSliderJointParam = 7
	/*A factor applied to the movement across axes orthogonal to the slider.*/
	PhysicsServer3DSliderJointLinearOrthogonalSoftness PhysicsServer3DSliderJointParam = 8
	/*The amount of restitution when movement is across axes orthogonal to the slider.*/
	PhysicsServer3DSliderJointLinearOrthogonalRestitution PhysicsServer3DSliderJointParam = 9
	/*The amount of damping when movement is across axes orthogonal to the slider.*/
	PhysicsServer3DSliderJointLinearOrthogonalDamping PhysicsServer3DSliderJointParam = 10
	/*The upper limit of rotation in the slider.*/
	PhysicsServer3DSliderJointAngularLimitUpper PhysicsServer3DSliderJointParam = 11
	/*The lower limit of rotation in the slider.*/
	PhysicsServer3DSliderJointAngularLimitLower PhysicsServer3DSliderJointParam = 12
	/*A factor applied to the all rotation once the limit is surpassed.*/
	PhysicsServer3DSliderJointAngularLimitSoftness PhysicsServer3DSliderJointParam = 13
	/*The amount of restitution of the rotation when the limit is surpassed.*/
	PhysicsServer3DSliderJointAngularLimitRestitution PhysicsServer3DSliderJointParam = 14
	/*The amount of damping of the rotation when the limit is surpassed.*/
	PhysicsServer3DSliderJointAngularLimitDamping PhysicsServer3DSliderJointParam = 15
	/*A factor that gets applied to the all rotation in the limits.*/
	PhysicsServer3DSliderJointAngularMotionSoftness PhysicsServer3DSliderJointParam = 16
	/*The amount of restitution of the rotation in the limits.*/
	PhysicsServer3DSliderJointAngularMotionRestitution PhysicsServer3DSliderJointParam = 17
	/*The amount of damping of the rotation in the limits.*/
	PhysicsServer3DSliderJointAngularMotionDamping PhysicsServer3DSliderJointParam = 18
	/*A factor that gets applied to the all rotation across axes orthogonal to the slider.*/
	PhysicsServer3DSliderJointAngularOrthogonalSoftness PhysicsServer3DSliderJointParam = 19
	/*The amount of restitution of the rotation across axes orthogonal to the slider.*/
	PhysicsServer3DSliderJointAngularOrthogonalRestitution PhysicsServer3DSliderJointParam = 20
	/*The amount of damping of the rotation across axes orthogonal to the slider.*/
	PhysicsServer3DSliderJointAngularOrthogonalDamping PhysicsServer3DSliderJointParam = 21
	/*Represents the size of the [enum SliderJointParam] enum.*/
	PhysicsServer3DSliderJointMax PhysicsServer3DSliderJointParam = 22
)

type PhysicsServer3DSpaceParameter

type PhysicsServer3DSpaceParameter = classdb.PhysicsServer3DSpaceParameter
const (
	/*Constant to set/get the maximum distance a pair of bodies has to move before their collision status has to be recalculated.*/
	PhysicsServer3DSpaceParamContactRecycleRadius PhysicsServer3DSpaceParameter = 0
	/*Constant to set/get the maximum distance a shape can be from another before they are considered separated and the contact is discarded.*/
	PhysicsServer3DSpaceParamContactMaxSeparation PhysicsServer3DSpaceParameter = 1
	/*Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision.*/
	PhysicsServer3DSpaceParamContactMaxAllowedPenetration PhysicsServer3DSpaceParameter = 2
	/*Constant to set/get the default solver bias for all physics contacts. A solver bias is a factor controlling how much two objects "rebound", after overlapping, to avoid leaving them in that state because of numerical imprecision.*/
	PhysicsServer3DSpaceParamContactDefaultBias PhysicsServer3DSpaceParameter = 3
	/*Constant to set/get the threshold linear velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given.*/
	PhysicsServer3DSpaceParamBodyLinearVelocitySleepThreshold PhysicsServer3DSpaceParameter = 4
	/*Constant to set/get the threshold angular velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given.*/
	PhysicsServer3DSpaceParamBodyAngularVelocitySleepThreshold PhysicsServer3DSpaceParameter = 5
	/*Constant to set/get the maximum time of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after this time.*/
	PhysicsServer3DSpaceParamBodyTimeToSleep PhysicsServer3DSpaceParameter = 6
	/*Constant to set/get the number of solver iterations for contacts and constraints. The greater the number of iterations, the more accurate the collisions and constraints will be. However, a greater number of iterations requires more CPU power, which can decrease performance.*/
	PhysicsServer3DSpaceParamSolverIterations PhysicsServer3DSpaceParameter = 7
)

type PhysicsShapeQueryParameters2D

type PhysicsShapeQueryParameters2D = classdb.PhysicsShapeQueryParameters2D

By changing various properties of this object, such as the shape, you can configure the parameters for [method PhysicsDirectSpaceState2D.intersect_shape].

type PhysicsShapeQueryParameters3D

type PhysicsShapeQueryParameters3D = classdb.PhysicsShapeQueryParameters3D

By changing various properties of this object, such as the shape, you can configure the parameters for [method PhysicsDirectSpaceState3D.intersect_shape].

type PhysicsTestMotionParameters2D

type PhysicsTestMotionParameters2D = classdb.PhysicsTestMotionParameters2D

By changing various properties of this object, such as the motion, you can configure the parameters for [method PhysicsServer2D.body_test_motion].

type PhysicsTestMotionParameters3D

type PhysicsTestMotionParameters3D = classdb.PhysicsTestMotionParameters3D

By changing various properties of this object, such as the motion, you can configure the parameters for [method PhysicsServer3D.body_test_motion].

type PhysicsTestMotionResult2D

type PhysicsTestMotionResult2D = classdb.PhysicsTestMotionResult2D

Describes the motion and collision result from [method PhysicsServer2D.body_test_motion].

type PhysicsTestMotionResult3D

type PhysicsTestMotionResult3D = classdb.PhysicsTestMotionResult3D

Describes the motion and collision result from [method PhysicsServer3D.body_test_motion].

type PinJoint2D

type PinJoint2D = classdb.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.

type PinJoint3D

type PinJoint3D = classdb.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.

type PinJoint3DParam

type PinJoint3DParam = classdb.PinJoint3DParam
const (
	/*The force with which the pinned objects stay in positional relation to each other. The higher, the stronger.*/
	PinJoint3DParamBias PinJoint3DParam = 0
	/*The force with which the pinned objects stay in velocity relation to each other. The higher, the stronger.*/
	PinJoint3DParamDamping PinJoint3DParam = 1
	/*If above 0, this value is the maximum value for an impulse that this Joint3D produces.*/
	PinJoint3DParamImpulseClamp PinJoint3DParam = 2
)

type PlaceholderCubemap

type PlaceholderCubemap = classdb.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. [b]Note:[/b] This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work.

type PlaceholderCubemapArray

type PlaceholderCubemapArray = classdb.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. [b]Note:[/b] This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work.

type PlaceholderMaterial

type PlaceholderMaterial = classdb.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).

type PlaceholderMesh

type PlaceholderMesh = classdb.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).

type PlaceholderTexture2D

type PlaceholderTexture2D = classdb.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). [b]Note:[/b] 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).

type PlaceholderTexture2DArray

type PlaceholderTexture2DArray = classdb.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). [b]Note:[/b] 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).

type PlaceholderTexture3D

type PlaceholderTexture3D = classdb.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). [b]Note:[/b] 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).

type PlaceholderTextureLayered

type PlaceholderTextureLayered = classdb.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). [b]Note:[/b] 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).

type Plane

type Plane = gd.Plane

func NewPlane

func NewPlane(a, b, c Vector3) Plane

NewPlane creates a plane from the three points, given in clockwise order.

type PlaneMesh

type PlaneMesh = classdb.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 [member orientation] to [constant FACE_Z]. [b]Note:[/b] 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 [member subdivide_depth] and [member subdivide_width] until you no longer notice UV jittering.

type PlaneMeshOrientation

type PlaneMeshOrientation = classdb.PlaneMeshOrientation
const (
	/*[PlaneMesh] will face the positive X-axis.*/
	PlaneMeshFaceX PlaneMeshOrientation = 0
	/*[PlaneMesh] will face the positive Y-axis. This matches the behavior of the [PlaneMesh] in Godot 3.x.*/
	PlaneMeshFaceY PlaneMeshOrientation = 1
	/*[PlaneMesh] will face the positive Z-axis. This matches the behavior of the QuadMesh in Godot 3.x.*/
	PlaneMeshFaceZ PlaneMeshOrientation = 2
)

type PointLight2D

type PointLight2D = classdb.PointLight2D

Casts light in a 2D environment. This light's shape is defined by a (usually grayscale) texture.

type PointMesh

type PointMesh = classdb.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 [code]POINT_SIZE[/code], or in a BaseMaterial3D by setting [member BaseMaterial3D.use_point_size] and the variable [member BaseMaterial3D.point_size]. When using PointMeshes, properties that normally alter vertices will be ignored, including billboard mode, grow, and cull face.

type Polygon2D

type Polygon2D = classdb.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.

type PolygonOccluder3D

type PolygonOccluder3D = classdb.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.

type PolygonPathFinder

type PolygonPathFinder = classdb.PolygonPathFinder
type Popup = classdb.Popup

Popup is a base class for contextual windows and panels with fixed position. It's a modal by default (see [member Window.popup_window]) and provides methods for implementing custom popup behavior.

type PopupMenu

type PopupMenu = classdb.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 [member Window.max_size]. 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 [code]0[/code], the PopupMenu height will be limited by its parent rect. All [code]set_*[/code] methods allow negative item indices, i.e. [code]-1[/code] to access the last item, [code]-2[/code] to select the second-to-last item, and so on. [b]Incremental search:[/b] 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 [member ProjectSettings.gui/timers/incremental_search_max_interval_msec]. [b]Note:[/b] The ID values used for items are limited to 32 bits, not full 64 bits of [int]. This has a range of [code]-2^32[/code] to [code]2^32 - 1[/code], i.e. [code]-2147483648[/code] to [code]2147483647[/code].

type PopupPanel

type PopupPanel = classdb.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.

type PortableCompressedTexture2D

type PortableCompressedTexture2D = classdb.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.

type PortableCompressedTexture2DCompressionMode

type PortableCompressedTexture2DCompressionMode = classdb.PortableCompressedTexture2DCompressionMode
const (
	PortableCompressedTexture2DCompressionModeLossless       PortableCompressedTexture2DCompressionMode = 0
	PortableCompressedTexture2DCompressionModeLossy          PortableCompressedTexture2DCompressionMode = 1
	PortableCompressedTexture2DCompressionModeBasisUniversal PortableCompressedTexture2DCompressionMode = 2
	PortableCompressedTexture2DCompressionModeS3tc           PortableCompressedTexture2DCompressionMode = 3
	PortableCompressedTexture2DCompressionModeEtc2           PortableCompressedTexture2DCompressionMode = 4
	PortableCompressedTexture2DCompressionModeBptc           PortableCompressedTexture2DCompressionMode = 5
)

type PrimitiveMesh

type PrimitiveMesh = classdb.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 methods that can be overridden by a [Class] that extends it.
type PrimitiveMesh interface {
	//Override this method to customize how this primitive mesh should be generated. Should return an [Array] where each element is another Array of values required for the mesh (see the [enum Mesh.ArrayType] constants).
	CreateMeshArray(godot Context) gd.Array
}

type PrismMesh

type PrismMesh = classdb.PrismMesh

Class representing a prism-shaped PrimitiveMesh.

type ProceduralSkyMaterial

type ProceduralSkyMaterial = classdb.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 [DirectionalLight3D]s and globally by [member sun_angle_max] and [member sun_curve]. 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.

type ProgressBar

type ProgressBar = classdb.ProgressBar

A control used for visual representation of a percentage. Shows fill percentage from right to left.

type ProgressBarFillMode

type ProgressBarFillMode = classdb.ProgressBarFillMode
const (
	/*The progress bar fills from begin to end horizontally, according to the language direction. If [method Control.is_layout_rtl] returns [code]false[/code], it fills from left to right, and if it returns [code]true[/code], it fills from right to left.*/
	ProgressBarFillBeginToEnd ProgressBarFillMode = 0
	/*The progress bar fills from end to begin horizontally, according to the language direction. If [method Control.is_layout_rtl] returns [code]false[/code], it fills from right to left, and if it returns [code]true[/code], it fills from left to right.*/
	ProgressBarFillEndToBegin ProgressBarFillMode = 1
	/*The progress fills from top to bottom.*/
	ProgressBarFillTopToBottom ProgressBarFillMode = 2
	/*The progress fills from bottom to top.*/
	ProgressBarFillBottomToTop ProgressBarFillMode = 3
)

type Projection

type Projection = gd.Projection

type ProjectionPlanes

type ProjectionPlanes = gd.ProjectionPlanes
const (
	/*The index value of the projection's near clipping plane.*/
	ProjectionPlaneNear ProjectionPlanes = 0
	/*The index value of the projection's far clipping plane.*/
	ProjectionPlaneFar ProjectionPlanes = 1
	/*The index value of the projection's left clipping plane.*/
	ProjectionPlaneLeft ProjectionPlanes = 2
	/*The index value of the projection's top clipping plane.*/
	ProjectionPlaneTop ProjectionPlanes = 3
	/*The index value of the projection's right clipping plane.*/
	ProjectionPlaneRight ProjectionPlanes = 4
	/*The index value of the projection bottom clipping plane.*/
	ProjectionPlaneBottom ProjectionPlanes = 5
)

type PropertyHint

type PropertyHint = gd.PropertyHint
const (
	/*The property has no hint for the editor.*/
	PropertyHintNone PropertyHint = 0
	/*Hints that an [int] or [float] property should be within a range specified via the hint string [code]"min,max"[/code] or [code]"min,max,step"[/code]. The hint string can optionally include [code]"or_greater"[/code] and/or [code]"or_less"[/code] to allow manual input going respectively above the max or below the min values.
	  [b]Example:[/b] [code]"-360,360,1,or_greater,or_less"[/code].
	  Additionally, other keywords can be included: [code]"exp"[/code] for exponential range editing, [code]"radians_as_degrees"[/code] for editing radian angles in degrees (the range values are also in degrees), [code]"degrees"[/code] to hint at an angle and [code]"hide_slider"[/code] to hide the slider.*/
	PropertyHintRange PropertyHint = 1
	/*Hints that an [int] or [String] property is an enumerated value to pick in a list specified via a hint string.
	  The hint string is a comma separated list of names such as [code]"Hello,Something,Else"[/code]. Whitespaces are [b]not[/b] removed from either end of a name. For integer properties, the first name in the list has value 0, the next 1, and so on. Explicit values can also be specified by appending [code]:integer[/code] to the name, e.g. [code]"Zero,One,Three:3,Four,Six:6"[/code].*/
	PropertyHintEnum PropertyHint = 2
	/*Hints that a [String] property can be an enumerated value to pick in a list specified via a hint string such as [code]"Hello,Something,Else"[/code].
	  Unlike [constant PROPERTY_HINT_ENUM], a property with this hint still accepts arbitrary values and can be empty. The list of values serves to suggest possible values.*/
	PropertyHintEnumSuggestion PropertyHint = 3
	/*Hints that a [float] property should be edited via an exponential easing function. The hint string can include [code]"attenuation"[/code] to flip the curve horizontally and/or [code]"positive_only"[/code] to exclude in/out easing and limit values to be greater than or equal to zero.*/
	PropertyHintExpEasing PropertyHint = 4
	/*Hints that a vector property should allow its components to be linked. For example, this allows [member Vector2.x] and [member Vector2.y] to be edited together.*/
	PropertyHintLink PropertyHint = 5
	/*Hints that an [int] property is a bitmask with named bit flags.
	  The hint string is a comma separated list of names such as [code]"Bit0,Bit1,Bit2,Bit3"[/code]. Whitespaces are [b]not[/b] removed from either end of a name. The first name in the list has value 1, the next 2, then 4, 8, 16 and so on. Explicit values can also be specified by appending [code]:integer[/code] to the name, e.g. [code]"A:4,B:8,C:16"[/code]. You can also combine several flags ([code]"A:4,B:8,AB:12,C:16"[/code]).
	  [b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 ** 32 - 1[/code].
	  [b]Note:[/b] Unlike [constant PROPERTY_HINT_ENUM], the previous explicit value is not taken into account. For the hint [code]"A:16,B,C"[/code], A is 16, B is 2, C is 4.*/
	PropertyHintFlags PropertyHint = 6
	/*Hints that an [int] property is a bitmask using the optionally named 2D render layers.*/
	PropertyHintLayers2dRender PropertyHint = 7
	/*Hints that an [int] property is a bitmask using the optionally named 2D physics layers.*/
	PropertyHintLayers2dPhysics PropertyHint = 8
	/*Hints that an [int] property is a bitmask using the optionally named 2D navigation layers.*/
	PropertyHintLayers2dNavigation PropertyHint = 9
	/*Hints that an [int] property is a bitmask using the optionally named 3D render layers.*/
	PropertyHintLayers3dRender PropertyHint = 10
	/*Hints that an [int] property is a bitmask using the optionally named 3D physics layers.*/
	PropertyHintLayers3dPhysics PropertyHint = 11
	/*Hints that an [int] property is a bitmask using the optionally named 3D navigation layers.*/
	PropertyHintLayers3dNavigation PropertyHint = 12
	/*Hints that an integer property is a bitmask using the optionally named avoidance layers.*/
	PropertyHintLayersAvoidance PropertyHint = 37
	/*Hints that a [String] property is a path to a file. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like [code]"*.png,*.jpg"[/code].*/
	PropertyHintFile PropertyHint = 13
	/*Hints that a [String] property is a path to a directory. Editing it will show a file dialog for picking the path.*/
	PropertyHintDir PropertyHint = 14
	/*Hints that a [String] property is an absolute path to a file outside the project folder. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards, like [code]"*.png,*.jpg"[/code].*/
	PropertyHintGlobalFile PropertyHint = 15
	/*Hints that a [String] property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path.*/
	PropertyHintGlobalDir PropertyHint = 16
	/*Hints that a property is an instance of a [Resource]-derived type, optionally specified via the hint string (e.g. [code]"Texture2D"[/code]). Editing it will show a popup menu of valid resource types to instantiate.*/
	PropertyHintResourceType PropertyHint = 17
	/*Hints that a [String] property is text with line breaks. Editing it will show a text input field where line breaks can be typed.*/
	PropertyHintMultilineText PropertyHint = 18
	/*Hints that a [String] property is an [Expression].*/
	PropertyHintExpression PropertyHint = 19
	/*Hints that a [String] property should show a placeholder text on its input field, if empty. The hint string is the placeholder text to use.*/
	PropertyHintPlaceholderText PropertyHint = 20
	/*Hints that a [Color] property should be edited without affecting its transparency ([member Color.a] is not editable).*/
	PropertyHintColorNoAlpha PropertyHint = 21
	/*Hints that the property's value is an object encoded as object ID, with its type specified in the hint string. Used by the debugger.*/
	PropertyHintObjectId PropertyHint = 22
	/*If a property is [String], hints that the property represents a particular type (class). This allows to select a type from the create dialog. The property will store the selected type as a string.
	  If a property is [Array], hints the editor how to show elements. The [code]hint_string[/code] must encode nested types using [code]":"[/code] and [code]"/"[/code].
	  [codeblocks]
	  [gdscript]
	  # Array of elem_type.
	  hint_string = "%d:" % [elem_type]
	  hint_string = "%d/%d:%s" % [elem_type, elem_hint, elem_hint_string]
	  # Two-dimensional array of elem_type (array of arrays of elem_type).
	  hint_string = "%d:%d:" % [TYPE_ARRAY, elem_type]
	  hint_string = "%d:%d/%d:%s" % [TYPE_ARRAY, elem_type, elem_hint, elem_hint_string]
	  # Three-dimensional array of elem_type (array of arrays of arrays of elem_type).
	  hint_string = "%d:%d:%d:" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]
	  hint_string = "%d:%d:%d/%d:%s" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, elem_hint, elem_hint_string]
	  [/gdscript]
	  [csharp]
	  // Array of elemType.
	  hintString = $"{elemType:D}:";
	  hintString = $"{elemType:}/{elemHint:D}:{elemHintString}";
	  // Two-dimensional array of elemType (array of arrays of elemType).
	  hintString = $"{Variant.Type.Array:D}:{elemType:D}:";
	  hintString = $"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:{elemHintString}";
	  // Three-dimensional array of elemType (array of arrays of arrays of elemType).
	  hintString = $"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:";
	  hintString = $"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:{elemHintString}";
	  [/csharp]
	  [/codeblocks]
	  Examples:
	  [codeblocks]
	  [gdscript]
	  hint_string = "%d:" % [TYPE_INT] # Array of integers.
	  hint_string = "%d/%d:1,10,1" % [TYPE_INT, PROPERTY_HINT_RANGE] # Array of integers (in range from 1 to 10).
	  hint_string = "%d/%d:Zero,One,Two" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array of integers (an enum).
	  hint_string = "%d/%d:Zero,One,Three:3,Six:6" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array of integers (an enum).
	  hint_string = "%d/%d:*.png" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of strings (file paths).
	  hint_string = "%d/%d:Texture2D" % [TYPE_OBJECT, PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.

	  hint_string = "%d:%d:" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array of floats.
	  hint_string = "%d:%d/%d:" % [TYPE_ARRAY, TYPE_STRING, PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.
	  hint_string = "%d:%d/%d:-1,1,0.1" % [TYPE_ARRAY, TYPE_FLOAT, PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to 1).
	  hint_string = "%d:%d/%d:Texture2D" % [TYPE_ARRAY, TYPE_OBJECT, PROPERTY_HINT_RESOURCE_TYPE] # Two-dimensional array of textures.
	  [/gdscript]
	  [csharp]
	  hintString = $"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1"; // Array of integers (in range from 1 to 10).
	  hintString = $"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two"; // Array of integers (an enum).
	  hintString = $"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,Six:6"; // Array of integers (an enum).
	  hintString = $"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png"; // Array of strings (file paths).
	  hintString = $"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:Texture2D"; // Array of textures.

	  hintString = $"{Variant.Type.Array:D}:{Variant.Type.Float:D}:"; // Two-dimensional array of floats.
	  hintString = $"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint.MultilineText:D}:"; // Two-dimensional array of multiline strings.
	  hintString = $"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint.Range:D}:-1,1,0.1"; // Two-dimensional array of floats (in range from -1 to 1).
	  hintString = $"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:Texture2D"; // Two-dimensional array of textures.
	  [/csharp]
	  [/codeblocks]
	  [b]Note:[/b] The trailing colon is required for properly detecting built-in types.*/
	PropertyHintTypeString PropertyHint = 23
	/*[i]Deprecated.[/i] This hint is not used anywhere and will be removed in the future.*/
	PropertyHintNodePathToEditedNode PropertyHint = 24
	/*Hints that an object is too big to be sent via the debugger.*/
	PropertyHintObjectTooBig PropertyHint = 25
	/*Hints that the hint string specifies valid node types for property of type [NodePath].*/
	PropertyHintNodePathValidTypes PropertyHint = 26
	/*Hints that a [String] property is a path to a file. Editing it will show a file dialog for picking the path for the file to be saved at. The dialog has access to the project's directory. The hint string can be a set of filters with wildcards like [code]"*.png,*.jpg"[/code]. See also [member FileDialog.filters].*/
	PropertyHintSaveFile PropertyHint = 27
	/*Hints that a [String] property is a path to a file. Editing it will show a file dialog for picking the path for the file to be saved at. The dialog has access to the entire filesystem. The hint string can be a set of filters with wildcards like [code]"*.png,*.jpg"[/code]. See also [member FileDialog.filters].*/
	PropertyHintGlobalSaveFile PropertyHint = 28
	/*Hints that an [int] property is an object ID.
	  [i]Deprecated.[/i] This hint is not used anywhere and will be removed in the future.*/
	PropertyHintIntIsObjectid PropertyHint = 29
	/*Hints that an [int] property is a pointer. Used by GDExtension.*/
	PropertyHintIntIsPointer PropertyHint = 30
	/*Hints that a property is an [Array] with the stored type specified in the hint string.*/
	PropertyHintArrayType PropertyHint = 31
	/*Hints that a string property is a locale code. Editing it will show a locale dialog for picking language and country.*/
	PropertyHintLocaleId PropertyHint = 32
	/*Hints that a dictionary property is string translation map. Dictionary keys are locale codes and, values are translated strings.*/
	PropertyHintLocalizableString PropertyHint = 33
	/*Hints that a property is an instance of a [Node]-derived type, optionally specified via the hint string (e.g. [code]"Node2D"[/code]). Editing it will show a dialog for picking a node from the scene.*/
	PropertyHintNodeType PropertyHint = 34
	/*Hints that a quaternion property should disable the temporary euler editor.*/
	PropertyHintHideQuaternionEdit PropertyHint = 35
	/*Hints that a string property is a password, and every character is replaced with the secret character.*/
	PropertyHintPassword PropertyHint = 36
	/*Represents the size of the [enum PropertyHint] enum.*/
	PropertyHintMax PropertyHint = 38
)

type PropertyTweener

type PropertyTweener = classdb.PropertyTweener

PropertyTweener is used to interpolate a property in an object. See [method Tween.tween_property] for more usage information. [b]Note:[/b] [method Tween.tween_property] is the only correct way to create PropertyTweener. Any PropertyTweener created manually will not function correctly.

type PropertyUsageFlags

type PropertyUsageFlags = gd.PropertyUsageFlags
const (
	/*The property is not stored, and does not display in the editor. This is the default for non-exported properties.*/
	PropertyUsageNone PropertyUsageFlags = 0
	/*The property is serialized and saved in the scene file (default).*/
	PropertyUsageStorage PropertyUsageFlags = 2
	/*The property is shown in the [EditorInspector] (default).*/
	PropertyUsageEditor PropertyUsageFlags = 4
	/*The property is excluded from the class reference.*/
	PropertyUsageInternal PropertyUsageFlags = 8
	/*The property can be checked in the [EditorInspector].*/
	PropertyUsageCheckable PropertyUsageFlags = 16
	/*The property is checked in the [EditorInspector].*/
	PropertyUsageChecked PropertyUsageFlags = 32
	/*Used to group properties together in the editor. See [EditorInspector].*/
	PropertyUsageGroup PropertyUsageFlags = 64
	/*Used to categorize properties together in the editor.*/
	PropertyUsageCategory PropertyUsageFlags = 128
	/*Used to group properties together in the editor in a subgroup (under a group). See [EditorInspector].*/
	PropertyUsageSubgroup PropertyUsageFlags = 256
	/*The property is a bitfield, i.e. it contains multiple flags represented as bits.*/
	PropertyUsageClassIsBitfield PropertyUsageFlags = 512
	/*The property does not save its state in [PackedScene].*/
	PropertyUsageNoInstanceState PropertyUsageFlags = 1024
	/*Editing the property prompts the user for restarting the editor.*/
	PropertyUsageRestartIfChanged PropertyUsageFlags = 2048
	/*The property is a script variable which should be serialized and saved in the scene file.*/
	PropertyUsageScriptVariable PropertyUsageFlags = 4096
	/*The property value of type [Object] will be stored even if its value is [code]null[/code].*/
	PropertyUsageStoreIfNull PropertyUsageFlags = 8192
	/*If this property is modified, all inspector fields will be refreshed.*/
	PropertyUsageUpdateAllIfModified PropertyUsageFlags = 16384
	/*Signifies a default value from a placeholder script instance.
	  [i]Deprecated.[/i] This hint is not used anywhere and will be removed in the future.*/
	PropertyUsageScriptDefaultValue PropertyUsageFlags = 32768
	/*The property is an enum, i.e. it only takes named integer constants from its associated enumeration.*/
	PropertyUsageClassIsEnum PropertyUsageFlags = 65536
	/*If property has [code]nil[/code] as default value, its type will be [Variant].*/
	PropertyUsageNilIsVariant PropertyUsageFlags = 131072
	/*The property is an array.*/
	PropertyUsageArray PropertyUsageFlags = 262144
	/*When duplicating a resource with [method Resource.duplicate], and this flag is set on a property of that resource, the property should always be duplicated, regardless of the [code]subresources[/code] bool parameter.*/
	PropertyUsageAlwaysDuplicate PropertyUsageFlags = 524288
	/*When duplicating a resource with [method Resource.duplicate], and this flag is set on a property of that resource, the property should never be duplicated, regardless of the [code]subresources[/code] bool parameter.*/
	PropertyUsageNeverDuplicate PropertyUsageFlags = 1048576
	/*The property is only shown in the editor if modern renderers are supported (the Compatibility rendering method is excluded).*/
	PropertyUsageHighEndGfx PropertyUsageFlags = 2097152
	/*The [NodePath] property will always be relative to the scene's root. Mostly useful for local resources.*/
	PropertyUsageNodePathFromSceneRoot PropertyUsageFlags = 4194304
	/*Use when a resource is created on the fly, i.e. the getter will always return a different instance. [ResourceSaver] needs this information to properly save such resources.*/
	PropertyUsageResourceNotPersistent PropertyUsageFlags = 8388608
	/*Inserting an animation key frame of this property will automatically increment the value, allowing to easily keyframe multiple values in a row.*/
	PropertyUsageKeyingIncrements PropertyUsageFlags = 16777216
	/*When loading, the resource for this property can be set at the end of loading.
	  [i]Deprecated.[/i] This hint is not used anywhere and will be removed in the future.*/
	PropertyUsageDeferredSetResource PropertyUsageFlags = 33554432
	/*When this property is a [Resource] and base object is a [Node], a resource instance will be automatically created whenever the node is created in the editor.*/
	PropertyUsageEditorInstantiateObject PropertyUsageFlags = 67108864
	/*The property is considered a basic setting and will appear even when advanced mode is disabled. Used for project settings.*/
	PropertyUsageEditorBasicSetting PropertyUsageFlags = 134217728
	/*The property is read-only in the [EditorInspector].*/
	PropertyUsageReadOnly PropertyUsageFlags = 268435456
	/*An export preset property with this flag contains confidential information and is stored separately from the rest of the export preset configuration.*/
	PropertyUsageSecret PropertyUsageFlags = 536870912
	/*Default usage (storage and editor).*/
	PropertyUsageDefault PropertyUsageFlags = 6
	/*Default usage but without showing the property in the editor (storage).*/
	PropertyUsageNoEditor PropertyUsageFlags = 2
)

type QuadMesh

type QuadMesh = classdb.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 [member PlaneMesh.orientation] is [constant PlaneMesh.FACE_Z].

type QuadOccluder3D

type QuadOccluder3D = classdb.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.

type Quaternion

type Quaternion = gd.Quaternion

type RDAttachmentFormat

type RDAttachmentFormat = classdb.RDAttachmentFormat

This object is used by RenderingDevice.

type RDFramebufferPass

type RDFramebufferPass = classdb.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.

type RDPipelineColorBlendState

type RDPipelineColorBlendState = classdb.RDPipelineColorBlendState

This object is used by RenderingDevice.

type RDPipelineColorBlendStateAttachment

type RDPipelineColorBlendStateAttachment = classdb.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: [b]Mix:[/b] [codeblock] 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 [/codeblock] [b]Add:[/b] [codeblock] 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 [/codeblock] [b]Subtract:[/b] [codeblock] 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 [/codeblock] [b]Multiply:[/b] [codeblock] 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 [/codeblock] [b]Pre-multiplied alpha:[/b] [codeblock] 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 [/codeblock]

type RDPipelineDepthStencilState

type RDPipelineDepthStencilState = classdb.RDPipelineDepthStencilState

RDPipelineDepthStencilState controls the way depth and stencil comparisons are performed when sampling those values using RenderingDevice.

type RDPipelineMultisampleState

type RDPipelineMultisampleState = classdb.RDPipelineMultisampleState

RDPipelineMultisampleState is used to control how multisample or supersample antialiasing is being performed when rendering using RenderingDevice.

type RDPipelineRasterizationState

type RDPipelineRasterizationState = classdb.RDPipelineRasterizationState

This object is used by RenderingDevice.

type RDPipelineSpecializationConstant

type RDPipelineSpecializationConstant = classdb.RDPipelineSpecializationConstant

A [i]specialization constant[/i] 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 [code]if[/code] branching, while still allowing shaders to be flexible for different use cases. This object is used by RenderingDevice.

type RDSamplerState

type RDSamplerState = classdb.RDSamplerState

This object is used by RenderingDevice.

type RDShaderFile

type RDShaderFile = classdb.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.

type RDShaderSPIRV

type RDShaderSPIRV = classdb.RDShaderSPIRV

RDShaderSPIRV represents a RDShaderFile's [url=https://www.khronos.org/spir/]SPIR-V[/url] 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.

type RDShaderSource

type RDShaderSource = classdb.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.

type RDTextureFormat

type RDTextureFormat = classdb.RDTextureFormat

This object is used by RenderingDevice.

type RDTextureView

type RDTextureView = classdb.RDTextureView

This object is used by RenderingDevice.

type RDUniform

type RDUniform = classdb.RDUniform

This object is used by RenderingDevice.

type RDVertexAttribute

type RDVertexAttribute = classdb.RDVertexAttribute

This object is used by RenderingDevice.

type RID

type RID = gd.RID

type Radians

type Radians = xy.Radians

func Acos

func Acos[T ~float32 | ~float64](x T) Radians

Acos returns the arc cosine of x in radians. Use to get the angle of cosine x. x will be clamped between -1.0 and 1.0 (inclusive), in order to prevent acos from returning NaN.

func Acosh

func Acosh[T ~float32 | ~float64](x T) Radians

Acosh returns the hyperbolic arc (also called inverse) cosine of x, returning a value in radians. Use it to get the angle from an angle's cosine in hyperbolic space if x is larger or equal to 1. For values of x lower than 1, it will return 0, in order to prevent acosh from returning NaN.

func Asin

func Asin[T ~float32 | ~float64](x T) Radians

Asin returns the arc sine of x in radians. Use to get the angle of sine x. x will be clamped between -1.0 and 1.0 (inclusive), in order to prevent asin from returning NaN.

func Asinh

func Asinh[T ~float32 | ~float64](x T) Radians

Asinh returns the hyperbolic arc (also called inverse) sine of x, returning a value in radians. Use it to get the angle from an angle's sine in hyperbolic space.

func Atan

func Atan[T ~float32 | ~float64](x T) Radians

Atan returns the arc tangent of x in radians. Use it to get the angle from an angle's tangent in trigonometry. The method cannot know in which quadrant the angle should fall. See atan2 if you have both y and x.

func Atan2

func Atan2[T ~float32 | ~float64](y, x T) Radians

Atan2 returns the arc tangent of y/x in radians. Use to get the angle of tangent y/x. To compute the value, the method takes into account the sign of both arguments in order to determine the quadrant.

Important note: The Y coordinate comes first, by convention.

func Atanh

func Atanh[T ~float32 | ~float64](x T) Radians

Atanh returns the hyperbolic arc (also called inverse) tangent of x, returning a value in radians. Use it to get the angle from an angle's tangent in hyperbolic space if x is between -1 and 1 (non-inclusive).

In mathematics, the inverse hyperbolic tangent is only defined for -1 < x < 1 in the real set, so values equal or lower to -1 for x return -INF and values equal or higher than 1 return +INF in order to prevent atanh from returning NaN.

type RandomNumberGenerator

type RandomNumberGenerator = classdb.RandomNumberGenerator

RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses [url=https://www.pcg-random.org/]PCG32[/url]. [b]Note:[/b] 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: [codeblock] var rng = RandomNumberGenerator.new() func _ready():

var my_random_number = rng.randf_range(-10.0, 10.0)

[/codeblock]

type Range

type Range = classdb.Range

Range is an abstract base class for controls that represent a number within a range, using a configured [member step] and [member page] size. See e.g. ScrollBar and Slider for examples of higher-level nodes using Range.

// Range methods that can be overridden by a [Class] that extends it.
type Range interface {
	//Called when the [Range]'s value is changed (following the same conditions as [signal value_changed]).
	ValueChanged(godot Context, new_value gd.Float)
}

type RayCast2D

type RayCast2D = classdb.RayCast2D

A raycast represents a ray from its origin to its [member target_position] 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 [Area2D]s ([member collide_with_areas]) or [PhysicsBody2D]s ([member collide_with_bodies]), 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 [method force_raycast_update]. To sweep over a region of 2D space, you can approximate the region with multiple [RayCast2D]s or use ShapeCast2D.

type RayCast3D

type RayCast3D = classdb.RayCast3D

A raycast represents a ray from its origin to its [member target_position] 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 [Area3D]s ([member collide_with_areas]) or [PhysicsBody3D]s ([member collide_with_bodies]), 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 [method force_raycast_update]. To sweep over a region of 3D space, you can approximate the region with multiple [RayCast3D]s or use ShapeCast3D.

type Rect2

type Rect2 = gd.Rect2

func NewRect2

func NewRect2(x, y, width, height Float) Rect2

NewRect2 constructs a Rect2 by setting its position to (x, y), and its size to (width, height).

type Rect2i

type Rect2i = gd.Rect2i

func NewRect2i

func NewRect2i(x, y, width, height Int) Rect2i

NewRect2i constructs a Rect2i by setting its position to (x, y), and its size to (width, height).

type RectangleShape2D

type RectangleShape2D = classdb.RectangleShape2D

A 2D rectangle shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D. [b]Performance:[/b] RectangleShape2D is fast to check collisions against. It is faster than CapsuleShape2D, but slower than CircleShape2D.

type RefCounted

type RefCounted = gd.RefCounted

Base class for any object that keeps a reference count. Resource and many other helper objects inherit this class. Unlike other Object types, [RefCounted]s keep an internal reference counter so that they are automatically released when no longer in use, and only then. [RefCounted]s therefore do not need to be freed manually with [method Object.free]. RefCounted instances caught in a cyclic reference will [b]not[/b] be freed automatically. For example, if a node holds a reference to instance [code]A[/code], which directly or indirectly holds a reference back to [code]A[/code], [code]A[/code]'s reference count will be 2. Destruction of the node will leave [code]A[/code] 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 [method @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. [b]Note:[/b] 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.

type ReferenceRect

type ReferenceRect = classdb.ReferenceRect

A rectangle box that displays only a colored border around its rectangle. It is used to visualize the extents of a Control.

type ReflectionProbe

type ReflectionProbe = classdb.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 [member update_mode] is [constant UPDATE_ONCE]). [ReflectionProbe]s can be blended together and with the rest of the scene smoothly. [ReflectionProbe]s can also be combined with VoxelGI, SDFGI ([member Environment.sdfgi_enabled]) and screen-space reflections ([member Environment.ssr_enabled]) to get more accurate reflections in specific areas. [ReflectionProbe]s render all objects within their [member cull_mask], 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. [b]Note:[/b] Unlike VoxelGI and SDFGI, [ReflectionProbe]s 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. [b]Note:[/b] 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. [b]Note:[/b] 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, [member GeometryInstance3D.extra_cull_margin] must be increased on the mesh. Otherwise, the reflection probe may not be visible on the mesh.

type ReflectionProbeAmbientMode

type ReflectionProbeAmbientMode = classdb.ReflectionProbeAmbientMode
const (
	/*Do not apply any ambient lighting inside the [ReflectionProbe]'s box defined by its [member size].*/
	ReflectionProbeAmbientDisabled ReflectionProbeAmbientMode = 0
	/*Apply automatically-sourced environment lighting inside the [ReflectionProbe]'s box defined by its [member size].*/
	ReflectionProbeAmbientEnvironment ReflectionProbeAmbientMode = 1
	/*Apply custom ambient lighting inside the [ReflectionProbe]'s box defined by its [member size]. See [member ambient_color] and [member ambient_color_energy].*/
	ReflectionProbeAmbientColor ReflectionProbeAmbientMode = 2
)

type ReflectionProbeUpdateMode

type ReflectionProbeUpdateMode = classdb.ReflectionProbeUpdateMode
const (
	/*Update the probe once on the next frame (recommended for most objects). The corresponding radiance map will be generated over the following six frames. This takes more time to update than [constant UPDATE_ALWAYS], but it has a lower performance cost and can result in higher-quality reflections. The ReflectionProbe is updated when its transform changes, but not when nearby geometry changes. You can force a [ReflectionProbe] update by moving the [ReflectionProbe] slightly in any direction.*/
	ReflectionProbeUpdateOnce ReflectionProbeUpdateMode = 0
	/*Update the probe every frame. This provides better results for fast-moving dynamic objects (such as cars). However, it has a significant performance cost. Due to the cost, it's recommended to only use one ReflectionProbe with [constant UPDATE_ALWAYS] at most per scene. For all other use cases, use [constant UPDATE_ONCE].*/
	ReflectionProbeUpdateAlways ReflectionProbeUpdateMode = 1
)

type RegEx

type RegEx = classdb.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 [code]ab[0-9][/code] would find any string that is [code]ab[/code] followed by any number from [code]0[/code] to [code]9[/code]. 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 [method compile] before it can be used. [codeblock] var regex = RegEx.new() regex.compile("\\w-(\\d+)") [/codeblock] The search pattern must be escaped first for GDScript before it is escaped for the expression. For example, [code]compile("\\d+")[/code] would be read by RegEx as [code]\d+[/code]. Similarly, [code]compile("\"(?:\\\\.|[^\"])*\"")[/code] would be read as [code]"(?:\\.|[^"])*"[/code]. In GDScript, you can also use raw string literals (r-strings). For example, [code]compile(r'"(?:\\.|[^"])*"')[/code] would be read the same. Using [method search], 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 [method RegExMatch.get_string] and [method RegExMatch.get_start]. [codeblock] 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

[/codeblock] The results of capturing groups [code]()[/code] 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, calling [code]result.get_string(1)[/code] would give you [code]0123[/code]. 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. [codeblock] 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

[/codeblock] If you need to process multiple results, [method search_all] generates a list of all non-overlapping results. This can be combined with a [code]for[/code] loop for convenience. [codeblock] for result in regex.search_all("d01, d03, d0c, x3f and x42"):

print(result.get_string("digit"))

# Would print 01 03 0 3f 42 [/codeblock] [b]Example of splitting a string using a RegEx:[/b] [codeblock] 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". [/codeblock] [b]Note:[/b] Godot's regex implementation is based on the [url=https://www.pcre.org/]PCRE2[/url] library. You can view the full pattern reference [url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url]. [b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test regular expressions online.

type RegExMatch

type RegExMatch = classdb.RegExMatch

Contains the results of a single RegEx match returned by [method RegEx.search] and [method RegEx.search_all]. 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.

type RemoteTransform2D

type RemoteTransform2D = classdb.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.

type RemoteTransform3D

type RemoteTransform3D = classdb.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.

type RenderSceneBuffers

type RenderSceneBuffers = classdb.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. [b]Note:[/b] this is an internal rendering server object only exposed for GDExtension plugins.

type RenderSceneBuffersConfiguration

type RenderSceneBuffersConfiguration = classdb.RenderSceneBuffersConfiguration

This configuration object is created and populated by the render engine on a viewport change and used to (re)configure a RenderSceneBuffers object.

type RenderSceneBuffersExtension

type RenderSceneBuffersExtension = classdb.RenderSceneBuffersExtension

This class allows for a RenderSceneBuffer implementation to be made in GDExtension.

// RenderSceneBuffersExtension methods that can be overridden by a [Class] that extends it.
type RenderSceneBuffersExtension interface {
	//Implement this in GDExtension to handle the (re)sizing of a viewport.
	Configure(godot Context, config RenderSceneBuffersConfiguration)
	//Implement this in GDExtension to record a new FSR sharpness value.
	SetFsrSharpness(godot Context, fsr_sharpness gd.Float)
	//Implement this in GDExtension to change the texture mipmap bias.
	SetTextureMipmapBias(godot Context, texture_mipmap_bias gd.Float)
	//Implement this in GDExtension to react to the debanding flag changing.
	SetUseDebanding(godot Context, use_debanding bool)
}

type RenderSceneBuffersRD

type RenderSceneBuffersRD = classdb.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 [b]contexts[/b]. The default context is called [b]render_buffers[/b] 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. [b]Note:[/b] this is an internal rendering server object only exposed for GDExtension plugins.

type RenderingDevice

type RenderingDevice = classdb.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 [method RenderingServer.get_rendering_device]. This global RenderingDevice performs drawing to the screen. [b]Local RenderingDevices:[/b] Using [method RenderingServer.create_local_rendering_device], you can create "secondary" rendering devices to perform drawing and GPU compute operations on separate threads. [b]Note:[/b] 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 [url=https://vulkan-tutorial.com/]Vulkan Tutorial[/url] or [url=https://vkguide.dev/]Vulkan Guide[/url]. It's recommended to have existing modern OpenGL or Direct3D 11 knowledge before attempting to learn a low-level graphics API. [b]Note:[/b] RenderingDevice is not available when running in headless mode or when using the Compatibility rendering method.

type RenderingDeviceBarrierMask

type RenderingDeviceBarrierMask = classdb.RenderingDeviceBarrierMask
const (
	/*Vertex shader barrier mask.*/
	RenderingDeviceBarrierMaskVertex RenderingDeviceBarrierMask = 1
	/*Fragment shader barrier mask.*/
	RenderingDeviceBarrierMaskFragment RenderingDeviceBarrierMask = 8
	/*Compute barrier mask.*/
	RenderingDeviceBarrierMaskCompute RenderingDeviceBarrierMask = 2
	/*Transfer barrier mask.*/
	RenderingDeviceBarrierMaskTransfer RenderingDeviceBarrierMask = 4
	/*Raster barrier mask (vertex and fragment). Equivalent to [code]BARRIER_MASK_VERTEX | BARRIER_MASK_FRAGMENT[/code].*/
	RenderingDeviceBarrierMaskRaster RenderingDeviceBarrierMask = 9
	/*Barrier mask for all types (vertex, fragment, compute, transfer).*/
	RenderingDeviceBarrierMaskAllBarriers RenderingDeviceBarrierMask = 32767
	/*No barrier for any type.*/
	RenderingDeviceBarrierMaskNoBarrier RenderingDeviceBarrierMask = 32768
)

type RenderingDeviceBlendFactor

type RenderingDeviceBlendFactor = classdb.RenderingDeviceBlendFactor
const (
	/*Constant [code]0.0[/code] blend factor.*/
	RenderingDeviceBlendFactorZero RenderingDeviceBlendFactor = 0
	/*Constant [code]1.0[/code] blend factor.*/
	RenderingDeviceBlendFactorOne RenderingDeviceBlendFactor = 1
	/*Color blend factor is [code]source color[/code]. Alpha blend factor is [code]source alpha[/code].*/
	RenderingDeviceBlendFactorSrcColor RenderingDeviceBlendFactor = 2
	/*Color blend factor is [code]1.0 - source color[/code]. Alpha blend factor is [code]1.0 - source alpha[/code].*/
	RenderingDeviceBlendFactorOneMinusSrcColor RenderingDeviceBlendFactor = 3
	/*Color blend factor is [code]destination color[/code]. Alpha blend factor is [code]destination alpha[/code].*/
	RenderingDeviceBlendFactorDstColor RenderingDeviceBlendFactor = 4
	/*Color blend factor is [code]1.0 - destination color[/code]. Alpha blend factor is [code]1.0 - destination alpha[/code].*/
	RenderingDeviceBlendFactorOneMinusDstColor RenderingDeviceBlendFactor = 5
	/*Color and alpha blend factor is [code]source alpha[/code].*/
	RenderingDeviceBlendFactorSrcAlpha RenderingDeviceBlendFactor = 6
	/*Color and alpha blend factor is [code]1.0 - source alpha[/code].*/
	RenderingDeviceBlendFactorOneMinusSrcAlpha RenderingDeviceBlendFactor = 7
	/*Color and alpha blend factor is [code]destination alpha[/code].*/
	RenderingDeviceBlendFactorDstAlpha RenderingDeviceBlendFactor = 8
	/*Color and alpha blend factor is [code]1.0 - destination alpha[/code].*/
	RenderingDeviceBlendFactorOneMinusDstAlpha RenderingDeviceBlendFactor = 9
	/*Color blend factor is [code]blend constant color[/code]. Alpha blend factor is [code]blend constant alpha[/code] (see [method draw_list_set_blend_constants]).*/
	RenderingDeviceBlendFactorConstantColor RenderingDeviceBlendFactor = 10
	/*Color blend factor is [code]1.0 - blend constant color[/code]. Alpha blend factor is [code]1.0 - blend constant alpha[/code] (see [method draw_list_set_blend_constants]).*/
	RenderingDeviceBlendFactorOneMinusConstantColor RenderingDeviceBlendFactor = 11
	/*Color and alpha blend factor is [code]blend constant alpha[/code] (see [method draw_list_set_blend_constants]).*/
	RenderingDeviceBlendFactorConstantAlpha RenderingDeviceBlendFactor = 12
	/*Color and alpha blend factor is [code]1.0 - blend constant alpha[/code] (see [method draw_list_set_blend_constants]).*/
	RenderingDeviceBlendFactorOneMinusConstantAlpha RenderingDeviceBlendFactor = 13
	/*Color blend factor is [code]min(source alpha, 1.0 - destination alpha)[/code]. Alpha blend factor is [code]1.0[/code].*/
	RenderingDeviceBlendFactorSrcAlphaSaturate RenderingDeviceBlendFactor = 14
	/*Color blend factor is [code]second source color[/code]. Alpha blend factor is [code]second source alpha[/code]. Only relevant for dual-source blending.*/
	RenderingDeviceBlendFactorSrc1Color RenderingDeviceBlendFactor = 15
	/*Color blend factor is [code]1.0 - second source color[/code]. Alpha blend factor is [code]1.0 - second source alpha[/code]. Only relevant for dual-source blending.*/
	RenderingDeviceBlendFactorOneMinusSrc1Color RenderingDeviceBlendFactor = 16
	/*Color and alpha blend factor is [code]second source alpha[/code]. Only relevant for dual-source blending.*/
	RenderingDeviceBlendFactorSrc1Alpha RenderingDeviceBlendFactor = 17
	/*Color and alpha blend factor is [code]1.0 - second source alpha[/code]. Only relevant for dual-source blending.*/
	RenderingDeviceBlendFactorOneMinusSrc1Alpha RenderingDeviceBlendFactor = 18
	/*Represents the size of the [enum BlendFactor] enum.*/
	RenderingDeviceBlendFactorMax RenderingDeviceBlendFactor = 19
)

type RenderingDeviceBlendOperation

type RenderingDeviceBlendOperation = classdb.RenderingDeviceBlendOperation
const (
	/*Additive blending operation ([code]source + destination[/code]).*/
	RenderingDeviceBlendOpAdd RenderingDeviceBlendOperation = 0
	/*Subtractive blending operation ([code]source - destination[/code]).*/
	RenderingDeviceBlendOpSubtract RenderingDeviceBlendOperation = 1
	/*Reverse subtractive blending operation ([code]destination - source[/code]).*/
	RenderingDeviceBlendOpReverseSubtract RenderingDeviceBlendOperation = 2
	/*Minimum blending operation (keep the lowest value of the two).*/
	RenderingDeviceBlendOpMinimum RenderingDeviceBlendOperation = 3
	/*Maximum blending operation (keep the highest value of the two).*/
	RenderingDeviceBlendOpMaximum RenderingDeviceBlendOperation = 4
	/*Represents the size of the [enum BlendOperation] enum.*/
	RenderingDeviceBlendOpMax RenderingDeviceBlendOperation = 5
)

type RenderingDeviceCompareOperator

type RenderingDeviceCompareOperator = classdb.RenderingDeviceCompareOperator
const (
	/*"Never" comparison (opposite of [constant COMPARE_OP_ALWAYS]).*/
	RenderingDeviceCompareOpNever RenderingDeviceCompareOperator = 0
	/*"Less than" comparison.*/
	RenderingDeviceCompareOpLess RenderingDeviceCompareOperator = 1
	/*"Equal" comparison.*/
	RenderingDeviceCompareOpEqual RenderingDeviceCompareOperator = 2
	/*"Less than or equal" comparison.*/
	RenderingDeviceCompareOpLessOrEqual RenderingDeviceCompareOperator = 3
	/*"Greater than" comparison.*/
	RenderingDeviceCompareOpGreater RenderingDeviceCompareOperator = 4
	/*"Not equal" comparison.*/
	RenderingDeviceCompareOpNotEqual RenderingDeviceCompareOperator = 5
	/*"Greater than or equal" comparison.*/
	RenderingDeviceCompareOpGreaterOrEqual RenderingDeviceCompareOperator = 6
	/*"Always" comparison (opposite of [constant COMPARE_OP_NEVER]).*/
	RenderingDeviceCompareOpAlways RenderingDeviceCompareOperator = 7
	/*Represents the size of the [enum CompareOperator] enum.*/
	RenderingDeviceCompareOpMax RenderingDeviceCompareOperator = 8
)

type RenderingDeviceDataFormat

type RenderingDeviceDataFormat = classdb.RenderingDeviceDataFormat
const (
	/*4-bit-per-channel red/green channel data format, packed into 8 bits. Values are in the [code][0.0, 1.0][/code] range.
	  [b]Note:[/b] More information on all data formats can be found on the [url=https://registry.khronos.org/vulkan/specs/1.1/html/vkspec.html#_identification_of_formats]Identification of formats[/url] section of the Vulkan specification, as well as the [url=https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html]VkFormat[/url] enum.*/
	RenderingDeviceDataFormatR4g4UnormPack8 RenderingDeviceDataFormat = 0
	/*4-bit-per-channel red/green/blue/alpha channel data format, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR4g4b4a4UnormPack16 RenderingDeviceDataFormat = 1
	/*4-bit-per-channel blue/green/red/alpha channel data format, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB4g4r4a4UnormPack16 RenderingDeviceDataFormat = 2
	/*Red/green/blue channel data format with 5 bits of red, 6 bits of green and 5 bits of blue, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR5g6b5UnormPack16 RenderingDeviceDataFormat = 3
	/*Blue/green/red channel data format with 5 bits of blue, 6 bits of green and 5 bits of red, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB5g6r5UnormPack16 RenderingDeviceDataFormat = 4
	/*Red/green/blue/alpha channel data format with 5 bits of red, 6 bits of green, 5 bits of blue and 1 bit of alpha, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR5g5b5a1UnormPack16 RenderingDeviceDataFormat = 5
	/*Blue/green/red/alpha channel data format with 5 bits of blue, 6 bits of green, 5 bits of red and 1 bit of alpha, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB5g5r5a1UnormPack16 RenderingDeviceDataFormat = 6
	/*Alpha/red/green/blue channel data format with 1 bit of alpha, 5 bits of red, 6 bits of green and 5 bits of blue, packed into 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA1r5g5b5UnormPack16 RenderingDeviceDataFormat = 7
	/*8-bit-per-channel unsigned floating-point red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8Unorm RenderingDeviceDataFormat = 8
	/*8-bit-per-channel signed floating-point red channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8Snorm RenderingDeviceDataFormat = 9
	/*8-bit-per-channel unsigned floating-point red channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatR8Uscaled RenderingDeviceDataFormat = 10
	/*8-bit-per-channel signed floating-point red channel data format with scaled value (value is converted from integer to float). Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatR8Sscaled RenderingDeviceDataFormat = 11
	/*8-bit-per-channel unsigned integer red channel data format. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatR8Uint RenderingDeviceDataFormat = 12
	/*8-bit-per-channel signed integer red channel data format. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatR8Sint RenderingDeviceDataFormat = 13
	/*8-bit-per-channel unsigned floating-point red channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8Srgb RenderingDeviceDataFormat = 14
	/*8-bit-per-channel unsigned floating-point red/green channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8Unorm RenderingDeviceDataFormat = 15
	/*8-bit-per-channel signed floating-point red/green channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8Snorm RenderingDeviceDataFormat = 16
	/*8-bit-per-channel unsigned floating-point red/green channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatR8g8Uscaled RenderingDeviceDataFormat = 17
	/*8-bit-per-channel signed floating-point red/green channel data format with scaled value (value is converted from integer to float). Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatR8g8Sscaled RenderingDeviceDataFormat = 18
	/*8-bit-per-channel unsigned integer red/green channel data format. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatR8g8Uint RenderingDeviceDataFormat = 19
	/*8-bit-per-channel signed integer red/green channel data format. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatR8g8Sint RenderingDeviceDataFormat = 20
	/*8-bit-per-channel unsigned floating-point red/green channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8Srgb RenderingDeviceDataFormat = 21
	/*8-bit-per-channel unsigned floating-point red/green/blue channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Unorm RenderingDeviceDataFormat = 22
	/*8-bit-per-channel signed floating-point red/green/blue channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Snorm RenderingDeviceDataFormat = 23
	/*8-bit-per-channel unsigned floating-point red/green/blue channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Uscaled RenderingDeviceDataFormat = 24
	/*8-bit-per-channel signed floating-point red/green/blue channel data format with scaled value (value is converted from integer to float). Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Sscaled RenderingDeviceDataFormat = 25
	/*8-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Uint RenderingDeviceDataFormat = 26
	/*8-bit-per-channel signed integer red/green/blue channel data format. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Sint RenderingDeviceDataFormat = 27
	/*8-bit-per-channel unsigned floating-point red/green/blue/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8Srgb RenderingDeviceDataFormat = 28
	/*8-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Unorm RenderingDeviceDataFormat = 29
	/*8-bit-per-channel signed floating-point blue/green/red channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Snorm RenderingDeviceDataFormat = 30
	/*8-bit-per-channel unsigned floating-point blue/green/red channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Uscaled RenderingDeviceDataFormat = 31
	/*8-bit-per-channel signed floating-point blue/green/red channel data format with scaled value (value is converted from integer to float). Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Sscaled RenderingDeviceDataFormat = 32
	/*8-bit-per-channel unsigned integer blue/green/red channel data format. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Uint RenderingDeviceDataFormat = 33
	/*8-bit-per-channel signed integer blue/green/red channel data format. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Sint RenderingDeviceDataFormat = 34
	/*8-bit-per-channel unsigned floating-point blue/green/red data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8Srgb RenderingDeviceDataFormat = 35
	/*8-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Unorm RenderingDeviceDataFormat = 36
	/*8-bit-per-channel signed floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Snorm RenderingDeviceDataFormat = 37
	/*8-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Uscaled RenderingDeviceDataFormat = 38
	/*8-bit-per-channel signed floating-point red/green/blue/alpha channel data format with scaled value (value is converted from integer to float). Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Sscaled RenderingDeviceDataFormat = 39
	/*8-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Uint RenderingDeviceDataFormat = 40
	/*8-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Sint RenderingDeviceDataFormat = 41
	/*8-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR8g8b8a8Srgb RenderingDeviceDataFormat = 42
	/*8-bit-per-channel unsigned floating-point blue/green/red/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Unorm RenderingDeviceDataFormat = 43
	/*8-bit-per-channel signed floating-point blue/green/red/alpha channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Snorm RenderingDeviceDataFormat = 44
	/*8-bit-per-channel unsigned floating-point blue/green/red/alpha channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Uscaled RenderingDeviceDataFormat = 45
	/*8-bit-per-channel signed floating-point blue/green/red/alpha channel data format with scaled value (value is converted from integer to float). Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Sscaled RenderingDeviceDataFormat = 46
	/*8-bit-per-channel unsigned integer blue/green/red/alpha channel data format. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Uint RenderingDeviceDataFormat = 47
	/*8-bit-per-channel signed integer blue/green/red/alpha channel data format. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Sint RenderingDeviceDataFormat = 48
	/*8-bit-per-channel unsigned floating-point blue/green/red/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatB8g8r8a8Srgb RenderingDeviceDataFormat = 49
	/*8-bit-per-channel unsigned floating-point alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8UnormPack32 RenderingDeviceDataFormat = 50
	/*8-bit-per-channel signed floating-point alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8SnormPack32 RenderingDeviceDataFormat = 51
	/*8-bit-per-channel unsigned floating-point alpha/red/green/blue channel data format with scaled value (value is converted from integer to float), packed in 32 bits. Values are in the [code][0.0, 255.0][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8UscaledPack32 RenderingDeviceDataFormat = 52
	/*8-bit-per-channel signed floating-point alpha/red/green/blue channel data format with scaled value (value is converted from integer to float), packed in 32 bits. Values are in the [code][-127.0, 127.0][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8SscaledPack32 RenderingDeviceDataFormat = 53
	/*8-bit-per-channel unsigned integer alpha/red/green/blue channel data format, packed in 32 bits. Values are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8UintPack32 RenderingDeviceDataFormat = 54
	/*8-bit-per-channel signed integer alpha/red/green/blue channel data format, packed in 32 bits. Values are in the [code][-127, 127][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8SintPack32 RenderingDeviceDataFormat = 55
	/*8-bit-per-channel unsigned floating-point alpha/red/green/blue channel data format with normalized value and non-linear sRGB encoding, packed in 32 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA8b8g8r8SrgbPack32 RenderingDeviceDataFormat = 56
	/*Unsigned floating-point alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of red, 10 bits of green and 10 bits of blue. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA2r10g10b10UnormPack32 RenderingDeviceDataFormat = 57
	/*Signed floating-point alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of red, 10 bits of green and 10 bits of blue. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA2r10g10b10SnormPack32 RenderingDeviceDataFormat = 58
	/*Unsigned floating-point alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of red, 10 bits of green and 10 bits of blue. Values are in the [code][0.0, 1023.0][/code] range for red/green/blue and [code][0.0, 3.0][/code] for alpha.*/
	RenderingDeviceDataFormatA2r10g10b10UscaledPack32 RenderingDeviceDataFormat = 59
	/*Signed floating-point alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of red, 10 bits of green and 10 bits of blue. Values are in the [code][-511.0, 511.0][/code] range for red/green/blue and [code][-1.0, 1.0][/code] for alpha.*/
	RenderingDeviceDataFormatA2r10g10b10SscaledPack32 RenderingDeviceDataFormat = 60
	/*Unsigned integer alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of red, 10 bits of green and 10 bits of blue. Values are in the [code][0, 1023][/code] range for red/green/blue and [code][0, 3][/code] for alpha.*/
	RenderingDeviceDataFormatA2r10g10b10UintPack32 RenderingDeviceDataFormat = 61
	/*Signed integer alpha/red/green/blue channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of red, 10 bits of green and 10 bits of blue. Values are in the [code][-511, 511][/code] range for red/green/blue and [code][-1, 1][/code] for alpha.*/
	RenderingDeviceDataFormatA2r10g10b10SintPack32 RenderingDeviceDataFormat = 62
	/*Unsigned floating-point alpha/blue/green/red channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of blue, 10 bits of green and 10 bits of red. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA2b10g10r10UnormPack32 RenderingDeviceDataFormat = 63
	/*Signed floating-point alpha/blue/green/red channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of blue, 10 bits of green and 10 bits of red. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatA2b10g10r10SnormPack32 RenderingDeviceDataFormat = 64
	/*Unsigned floating-point alpha/blue/green/red channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of blue, 10 bits of green and 10 bits of red. Values are in the [code][0.0, 1023.0][/code] range for blue/green/red and [code][0.0, 3.0][/code] for alpha.*/
	RenderingDeviceDataFormatA2b10g10r10UscaledPack32 RenderingDeviceDataFormat = 65
	/*Signed floating-point alpha/blue/green/red channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of blue, 10 bits of green and 10 bits of red. Values are in the [code][-511.0, 511.0][/code] range for blue/green/red and [code][-1.0, 1.0][/code] for alpha.*/
	RenderingDeviceDataFormatA2b10g10r10SscaledPack32 RenderingDeviceDataFormat = 66
	/*Unsigned integer alpha/blue/green/red channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of blue, 10 bits of green and 10 bits of red. Values are in the [code][0, 1023][/code] range for blue/green/red and [code][0, 3][/code] for alpha.*/
	RenderingDeviceDataFormatA2b10g10r10UintPack32 RenderingDeviceDataFormat = 67
	/*Signed integer alpha/blue/green/red channel data format with normalized value, packed in 32 bits. Format contains 2 bits of alpha, 10 bits of blue, 10 bits of green and 10 bits of red. Values are in the [code][-511, 511][/code] range for blue/green/red and [code][-1, 1][/code] for alpha.*/
	RenderingDeviceDataFormatA2b10g10r10SintPack32 RenderingDeviceDataFormat = 68
	/*16-bit-per-channel unsigned floating-point red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16Unorm RenderingDeviceDataFormat = 69
	/*16-bit-per-channel signed floating-point red channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16Snorm RenderingDeviceDataFormat = 70
	/*16-bit-per-channel unsigned floating-point red channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 65535.0][/code] range.*/
	RenderingDeviceDataFormatR16Uscaled RenderingDeviceDataFormat = 71
	/*16-bit-per-channel signed floating-point red channel data format with scaled value (value is converted from integer to float). Values are in the [code][-32767.0, 32767.0][/code] range.*/
	RenderingDeviceDataFormatR16Sscaled RenderingDeviceDataFormat = 72
	/*16-bit-per-channel unsigned integer red channel data format. Values are in the [code][0.0, 65535][/code] range.*/
	RenderingDeviceDataFormatR16Uint RenderingDeviceDataFormat = 73
	/*16-bit-per-channel signed integer red channel data format. Values are in the [code][-32767, 32767][/code] range.*/
	RenderingDeviceDataFormatR16Sint RenderingDeviceDataFormat = 74
	/*16-bit-per-channel signed floating-point red channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR16Sfloat RenderingDeviceDataFormat = 75
	/*16-bit-per-channel unsigned floating-point red/green channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16g16Unorm RenderingDeviceDataFormat = 76
	/*16-bit-per-channel signed floating-point red/green channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16g16Snorm RenderingDeviceDataFormat = 77
	/*16-bit-per-channel unsigned floating-point red/green channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 65535.0][/code] range.*/
	RenderingDeviceDataFormatR16g16Uscaled RenderingDeviceDataFormat = 78
	/*16-bit-per-channel signed floating-point red/green channel data format with scaled value (value is converted from integer to float). Values are in the [code][-32767.0, 32767.0][/code] range.*/
	RenderingDeviceDataFormatR16g16Sscaled RenderingDeviceDataFormat = 79
	/*16-bit-per-channel unsigned integer red/green channel data format. Values are in the [code][0.0, 65535][/code] range.*/
	RenderingDeviceDataFormatR16g16Uint RenderingDeviceDataFormat = 80
	/*16-bit-per-channel signed integer red/green channel data format. Values are in the [code][-32767, 32767][/code] range.*/
	RenderingDeviceDataFormatR16g16Sint RenderingDeviceDataFormat = 81
	/*16-bit-per-channel signed floating-point red/green channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR16g16Sfloat RenderingDeviceDataFormat = 82
	/*16-bit-per-channel unsigned floating-point red/green/blue channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16Unorm RenderingDeviceDataFormat = 83
	/*16-bit-per-channel signed floating-point red/green/blue channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16Snorm RenderingDeviceDataFormat = 84
	/*16-bit-per-channel unsigned floating-point red/green/blue channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 65535.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16Uscaled RenderingDeviceDataFormat = 85
	/*16-bit-per-channel signed floating-point red/green/blue channel data format with scaled value (value is converted from integer to float). Values are in the [code][-32767.0, 32767.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16Sscaled RenderingDeviceDataFormat = 86
	/*16-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [code][0.0, 65535][/code] range.*/
	RenderingDeviceDataFormatR16g16b16Uint RenderingDeviceDataFormat = 87
	/*16-bit-per-channel signed integer red/green/blue channel data format. Values are in the [code][-32767, 32767][/code] range.*/
	RenderingDeviceDataFormatR16g16b16Sint RenderingDeviceDataFormat = 88
	/*16-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR16g16b16Sfloat RenderingDeviceDataFormat = 89
	/*16-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16a16Unorm RenderingDeviceDataFormat = 90
	/*16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16a16Snorm RenderingDeviceDataFormat = 91
	/*16-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with scaled value (value is converted from integer to float). Values are in the [code][0.0, 65535.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16a16Uscaled RenderingDeviceDataFormat = 92
	/*16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with scaled value (value is converted from integer to float). Values are in the [code][-32767.0, 32767.0][/code] range.*/
	RenderingDeviceDataFormatR16g16b16a16Sscaled RenderingDeviceDataFormat = 93
	/*16-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [code][0.0, 65535][/code] range.*/
	RenderingDeviceDataFormatR16g16b16a16Uint RenderingDeviceDataFormat = 94
	/*16-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [code][-32767, 32767][/code] range.*/
	RenderingDeviceDataFormatR16g16b16a16Sint RenderingDeviceDataFormat = 95
	/*16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR16g16b16a16Sfloat RenderingDeviceDataFormat = 96
	/*32-bit-per-channel unsigned integer red channel data format. Values are in the [code][0, 2^32 - 1][/code] range.*/
	RenderingDeviceDataFormatR32Uint RenderingDeviceDataFormat = 97
	/*32-bit-per-channel signed integer red channel data format. Values are in the [code][2^31 + 1, 2^31 - 1][/code] range.*/
	RenderingDeviceDataFormatR32Sint RenderingDeviceDataFormat = 98
	/*32-bit-per-channel signed floating-point red channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR32Sfloat RenderingDeviceDataFormat = 99
	/*32-bit-per-channel unsigned integer red/green channel data format. Values are in the [code][0, 2^32 - 1][/code] range.*/
	RenderingDeviceDataFormatR32g32Uint RenderingDeviceDataFormat = 100
	/*32-bit-per-channel signed integer red/green channel data format. Values are in the [code][2^31 + 1, 2^31 - 1][/code] range.*/
	RenderingDeviceDataFormatR32g32Sint RenderingDeviceDataFormat = 101
	/*32-bit-per-channel signed floating-point red/green channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR32g32Sfloat RenderingDeviceDataFormat = 102
	/*32-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [code][0, 2^32 - 1][/code] range.*/
	RenderingDeviceDataFormatR32g32b32Uint RenderingDeviceDataFormat = 103
	/*32-bit-per-channel signed integer red/green/blue channel data format. Values are in the [code][2^31 + 1, 2^31 - 1][/code] range.*/
	RenderingDeviceDataFormatR32g32b32Sint RenderingDeviceDataFormat = 104
	/*32-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR32g32b32Sfloat RenderingDeviceDataFormat = 105
	/*32-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [code][0, 2^32 - 1][/code] range.*/
	RenderingDeviceDataFormatR32g32b32a32Uint RenderingDeviceDataFormat = 106
	/*32-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [code][2^31 + 1, 2^31 - 1][/code] range.*/
	RenderingDeviceDataFormatR32g32b32a32Sint RenderingDeviceDataFormat = 107
	/*32-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR32g32b32a32Sfloat RenderingDeviceDataFormat = 108
	/*64-bit-per-channel unsigned integer red channel data format. Values are in the [code][0, 2^64 - 1][/code] range.*/
	RenderingDeviceDataFormatR64Uint RenderingDeviceDataFormat = 109
	/*64-bit-per-channel signed integer red channel data format. Values are in the [code][2^63 + 1, 2^63 - 1][/code] range.*/
	RenderingDeviceDataFormatR64Sint RenderingDeviceDataFormat = 110
	/*64-bit-per-channel signed floating-point red channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR64Sfloat RenderingDeviceDataFormat = 111
	/*64-bit-per-channel unsigned integer red/green channel data format. Values are in the [code][0, 2^64 - 1][/code] range.*/
	RenderingDeviceDataFormatR64g64Uint RenderingDeviceDataFormat = 112
	/*64-bit-per-channel signed integer red/green channel data format. Values are in the [code][2^63 + 1, 2^63 - 1][/code] range.*/
	RenderingDeviceDataFormatR64g64Sint RenderingDeviceDataFormat = 113
	/*64-bit-per-channel signed floating-point red/green channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR64g64Sfloat RenderingDeviceDataFormat = 114
	/*64-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [code][0, 2^64 - 1][/code] range.*/
	RenderingDeviceDataFormatR64g64b64Uint RenderingDeviceDataFormat = 115
	/*64-bit-per-channel signed integer red/green/blue channel data format. Values are in the [code][2^63 + 1, 2^63 - 1][/code] range.*/
	RenderingDeviceDataFormatR64g64b64Sint RenderingDeviceDataFormat = 116
	/*64-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR64g64b64Sfloat RenderingDeviceDataFormat = 117
	/*64-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [code][0, 2^64 - 1][/code] range.*/
	RenderingDeviceDataFormatR64g64b64a64Uint RenderingDeviceDataFormat = 118
	/*64-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [code][2^63 + 1, 2^63 - 1][/code] range.*/
	RenderingDeviceDataFormatR64g64b64a64Sint RenderingDeviceDataFormat = 119
	/*64-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is.*/
	RenderingDeviceDataFormatR64g64b64a64Sfloat RenderingDeviceDataFormat = 120
	/*Unsigned floating-point blue/green/red data format with the value stored as-is, packed in 32 bits. The format's precision is 10 bits of blue channel, 11 bits of green channel and 11 bits of red channel.*/
	RenderingDeviceDataFormatB10g11r11UfloatPack32 RenderingDeviceDataFormat = 121
	/*Unsigned floating-point exposure/blue/green/red data format with the value stored as-is, packed in 32 bits. The format's precision is 5 bits of exposure, 9 bits of blue channel, 9 bits of green channel and 9 bits of red channel.*/
	RenderingDeviceDataFormatE5b9g9r9UfloatPack32 RenderingDeviceDataFormat = 122
	/*16-bit unsigned floating-point depth data format with normalized value. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatD16Unorm RenderingDeviceDataFormat = 123
	/*24-bit unsigned floating-point depth data format with normalized value, plus 8 unused bits, packed in 32 bits. Values for depth are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatX8D24UnormPack32 RenderingDeviceDataFormat = 124
	/*32-bit signed floating-point depth data format with the value stored as-is.*/
	RenderingDeviceDataFormatD32Sfloat RenderingDeviceDataFormat = 125
	/*8-bit unsigned integer stencil data format.*/
	RenderingDeviceDataFormatS8Uint RenderingDeviceDataFormat = 126
	/*16-bit unsigned floating-point depth data format with normalized value, plus 8 bits of stencil in unsigned integer format. Values for depth are in the [code][0.0, 1.0][/code] range. Values for stencil are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatD16UnormS8Uint RenderingDeviceDataFormat = 127
	/*24-bit unsigned floating-point depth data format with normalized value, plus 8 bits of stencil in unsigned integer format. Values for depth are in the [code][0.0, 1.0][/code] range. Values for stencil are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatD24UnormS8Uint RenderingDeviceDataFormat = 128
	/*32-bit signed floating-point depth data format with the value stored as-is, plus 8 bits of stencil in unsigned integer format. Values for stencil are in the [code][0, 255][/code] range.*/
	RenderingDeviceDataFormatD32SfloatS8Uint RenderingDeviceDataFormat = 129
	/*VRAM-compressed unsigned red/green/blue channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel and 5 bits of blue channel. Using BC1 texture compression (also known as S3TC DXT1).*/
	RenderingDeviceDataFormatBc1RgbUnormBlock RenderingDeviceDataFormat = 130
	/*VRAM-compressed unsigned red/green/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel and 5 bits of blue channel. Using BC1 texture compression (also known as S3TC DXT1).*/
	RenderingDeviceDataFormatBc1RgbSrgbBlock RenderingDeviceDataFormat = 131
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel, 5 bits of blue channel and 1 bit of alpha channel. Using BC1 texture compression (also known as S3TC DXT1).*/
	RenderingDeviceDataFormatBc1RgbaUnormBlock RenderingDeviceDataFormat = 132
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel, 5 bits of blue channel and 1 bit of alpha channel. Using BC1 texture compression (also known as S3TC DXT1).*/
	RenderingDeviceDataFormatBc1RgbaSrgbBlock RenderingDeviceDataFormat = 133
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel, 5 bits of blue channel and 4 bits of alpha channel. Using BC2 texture compression (also known as S3TC DXT3).*/
	RenderingDeviceDataFormatBc2UnormBlock RenderingDeviceDataFormat = 134
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel, 5 bits of blue channel and 4 bits of alpha channel. Using BC2 texture compression (also known as S3TC DXT3).*/
	RenderingDeviceDataFormatBc2SrgbBlock RenderingDeviceDataFormat = 135
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel, 5 bits of blue channel and 8 bits of alpha channel. Using BC3 texture compression (also known as S3TC DXT5).*/
	RenderingDeviceDataFormatBc3UnormBlock RenderingDeviceDataFormat = 136
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 5 bits of red channel, 6 bits of green channel, 5 bits of blue channel and 8 bits of alpha channel. Using BC3 texture compression (also known as S3TC DXT5).*/
	RenderingDeviceDataFormatBc3SrgbBlock RenderingDeviceDataFormat = 137
	/*VRAM-compressed unsigned red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 8 bits of red channel. Using BC4 texture compression.*/
	RenderingDeviceDataFormatBc4UnormBlock RenderingDeviceDataFormat = 138
	/*VRAM-compressed signed red channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range. The format's precision is 8 bits of red channel. Using BC4 texture compression.*/
	RenderingDeviceDataFormatBc4SnormBlock RenderingDeviceDataFormat = 139
	/*VRAM-compressed unsigned red/green channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is 8 bits of red channel and 8 bits of green channel. Using BC5 texture compression (also known as S3TC RGTC).*/
	RenderingDeviceDataFormatBc5UnormBlock RenderingDeviceDataFormat = 140
	/*VRAM-compressed signed red/green channel data format with normalized value. Values are in the [code][-1.0, 1.0][/code] range. The format's precision is 8 bits of red channel and 8 bits of green channel. Using BC5 texture compression (also known as S3TC RGTC).*/
	RenderingDeviceDataFormatBc5SnormBlock RenderingDeviceDataFormat = 141
	/*VRAM-compressed unsigned red/green/blue channel data format with the floating-point value stored as-is. The format's precision is 8 bits of red channel and 8 bits of green channel. Using BC6H texture compression (also known as BPTC HDR).*/
	RenderingDeviceDataFormatBc6hUfloatBlock RenderingDeviceDataFormat = 142
	/*VRAM-compressed signed red/green/blue channel data format with the floating-point value stored as-is. The format's precision is between 4 and 7 bits for the red/green/blue channels and between 0 and 8 bits for the alpha channel. Using BC7 texture compression (also known as BPTC HDR).*/
	RenderingDeviceDataFormatBc6hSfloatBlock RenderingDeviceDataFormat = 143
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. The format's precision is between 4 and 7 bits for the red/green/blue channels and between 0 and 8 bits for the alpha channel. Also known as BPTC LDR.*/
	RenderingDeviceDataFormatBc7UnormBlock RenderingDeviceDataFormat = 144
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. The format's precision is between 4 and 7 bits for the red/green/blue channels and between 0 and 8 bits for the alpha channel. Also known as BPTC LDR.*/
	RenderingDeviceDataFormatBc7SrgbBlock RenderingDeviceDataFormat = 145
	/*VRAM-compressed unsigned red/green/blue channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEtc2R8g8b8UnormBlock RenderingDeviceDataFormat = 146
	/*VRAM-compressed unsigned red/green/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEtc2R8g8b8SrgbBlock RenderingDeviceDataFormat = 147
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Red/green/blue use 8 bit of precision each, with alpha using 1 bit of precision. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEtc2R8g8b8a1UnormBlock RenderingDeviceDataFormat = 148
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. Red/green/blue use 8 bit of precision each, with alpha using 1 bit of precision. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEtc2R8g8b8a1SrgbBlock RenderingDeviceDataFormat = 149
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Red/green/blue use 8 bits of precision each, with alpha using 8 bits of precision. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEtc2R8g8b8a8UnormBlock RenderingDeviceDataFormat = 150
	/*VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [code][0.0, 1.0][/code] range. Red/green/blue use 8 bits of precision each, with alpha using 8 bits of precision. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEtc2R8g8b8a8SrgbBlock RenderingDeviceDataFormat = 151
	/*11-bit VRAM-compressed unsigned red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEacR11UnormBlock RenderingDeviceDataFormat = 152
	/*11-bit VRAM-compressed signed red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEacR11SnormBlock RenderingDeviceDataFormat = 153
	/*11-bit VRAM-compressed unsigned red/green channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEacR11g11UnormBlock RenderingDeviceDataFormat = 154
	/*11-bit VRAM-compressed signed red/green channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Using ETC2 texture compression.*/
	RenderingDeviceDataFormatEacR11g11SnormBlock RenderingDeviceDataFormat = 155
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 4×4 blocks (highest quality). Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc4x4UnormBlock RenderingDeviceDataFormat = 156
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 4×4 blocks (highest quality). Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc4x4SrgbBlock RenderingDeviceDataFormat = 157
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 5×4 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc5x4UnormBlock RenderingDeviceDataFormat = 158
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 5×4 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc5x4SrgbBlock RenderingDeviceDataFormat = 159
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 5×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc5x5UnormBlock RenderingDeviceDataFormat = 160
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 5×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc5x5SrgbBlock RenderingDeviceDataFormat = 161
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 6×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc6x5UnormBlock RenderingDeviceDataFormat = 162
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 6×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc6x5SrgbBlock RenderingDeviceDataFormat = 163
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 6×6 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc6x6UnormBlock RenderingDeviceDataFormat = 164
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 6×6 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc6x6SrgbBlock RenderingDeviceDataFormat = 165
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc8x5UnormBlock RenderingDeviceDataFormat = 166
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc8x5SrgbBlock RenderingDeviceDataFormat = 167
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×6 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc8x6UnormBlock RenderingDeviceDataFormat = 168
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×6 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc8x6SrgbBlock RenderingDeviceDataFormat = 169
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×8 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc8x8UnormBlock RenderingDeviceDataFormat = 170
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×8 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc8x8SrgbBlock RenderingDeviceDataFormat = 171
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x5UnormBlock RenderingDeviceDataFormat = 172
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×5 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x5SrgbBlock RenderingDeviceDataFormat = 173
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×6 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x6UnormBlock RenderingDeviceDataFormat = 174
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×6 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x6SrgbBlock RenderingDeviceDataFormat = 175
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×8 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x8UnormBlock RenderingDeviceDataFormat = 176
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×8 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x8SrgbBlock RenderingDeviceDataFormat = 177
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×10 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x10UnormBlock RenderingDeviceDataFormat = 178
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×10 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc10x10SrgbBlock RenderingDeviceDataFormat = 179
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 12×10 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc12x10UnormBlock RenderingDeviceDataFormat = 180
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 12×10 blocks. Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc12x10SrgbBlock RenderingDeviceDataFormat = 181
	/*VRAM-compressed unsigned floating-point data format with normalized value, packed in 12 blocks (lowest quality). Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc12x12UnormBlock RenderingDeviceDataFormat = 182
	/*VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 12 blocks (lowest quality). Values are in the [code][0.0, 1.0][/code] range. Using ASTC compression.*/
	RenderingDeviceDataFormatAstc12x12SrgbBlock RenderingDeviceDataFormat = 183
	/*8-bit-per-channel unsigned floating-point green/blue/red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG8b8g8r8422Unorm RenderingDeviceDataFormat = 184
	/*8-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatB8g8r8g8422Unorm RenderingDeviceDataFormat = 185
	/*8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG8B8R83plane420Unorm RenderingDeviceDataFormat = 186
	/*8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 2 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG8B8r82plane420Unorm RenderingDeviceDataFormat = 187
	/*8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 2 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG8B8R83plane422Unorm RenderingDeviceDataFormat = 188
	/*8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 2 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG8B8r82plane422Unorm RenderingDeviceDataFormat = 189
	/*8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 3 separate planes. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatG8B8R83plane444Unorm RenderingDeviceDataFormat = 190
	/*10-bit-per-channel unsigned floating-point red channel data with normalized value, plus 6 unused bits, packed in 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR10x6UnormPack16 RenderingDeviceDataFormat = 191
	/*10-bit-per-channel unsigned floating-point red/green channel data with normalized value, plus 6 unused bits after each channel, packed in 2×16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR10x6g10x6Unorm2pack16 RenderingDeviceDataFormat = 192
	/*10-bit-per-channel unsigned floating-point red/green/blue/alpha channel data with normalized value, plus 6 unused bits after each channel, packed in 4×16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR10x6g10x6b10x6a10x6Unorm4pack16 RenderingDeviceDataFormat = 193
	/*10-bit-per-channel unsigned floating-point green/blue/green/red channel data with normalized value, plus 6 unused bits after each channel, packed in 4×16 bits. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel). The green channel is listed twice, but contains different values to allow it to be represented at full resolution.*/
	RenderingDeviceDataFormatG10x6b10x6g10x6r10x6422Unorm4pack16 RenderingDeviceDataFormat = 194
	/*10-bit-per-channel unsigned floating-point blue/green/red/green channel data with normalized value, plus 6 unused bits after each channel, packed in 4×16 bits. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel). The green channel is listed twice, but contains different values to allow it to be represented at full resolution.*/
	RenderingDeviceDataFormatB10x6g10x6r10x6g10x6422Unorm4pack16 RenderingDeviceDataFormat = 195
	/*10-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 2 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG10x6B10x6R10x63plane420Unorm3pack16 RenderingDeviceDataFormat = 196
	/*10-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 2 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG10x6B10x6r10x62plane420Unorm3pack16 RenderingDeviceDataFormat = 197
	/*10-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG10x6B10x6R10x63plane422Unorm3pack16 RenderingDeviceDataFormat = 198
	/*10-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 3 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG10x6B10x6r10x62plane422Unorm3pack16 RenderingDeviceDataFormat = 199
	/*10-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatG10x6B10x6R10x63plane444Unorm3pack16 RenderingDeviceDataFormat = 200
	/*12-bit-per-channel unsigned floating-point red channel data with normalized value, plus 6 unused bits, packed in 16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR12x4UnormPack16 RenderingDeviceDataFormat = 201
	/*12-bit-per-channel unsigned floating-point red/green channel data with normalized value, plus 6 unused bits after each channel, packed in 2×16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR12x4g12x4Unorm2pack16 RenderingDeviceDataFormat = 202
	/*12-bit-per-channel unsigned floating-point red/green/blue/alpha channel data with normalized value, plus 6 unused bits after each channel, packed in 4×16 bits. Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatR12x4g12x4b12x4a12x4Unorm4pack16 RenderingDeviceDataFormat = 203
	/*12-bit-per-channel unsigned floating-point green/blue/green/red channel data with normalized value, plus 6 unused bits after each channel, packed in 4×16 bits. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel). The green channel is listed twice, but contains different values to allow it to be represented at full resolution.*/
	RenderingDeviceDataFormatG12x4b12x4g12x4r12x4422Unorm4pack16 RenderingDeviceDataFormat = 204
	/*12-bit-per-channel unsigned floating-point blue/green/red/green channel data with normalized value, plus 6 unused bits after each channel, packed in 4×16 bits. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel). The green channel is listed twice, but contains different values to allow it to be represented at full resolution.*/
	RenderingDeviceDataFormatB12x4g12x4r12x4g12x4422Unorm4pack16 RenderingDeviceDataFormat = 205
	/*12-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 2 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG12x4B12x4R12x43plane420Unorm3pack16 RenderingDeviceDataFormat = 206
	/*12-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 2 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG12x4B12x4r12x42plane420Unorm3pack16 RenderingDeviceDataFormat = 207
	/*12-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG12x4B12x4R12x43plane422Unorm3pack16 RenderingDeviceDataFormat = 208
	/*12-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 3 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG12x4B12x4r12x42plane422Unorm3pack16 RenderingDeviceDataFormat = 209
	/*12-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Packed in 3×16 bits and stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatG12x4B12x4R12x43plane444Unorm3pack16 RenderingDeviceDataFormat = 210
	/*16-bit-per-channel unsigned floating-point green/blue/red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG16b16g16r16422Unorm RenderingDeviceDataFormat = 211
	/*16-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatB16g16r16g16422Unorm RenderingDeviceDataFormat = 212
	/*16-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Stored across 2 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG16B16R163plane420Unorm RenderingDeviceDataFormat = 213
	/*16-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Stored across 2 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal and vertical resolution (i.e. 2×2 adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG16B16r162plane420Unorm RenderingDeviceDataFormat = 214
	/*16-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG16B16R163plane422Unorm RenderingDeviceDataFormat = 215
	/*16-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Stored across 3 separate planes (green + blue/red). Values are in the [code][0.0, 1.0][/code] range. Blue and red channel data is stored at halved horizontal resolution (i.e. 2 horizontally adjacent pixels will share the same value for the blue/red channel).*/
	RenderingDeviceDataFormatG16B16r162plane422Unorm RenderingDeviceDataFormat = 216
	/*16-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, plus 6 unused bits after each channel. Stored across 3 separate planes (green + blue + red). Values are in the [code][0.0, 1.0][/code] range.*/
	RenderingDeviceDataFormatG16B16R163plane444Unorm RenderingDeviceDataFormat = 217
	/*Represents the size of the [enum DataFormat] enum.*/
	RenderingDeviceDataFormatMax RenderingDeviceDataFormat = 218
)

type RenderingDeviceDeviceType

type RenderingDeviceDeviceType = classdb.RenderingDeviceDeviceType
const (
	/*Rendering device type does not match any of the other enum values or is unknown.*/
	RenderingDeviceDeviceTypeOther RenderingDeviceDeviceType = 0
	/*Rendering device is an integrated GPU, which is typically [i](but not always)[/i] slower than dedicated GPUs ([constant DEVICE_TYPE_DISCRETE_GPU]). On Android and iOS, the rendering device type is always considered to be [constant DEVICE_TYPE_INTEGRATED_GPU].*/
	RenderingDeviceDeviceTypeIntegratedGpu RenderingDeviceDeviceType = 1
	/*Rendering device is a dedicated GPU, which is typically [i](but not always)[/i] faster than integrated GPUs ([constant DEVICE_TYPE_INTEGRATED_GPU]).*/
	RenderingDeviceDeviceTypeDiscreteGpu RenderingDeviceDeviceType = 2
	/*Rendering device is an emulated GPU in a virtual environment. This is typically much slower than the host GPU, which means the expected performance level on a dedicated GPU will be roughly equivalent to [constant DEVICE_TYPE_INTEGRATED_GPU]. Virtual machine GPU passthrough (such as VFIO) will not report the device type as [constant DEVICE_TYPE_VIRTUAL_GPU]. Instead, the host GPU's device type will be reported as if the GPU was not emulated.*/
	RenderingDeviceDeviceTypeVirtualGpu RenderingDeviceDeviceType = 3
	/*Rendering device is provided by software emulation (such as Lavapipe or [url=https://github.com/google/swiftshader]SwiftShader[/url]). This is the slowest kind of rendering device available; it's typically much slower than [constant DEVICE_TYPE_INTEGRATED_GPU].*/
	RenderingDeviceDeviceTypeCpu RenderingDeviceDeviceType = 4
	/*Represents the size of the [enum DeviceType] enum.*/
	RenderingDeviceDeviceTypeMax RenderingDeviceDeviceType = 5
)

type RenderingDeviceDriverResource

type RenderingDeviceDriverResource = classdb.RenderingDeviceDriverResource
const (
	/*Vulkan device driver resource. This is a "global" resource and ignores the RID passed in*/
	RenderingDeviceDriverResourceVulkanDevice RenderingDeviceDriverResource = 0
	/*Physical device (graphics card) driver resource.*/
	RenderingDeviceDriverResourceVulkanPhysicalDevice RenderingDeviceDriverResource = 1
	/*Vulkan instance driver resource.*/
	RenderingDeviceDriverResourceVulkanInstance RenderingDeviceDriverResource = 2
	/*Vulkan queue driver resource.*/
	RenderingDeviceDriverResourceVulkanQueue RenderingDeviceDriverResource = 3
	/*Vulkan queue family index driver resource.*/
	RenderingDeviceDriverResourceVulkanQueueFamilyIndex RenderingDeviceDriverResource = 4
	/*Vulkan image driver resource.*/
	RenderingDeviceDriverResourceVulkanImage RenderingDeviceDriverResource = 5
	/*Vulkan image view driver resource.*/
	RenderingDeviceDriverResourceVulkanImageView RenderingDeviceDriverResource = 6
	/*Vulkan image native texture format driver resource.*/
	RenderingDeviceDriverResourceVulkanImageNativeTextureFormat RenderingDeviceDriverResource = 7
	/*Vulkan sampler driver resource.*/
	RenderingDeviceDriverResourceVulkanSampler RenderingDeviceDriverResource = 8
	/*Vulkan [url=https://vkguide.dev/docs/chapter-4/descriptors/]descriptor set[/url] driver resource.*/
	RenderingDeviceDriverResourceVulkanDescriptorSet RenderingDeviceDriverResource = 9
	/*Vulkan buffer driver resource.*/
	RenderingDeviceDriverResourceVulkanBuffer RenderingDeviceDriverResource = 10
	/*Vulkan compute pipeline driver resource.*/
	RenderingDeviceDriverResourceVulkanComputePipeline RenderingDeviceDriverResource = 11
	/*Vulkan render pipeline driver resource.*/
	RenderingDeviceDriverResourceVulkanRenderPipeline RenderingDeviceDriverResource = 12
)

type RenderingDeviceFinalAction

type RenderingDeviceFinalAction = classdb.RenderingDeviceFinalAction
const (
	/*Store the texture for reading and make it read-only if it has the [constant TEXTURE_USAGE_SAMPLING_BIT] bit (only applies to color, depth and stencil attachments).*/
	RenderingDeviceFinalActionRead RenderingDeviceFinalAction = 0
	/*Discard the texture data and make it read-only if it has the [constant TEXTURE_USAGE_SAMPLING_BIT] bit (only applies to color, depth and stencil attachments).*/
	RenderingDeviceFinalActionDiscard RenderingDeviceFinalAction = 1
	/*Store the texture and continue for further processing. Similar to [constant FINAL_ACTION_READ], but does not make the texture read-only if it has the [constant TEXTURE_USAGE_SAMPLING_BIT] bit.*/
	RenderingDeviceFinalActionContinue RenderingDeviceFinalAction = 2
	/*Represents the size of the [enum FinalAction] enum.*/
	RenderingDeviceFinalActionMax RenderingDeviceFinalAction = 3
)

type RenderingDeviceIndexBufferFormat

type RenderingDeviceIndexBufferFormat = classdb.RenderingDeviceIndexBufferFormat
const (
	/*Index buffer in 16-bit unsigned integer format. This limits the maximum index that can be specified to [code]65535[/code].*/
	RenderingDeviceIndexBufferFormatUint16 RenderingDeviceIndexBufferFormat = 0
	/*Index buffer in 32-bit unsigned integer format. This limits the maximum index that can be specified to [code]4294967295[/code].*/
	RenderingDeviceIndexBufferFormatUint32 RenderingDeviceIndexBufferFormat = 1
)

type RenderingDeviceInitialAction

type RenderingDeviceInitialAction = classdb.RenderingDeviceInitialAction
const (
	/*Start rendering and clear the whole framebuffer.*/
	RenderingDeviceInitialActionClear RenderingDeviceInitialAction = 0
	/*Start rendering and clear the framebuffer in the specified region.*/
	RenderingDeviceInitialActionClearRegion RenderingDeviceInitialAction = 1
	/*Continue rendering and clear the framebuffer in the specified region. Framebuffer must have been left in [constant FINAL_ACTION_CONTINUE] state as the final action previously.*/
	RenderingDeviceInitialActionClearRegionContinue RenderingDeviceInitialAction = 2
	/*Start rendering, but keep attached color texture contents. If the framebuffer was previously used to read in a shader, this will automatically insert a layout transition.*/
	RenderingDeviceInitialActionKeep RenderingDeviceInitialAction = 3
	/*Start rendering, ignore what is there; write above it. In general, this is the fastest option when you will be writing every single pixel and you don't need a clear color.*/
	RenderingDeviceInitialActionDrop RenderingDeviceInitialAction = 4
	/*Continue rendering. Framebuffer must have been left in [constant FINAL_ACTION_CONTINUE] state as the final action previously.*/
	RenderingDeviceInitialActionContinue RenderingDeviceInitialAction = 5
	/*Represents the size of the [enum InitialAction] enum.*/
	RenderingDeviceInitialActionMax RenderingDeviceInitialAction = 6
)

type RenderingDeviceLimit

type RenderingDeviceLimit = classdb.RenderingDeviceLimit
const (
	/*Maximum number of uniform sets that can be bound at a given time.*/
	RenderingDeviceLimitMaxBoundUniformSets RenderingDeviceLimit = 0
	/*Maximum number of color framebuffer attachments that can be used at a given time.*/
	RenderingDeviceLimitMaxFramebufferColorAttachments RenderingDeviceLimit = 1
	/*Maximum number of textures that can be used per uniform set.*/
	RenderingDeviceLimitMaxTexturesPerUniformSet RenderingDeviceLimit = 2
	/*Maximum number of samplers that can be used per uniform set.*/
	RenderingDeviceLimitMaxSamplersPerUniformSet RenderingDeviceLimit = 3
	/*Maximum number of [url=https://vkguide.dev/docs/chapter-4/storage_buffers/]storage buffers[/url] per uniform set.*/
	RenderingDeviceLimitMaxStorageBuffersPerUniformSet RenderingDeviceLimit = 4
	/*Maximum number of storage images per uniform set.*/
	RenderingDeviceLimitMaxStorageImagesPerUniformSet RenderingDeviceLimit = 5
	/*Maximum number of uniform buffers per uniform set.*/
	RenderingDeviceLimitMaxUniformBuffersPerUniformSet RenderingDeviceLimit = 6
	/*Maximum index for an indexed draw command.*/
	RenderingDeviceLimitMaxDrawIndexedIndex RenderingDeviceLimit = 7
	/*Maximum height of a framebuffer (in pixels).*/
	RenderingDeviceLimitMaxFramebufferHeight RenderingDeviceLimit = 8
	/*Maximum width of a framebuffer (in pixels).*/
	RenderingDeviceLimitMaxFramebufferWidth RenderingDeviceLimit = 9
	/*Maximum number of texture array layers.*/
	RenderingDeviceLimitMaxTextureArrayLayers RenderingDeviceLimit = 10
	/*Maximum supported 1-dimensional texture size (in pixels on a single axis).*/
	RenderingDeviceLimitMaxTextureSize1d RenderingDeviceLimit = 11
	/*Maximum supported 2-dimensional texture size (in pixels on a single axis).*/
	RenderingDeviceLimitMaxTextureSize2d RenderingDeviceLimit = 12
	/*Maximum supported 3-dimensional texture size (in pixels on a single axis).*/
	RenderingDeviceLimitMaxTextureSize3d RenderingDeviceLimit = 13
	/*Maximum supported cubemap texture size (in pixels on a single axis of a single face).*/
	RenderingDeviceLimitMaxTextureSizeCube RenderingDeviceLimit = 14
	/*Maximum number of textures per shader stage.*/
	RenderingDeviceLimitMaxTexturesPerShaderStage RenderingDeviceLimit = 15
	/*Maximum number of samplers per shader stage.*/
	RenderingDeviceLimitMaxSamplersPerShaderStage RenderingDeviceLimit = 16
	/*Maximum number of [url=https://vkguide.dev/docs/chapter-4/storage_buffers/]storage buffers[/url] per shader stage.*/
	RenderingDeviceLimitMaxStorageBuffersPerShaderStage RenderingDeviceLimit = 17
	/*Maximum number of storage images per shader stage.*/
	RenderingDeviceLimitMaxStorageImagesPerShaderStage RenderingDeviceLimit = 18
	/*Maximum number of uniform buffers per uniform set.*/
	RenderingDeviceLimitMaxUniformBuffersPerShaderStage RenderingDeviceLimit = 19
	/*Maximum size of a push constant. A lot of devices are limited to 128 bytes, so try to avoid exceeding 128 bytes in push constants to ensure compatibility even if your GPU is reporting a higher value.*/
	RenderingDeviceLimitMaxPushConstantSize RenderingDeviceLimit = 20
	/*Maximum size of a uniform buffer.*/
	RenderingDeviceLimitMaxUniformBufferSize RenderingDeviceLimit = 21
	/*Maximum vertex input attribute offset.*/
	RenderingDeviceLimitMaxVertexInputAttributeOffset RenderingDeviceLimit = 22
	/*Maximum number of vertex input attributes.*/
	RenderingDeviceLimitMaxVertexInputAttributes RenderingDeviceLimit = 23
	/*Maximum number of vertex input bindings.*/
	RenderingDeviceLimitMaxVertexInputBindings RenderingDeviceLimit = 24
	/*Maximum vertex input binding stride.*/
	RenderingDeviceLimitMaxVertexInputBindingStride RenderingDeviceLimit = 25
	/*Minimum uniform buffer offset alignment.*/
	RenderingDeviceLimitMinUniformBufferOffsetAlignment RenderingDeviceLimit = 26
	/*Maximum shared memory size for compute shaders.*/
	RenderingDeviceLimitMaxComputeSharedMemorySize RenderingDeviceLimit = 27
	/*Maximum number of workgroups for compute shaders on the X axis.*/
	RenderingDeviceLimitMaxComputeWorkgroupCountX RenderingDeviceLimit = 28
	/*Maximum number of workgroups for compute shaders on the Y axis.*/
	RenderingDeviceLimitMaxComputeWorkgroupCountY RenderingDeviceLimit = 29
	/*Maximum number of workgroups for compute shaders on the Z axis.*/
	RenderingDeviceLimitMaxComputeWorkgroupCountZ RenderingDeviceLimit = 30
	/*Maximum number of workgroup invocations for compute shaders.*/
	RenderingDeviceLimitMaxComputeWorkgroupInvocations RenderingDeviceLimit = 31
	/*Maximum workgroup size for compute shaders on the X axis.*/
	RenderingDeviceLimitMaxComputeWorkgroupSizeX RenderingDeviceLimit = 32
	/*Maximum workgroup size for compute shaders on the Y axis.*/
	RenderingDeviceLimitMaxComputeWorkgroupSizeY RenderingDeviceLimit = 33
	/*Maximum workgroup size for compute shaders on the Z axis.*/
	RenderingDeviceLimitMaxComputeWorkgroupSizeZ RenderingDeviceLimit = 34
	/*Maximum viewport width (in pixels).*/
	RenderingDeviceLimitMaxViewportDimensionsX RenderingDeviceLimit = 35
	/*Maximum viewport height (in pixels).*/
	RenderingDeviceLimitMaxViewportDimensionsY RenderingDeviceLimit = 36
)

type RenderingDeviceLogicOperation

type RenderingDeviceLogicOperation = classdb.RenderingDeviceLogicOperation
const (
	/*Clear logic operation (result is always [code]0[/code]). See also [constant LOGIC_OP_SET].*/
	RenderingDeviceLogicOpClear RenderingDeviceLogicOperation = 0
	/*AND logic operation.*/
	RenderingDeviceLogicOpAnd RenderingDeviceLogicOperation = 1
	/*AND logic operation with the [i]destination[/i] operand being inverted. See also [constant LOGIC_OP_AND_INVERTED].*/
	RenderingDeviceLogicOpAndReverse RenderingDeviceLogicOperation = 2
	/*Copy logic operation (keeps the [i]source[/i] value as-is). See also [constant LOGIC_OP_COPY_INVERTED] and [constant LOGIC_OP_NO_OP].*/
	RenderingDeviceLogicOpCopy RenderingDeviceLogicOperation = 3
	/*AND logic operation with the [i]source[/i] operand being inverted. See also [constant LOGIC_OP_AND_REVERSE].*/
	RenderingDeviceLogicOpAndInverted RenderingDeviceLogicOperation = 4
	/*No-op logic operation (keeps the [i]destination[/i] value as-is). See also [constant LOGIC_OP_COPY].*/
	RenderingDeviceLogicOpNoOp RenderingDeviceLogicOperation = 5
	/*Exclusive or (XOR) logic operation.*/
	RenderingDeviceLogicOpXor RenderingDeviceLogicOperation = 6
	/*OR logic operation.*/
	RenderingDeviceLogicOpOr RenderingDeviceLogicOperation = 7
	/*Not-OR (NOR) logic operation.*/
	RenderingDeviceLogicOpNor RenderingDeviceLogicOperation = 8
	/*Not-XOR (XNOR) logic operation.*/
	RenderingDeviceLogicOpEquivalent RenderingDeviceLogicOperation = 9
	/*Invert logic operation.*/
	RenderingDeviceLogicOpInvert RenderingDeviceLogicOperation = 10
	/*OR logic operation with the [i]destination[/i] operand being inverted. See also [constant LOGIC_OP_OR_REVERSE].*/
	RenderingDeviceLogicOpOrReverse RenderingDeviceLogicOperation = 11
	/*NOT logic operation (inverts the value). See also [constant LOGIC_OP_COPY].*/
	RenderingDeviceLogicOpCopyInverted RenderingDeviceLogicOperation = 12
	/*OR logic operation with the [i]source[/i] operand being inverted. See also [constant LOGIC_OP_OR_REVERSE].*/
	RenderingDeviceLogicOpOrInverted RenderingDeviceLogicOperation = 13
	/*Not-AND (NAND) logic operation.*/
	RenderingDeviceLogicOpNand RenderingDeviceLogicOperation = 14
	/*SET logic operation (result is always [code]1[/code]). See also [constant LOGIC_OP_CLEAR].*/
	RenderingDeviceLogicOpSet RenderingDeviceLogicOperation = 15
	/*Represents the size of the [enum LogicOperation] enum.*/
	RenderingDeviceLogicOpMax RenderingDeviceLogicOperation = 16
)

type RenderingDeviceMemoryType

type RenderingDeviceMemoryType = classdb.RenderingDeviceMemoryType
const (
	/*Memory taken by textures.*/
	RenderingDeviceMemoryTextures RenderingDeviceMemoryType = 0
	/*Memory taken by buffers.*/
	RenderingDeviceMemoryBuffers RenderingDeviceMemoryType = 1
	/*Total memory taken. This is greater than the sum of [constant MEMORY_TEXTURES] and [constant MEMORY_BUFFERS], as it also includes miscellaneous memory usage.*/
	RenderingDeviceMemoryTotal RenderingDeviceMemoryType = 2
)

type RenderingDevicePipelineDynamicStateFlags

type RenderingDevicePipelineDynamicStateFlags = classdb.RenderingDevicePipelineDynamicStateFlags
const (
	RenderingDeviceDynamicStateLineWidth          RenderingDevicePipelineDynamicStateFlags = 1
	RenderingDeviceDynamicStateDepthBias          RenderingDevicePipelineDynamicStateFlags = 2
	RenderingDeviceDynamicStateBlendConstants     RenderingDevicePipelineDynamicStateFlags = 4
	RenderingDeviceDynamicStateDepthBounds        RenderingDevicePipelineDynamicStateFlags = 8
	RenderingDeviceDynamicStateStencilCompareMask RenderingDevicePipelineDynamicStateFlags = 16
	RenderingDeviceDynamicStateStencilWriteMask   RenderingDevicePipelineDynamicStateFlags = 32
	RenderingDeviceDynamicStateStencilReference   RenderingDevicePipelineDynamicStateFlags = 64
)

type RenderingDevicePipelineSpecializationConstantType

type RenderingDevicePipelineSpecializationConstantType = classdb.RenderingDevicePipelineSpecializationConstantType
const (
	/*Boolean specialization constant.*/
	RenderingDevicePipelineSpecializationConstantTypeBool RenderingDevicePipelineSpecializationConstantType = 0
	/*Integer specialization constant.*/
	RenderingDevicePipelineSpecializationConstantTypeInt RenderingDevicePipelineSpecializationConstantType = 1
	/*Floating-point specialization constant.*/
	RenderingDevicePipelineSpecializationConstantTypeFloat RenderingDevicePipelineSpecializationConstantType = 2
)

type RenderingDevicePolygonCullMode

type RenderingDevicePolygonCullMode = classdb.RenderingDevicePolygonCullMode
const (
	/*Do not use polygon front face or backface culling.*/
	RenderingDevicePolygonCullDisabled RenderingDevicePolygonCullMode = 0
	/*Use polygon frontface culling (faces pointing towards the camera are hidden).*/
	RenderingDevicePolygonCullFront RenderingDevicePolygonCullMode = 1
	/*Use polygon backface culling (faces pointing away from the camera are hidden).*/
	RenderingDevicePolygonCullBack RenderingDevicePolygonCullMode = 2
)

type RenderingDevicePolygonFrontFace

type RenderingDevicePolygonFrontFace = classdb.RenderingDevicePolygonFrontFace
const (
	/*Clockwise winding order to determine which face of a polygon is its front face.*/
	RenderingDevicePolygonFrontFaceClockwise RenderingDevicePolygonFrontFace = 0
	/*Counter-clockwise winding order to determine which face of a polygon is its front face.*/
	RenderingDevicePolygonFrontFaceCounterClockwise RenderingDevicePolygonFrontFace = 1
)

type RenderingDeviceRenderPrimitive

type RenderingDeviceRenderPrimitive = classdb.RenderingDeviceRenderPrimitive
const (
	/*Point rendering primitive (with constant size, regardless of distance from camera).*/
	RenderingDeviceRenderPrimitivePoints RenderingDeviceRenderPrimitive = 0
	/*Line list rendering primitive. Lines are drawn separated from each other.*/
	RenderingDeviceRenderPrimitiveLines RenderingDeviceRenderPrimitive = 1
	/*[url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists-with-adjacency]Line list rendering primitive with adjacency.[/url]
	  [b]Note:[/b] Adjacency is only useful with geometry shaders, which Godot does not expose.*/
	RenderingDeviceRenderPrimitiveLinesWithAdjacency RenderingDeviceRenderPrimitive = 2
	/*Line strip rendering primitive. Lines drawn are connected to the previous vertex.*/
	RenderingDeviceRenderPrimitiveLinestrips RenderingDeviceRenderPrimitive = 3
	/*[url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-strips-with-adjacency]Line strip rendering primitive with adjacency.[/url]
	  [b]Note:[/b] Adjacency is only useful with geometry shaders, which Godot does not expose.*/
	RenderingDeviceRenderPrimitiveLinestripsWithAdjacency RenderingDeviceRenderPrimitive = 4
	/*Triangle list rendering primitive. Triangles are drawn separated from each other.*/
	RenderingDeviceRenderPrimitiveTriangles RenderingDeviceRenderPrimitive = 5
	/*[url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists-with-adjacency]Triangle list rendering primitive with adjacency.[/url]
	  [b]Note:[/b] Adjacency is only useful with geometry shaders, which Godot does not expose.*/
	RenderingDeviceRenderPrimitiveTrianglesWithAdjacency RenderingDeviceRenderPrimitive = 6
	/*Triangle strip rendering primitive. Triangles drawn are connected to the previous triangle.*/
	RenderingDeviceRenderPrimitiveTriangleStrips RenderingDeviceRenderPrimitive = 7
	/*[url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-strips-with-adjacency]Triangle strip rendering primitive with adjacency.[/url]
	  [b]Note:[/b] Adjacency is only useful with geometry shaders, which Godot does not expose.*/
	RenderingDeviceRenderPrimitiveTriangleStripsWithAjacency RenderingDeviceRenderPrimitive = 8
	/*Triangle strip rendering primitive with [i]primitive restart[/i] enabled. Triangles drawn are connected to the previous triangle, but a primitive restart index can be specified before drawing to create a second triangle strip after the specified index.
	  [b]Note:[/b] Only compatible with indexed draws.*/
	RenderingDeviceRenderPrimitiveTriangleStripsWithRestartIndex RenderingDeviceRenderPrimitive = 9
	/*Tessellation patch rendering primitive. Only useful with tessellation shaders, which can be used to deform these patches.*/
	RenderingDeviceRenderPrimitiveTesselationPatch RenderingDeviceRenderPrimitive = 10
	/*Represents the size of the [enum RenderPrimitive] enum.*/
	RenderingDeviceRenderPrimitiveMax RenderingDeviceRenderPrimitive = 11
)

type RenderingDeviceSamplerBorderColor

type RenderingDeviceSamplerBorderColor = classdb.RenderingDeviceSamplerBorderColor
const (
	/*Return a floating-point transparent black color when sampling outside the [code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER].*/
	RenderingDeviceSamplerBorderColorFloatTransparentBlack RenderingDeviceSamplerBorderColor = 0
	/*Return a integer transparent black color when sampling outside the [code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER].*/
	RenderingDeviceSamplerBorderColorIntTransparentBlack RenderingDeviceSamplerBorderColor = 1
	/*Return a floating-point opaque black color when sampling outside the [code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER].*/
	RenderingDeviceSamplerBorderColorFloatOpaqueBlack RenderingDeviceSamplerBorderColor = 2
	/*Return a integer opaque black color when sampling outside the [code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER].*/
	RenderingDeviceSamplerBorderColorIntOpaqueBlack RenderingDeviceSamplerBorderColor = 3
	/*Return a floating-point opaque white color when sampling outside the [code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER].*/
	RenderingDeviceSamplerBorderColorFloatOpaqueWhite RenderingDeviceSamplerBorderColor = 4
	/*Return a integer opaque white color when sampling outside the [code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER].*/
	RenderingDeviceSamplerBorderColorIntOpaqueWhite RenderingDeviceSamplerBorderColor = 5
	/*Represents the size of the [enum SamplerBorderColor] enum.*/
	RenderingDeviceSamplerBorderColorMax RenderingDeviceSamplerBorderColor = 6
)

type RenderingDeviceSamplerFilter

type RenderingDeviceSamplerFilter = classdb.RenderingDeviceSamplerFilter
const (
	/*Nearest-neighbor sampler filtering. Sampling at higher resolutions than the source will result in a pixelated look.*/
	RenderingDeviceSamplerFilterNearest RenderingDeviceSamplerFilter = 0
	/*Bilinear sampler filtering. Sampling at higher resolutions than the source will result in a blurry look.*/
	RenderingDeviceSamplerFilterLinear RenderingDeviceSamplerFilter = 1
)

type RenderingDeviceSamplerRepeatMode

type RenderingDeviceSamplerRepeatMode = classdb.RenderingDeviceSamplerRepeatMode
const (
	/*Sample with repeating enabled.*/
	RenderingDeviceSamplerRepeatModeRepeat RenderingDeviceSamplerRepeatMode = 0
	/*Sample with mirrored repeating enabled. When sampling outside the [code][0.0, 1.0][/code] range, return a mirrored version of the sampler. This mirrored version is mirrored again if sampling further away, with the pattern repeating indefinitely.*/
	RenderingDeviceSamplerRepeatModeMirroredRepeat RenderingDeviceSamplerRepeatMode = 1
	/*Sample with repeating disabled. When sampling outside the [code][0.0, 1.0][/code] range, return the color of the last pixel on the edge.*/
	RenderingDeviceSamplerRepeatModeClampToEdge RenderingDeviceSamplerRepeatMode = 2
	/*Sample with repeating disabled. When sampling outside the [code][0.0, 1.0][/code] range, return the specified [member RDSamplerState.border_color].*/
	RenderingDeviceSamplerRepeatModeClampToBorder RenderingDeviceSamplerRepeatMode = 3
	/*Sample with mirrored repeating enabled, but only once. When sampling in the [code][-1.0, 0.0][/code] range, return a mirrored version of the sampler. When sampling outside the [code][-1.0, 1.0][/code] range, return the color of the last pixel on the edge.*/
	RenderingDeviceSamplerRepeatModeMirrorClampToEdge RenderingDeviceSamplerRepeatMode = 4
	/*Represents the size of the [enum SamplerRepeatMode] enum.*/
	RenderingDeviceSamplerRepeatModeMax RenderingDeviceSamplerRepeatMode = 5
)

type RenderingDeviceShaderLanguage

type RenderingDeviceShaderLanguage = classdb.RenderingDeviceShaderLanguage
const (
	/*Khronos' GLSL shading language (used natively by OpenGL and Vulkan). This is the language used for core Godot shaders.*/
	RenderingDeviceShaderLanguageGlsl RenderingDeviceShaderLanguage = 0
	/*Microsoft's High-Level Shading Language (used natively by Direct3D, but can also be used in Vulkan).*/
	RenderingDeviceShaderLanguageHlsl RenderingDeviceShaderLanguage = 1
)

type RenderingDeviceShaderStage

type RenderingDeviceShaderStage = classdb.RenderingDeviceShaderStage
const (
	/*Vertex shader stage. This can be used to manipulate vertices from a shader (but not create new vertices).*/
	RenderingDeviceShaderStageVertex RenderingDeviceShaderStage = 0
	/*Fragment shader stage (called "pixel shader" in Direct3D). This can be used to manipulate pixels from a shader.*/
	RenderingDeviceShaderStageFragment RenderingDeviceShaderStage = 1
	/*Tessellation control shader stage. This can be used to create additional geometry from a shader.*/
	RenderingDeviceShaderStageTesselationControl RenderingDeviceShaderStage = 2
	/*Tessellation evaluation shader stage. This can be used to create additional geometry from a shader.*/
	RenderingDeviceShaderStageTesselationEvaluation RenderingDeviceShaderStage = 3
	/*Compute shader stage. This can be used to run arbitrary computing tasks in a shader, performing them on the GPU instead of the CPU.*/
	RenderingDeviceShaderStageCompute RenderingDeviceShaderStage = 4
	/*Represents the size of the [enum ShaderStage] enum.*/
	RenderingDeviceShaderStageMax RenderingDeviceShaderStage = 5
	/*Vertex shader stage bit (see also [constant SHADER_STAGE_VERTEX]).*/
	RenderingDeviceShaderStageVertexBit RenderingDeviceShaderStage = 1
	/*Fragment shader stage bit (see also [constant SHADER_STAGE_FRAGMENT]).*/
	RenderingDeviceShaderStageFragmentBit RenderingDeviceShaderStage = 2
	/*Tessellation control shader stage bit (see also [constant SHADER_STAGE_TESSELATION_CONTROL]).*/
	RenderingDeviceShaderStageTesselationControlBit RenderingDeviceShaderStage = 4
	/*Tessellation evaluation shader stage bit (see also [constant SHADER_STAGE_TESSELATION_EVALUATION]).*/
	RenderingDeviceShaderStageTesselationEvaluationBit RenderingDeviceShaderStage = 8
	/*Compute shader stage bit (see also [constant SHADER_STAGE_COMPUTE]).*/
	RenderingDeviceShaderStageComputeBit RenderingDeviceShaderStage = 16
)

type RenderingDeviceStencilOperation

type RenderingDeviceStencilOperation = classdb.RenderingDeviceStencilOperation
const (
	/*Keep the current stencil value.*/
	RenderingDeviceStencilOpKeep RenderingDeviceStencilOperation = 0
	/*Set the stencil value to [code]0[/code].*/
	RenderingDeviceStencilOpZero RenderingDeviceStencilOperation = 1
	/*Replace the existing stencil value with the new one.*/
	RenderingDeviceStencilOpReplace RenderingDeviceStencilOperation = 2
	/*Increment the existing stencil value and clamp to the maximum representable unsigned value if reached. Stencil bits are considered as an unsigned integer.*/
	RenderingDeviceStencilOpIncrementAndClamp RenderingDeviceStencilOperation = 3
	/*Decrement the existing stencil value and clamp to the minimum value if reached. Stencil bits are considered as an unsigned integer.*/
	RenderingDeviceStencilOpDecrementAndClamp RenderingDeviceStencilOperation = 4
	/*Bitwise-invert the existing stencil value.*/
	RenderingDeviceStencilOpInvert RenderingDeviceStencilOperation = 5
	/*Increment the stencil value and wrap around to [code]0[/code] if reaching the maximum representable unsigned. Stencil bits are considered as an unsigned integer.*/
	RenderingDeviceStencilOpIncrementAndWrap RenderingDeviceStencilOperation = 6
	/*Decrement the stencil value and wrap around to the maximum representable unsigned if reaching the minimum. Stencil bits are considered as an unsigned integer.*/
	RenderingDeviceStencilOpDecrementAndWrap RenderingDeviceStencilOperation = 7
	/*Represents the size of the [enum StencilOperation] enum.*/
	RenderingDeviceStencilOpMax RenderingDeviceStencilOperation = 8
)

type RenderingDeviceStorageBufferUsage

type RenderingDeviceStorageBufferUsage = classdb.RenderingDeviceStorageBufferUsage
const (
	RenderingDeviceStorageBufferUsageDispatchIndirect RenderingDeviceStorageBufferUsage = 1
)

type RenderingDeviceTextureSamples

type RenderingDeviceTextureSamples = classdb.RenderingDeviceTextureSamples
const (
	/*Perform 1 texture sample (this is the fastest but lowest-quality for antialiasing).*/
	RenderingDeviceTextureSamples1 RenderingDeviceTextureSamples = 0
	/*Perform 2 texture samples.*/
	RenderingDeviceTextureSamples2 RenderingDeviceTextureSamples = 1
	/*Perform 4 texture samples.*/
	RenderingDeviceTextureSamples4 RenderingDeviceTextureSamples = 2
	/*Perform 8 texture samples. Not supported on mobile GPUs (including Apple Silicon).*/
	RenderingDeviceTextureSamples8 RenderingDeviceTextureSamples = 3
	/*Perform 16 texture samples. Not supported on mobile GPUs and many desktop GPUs.*/
	RenderingDeviceTextureSamples16 RenderingDeviceTextureSamples = 4
	/*Perform 32 texture samples. Not supported on most GPUs.*/
	RenderingDeviceTextureSamples32 RenderingDeviceTextureSamples = 5
	/*Perform 64 texture samples (this is the slowest but highest-quality for antialiasing). Not supported on most GPUs.*/
	RenderingDeviceTextureSamples64 RenderingDeviceTextureSamples = 6
	/*Represents the size of the [enum TextureSamples] enum.*/
	RenderingDeviceTextureSamplesMax RenderingDeviceTextureSamples = 7
)

type RenderingDeviceTextureSliceType

type RenderingDeviceTextureSliceType = classdb.RenderingDeviceTextureSliceType
const (
	/*2-dimensional texture slice.*/
	RenderingDeviceTextureSlice2d RenderingDeviceTextureSliceType = 0
	/*Cubemap texture slice.*/
	RenderingDeviceTextureSliceCubemap RenderingDeviceTextureSliceType = 1
	/*3-dimensional texture slice.*/
	RenderingDeviceTextureSlice3d RenderingDeviceTextureSliceType = 2
)

type RenderingDeviceTextureSwizzle

type RenderingDeviceTextureSwizzle = classdb.RenderingDeviceTextureSwizzle
const (
	/*Return the sampled value as-is.*/
	RenderingDeviceTextureSwizzleIdentity RenderingDeviceTextureSwizzle = 0
	/*Always return [code]0.0[/code] when sampling.*/
	RenderingDeviceTextureSwizzleZero RenderingDeviceTextureSwizzle = 1
	/*Always return [code]1.0[/code] when sampling.*/
	RenderingDeviceTextureSwizzleOne RenderingDeviceTextureSwizzle = 2
	/*Sample the red color channel.*/
	RenderingDeviceTextureSwizzleR RenderingDeviceTextureSwizzle = 3
	/*Sample the green color channel.*/
	RenderingDeviceTextureSwizzleG RenderingDeviceTextureSwizzle = 4
	/*Sample the blue color channel.*/
	RenderingDeviceTextureSwizzleB RenderingDeviceTextureSwizzle = 5
	/*Sample the alpha channel.*/
	RenderingDeviceTextureSwizzleA RenderingDeviceTextureSwizzle = 6
	/*Represents the size of the [enum TextureSwizzle] enum.*/
	RenderingDeviceTextureSwizzleMax RenderingDeviceTextureSwizzle = 7
)

type RenderingDeviceTextureType

type RenderingDeviceTextureType = classdb.RenderingDeviceTextureType
const (
	/*1-dimensional texture.*/
	RenderingDeviceTextureType1d RenderingDeviceTextureType = 0
	/*2-dimensional texture.*/
	RenderingDeviceTextureType2d RenderingDeviceTextureType = 1
	/*3-dimensional texture.*/
	RenderingDeviceTextureType3d RenderingDeviceTextureType = 2
	/*[Cubemap] texture.*/
	RenderingDeviceTextureTypeCube RenderingDeviceTextureType = 3
	/*Array of 1-dimensional textures.*/
	RenderingDeviceTextureType1dArray RenderingDeviceTextureType = 4
	/*Array of 2-dimensional textures.*/
	RenderingDeviceTextureType2dArray RenderingDeviceTextureType = 5
	/*Array of [Cubemap] textures.*/
	RenderingDeviceTextureTypeCubeArray RenderingDeviceTextureType = 6
	/*Represents the size of the [enum TextureType] enum.*/
	RenderingDeviceTextureTypeMax RenderingDeviceTextureType = 7
)

type RenderingDeviceTextureUsageBits

type RenderingDeviceTextureUsageBits = classdb.RenderingDeviceTextureUsageBits
const (
	/*Texture can be sampled.*/
	RenderingDeviceTextureUsageSamplingBit RenderingDeviceTextureUsageBits = 1
	/*Texture can be used as a color attachment in a framebuffer.*/
	RenderingDeviceTextureUsageColorAttachmentBit RenderingDeviceTextureUsageBits = 2
	/*Texture can be used as a depth/stencil attachment in a framebuffer.*/
	RenderingDeviceTextureUsageDepthStencilAttachmentBit RenderingDeviceTextureUsageBits = 4
	/*Texture can be used as a [url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage]storage image[/url].*/
	RenderingDeviceTextureUsageStorageBit RenderingDeviceTextureUsageBits = 8
	/*Texture can be used as a [url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage]storage image[/url] with support for atomic operations.*/
	RenderingDeviceTextureUsageStorageAtomicBit RenderingDeviceTextureUsageBits = 16
	/*Texture can be read back on the CPU using [method texture_get_data] faster than without this bit, since it is always kept in the system memory.*/
	RenderingDeviceTextureUsageCpuReadBit RenderingDeviceTextureUsageBits = 32
	/*Texture can be updated using [method texture_update].*/
	RenderingDeviceTextureUsageCanUpdateBit RenderingDeviceTextureUsageBits = 64
	/*Texture can be a source for [method texture_copy].*/
	RenderingDeviceTextureUsageCanCopyFromBit RenderingDeviceTextureUsageBits = 128
	/*Texture can be a destination for [method texture_copy].*/
	RenderingDeviceTextureUsageCanCopyToBit RenderingDeviceTextureUsageBits = 256
	/*Texture can be used as a [url=https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-inputattachment]input attachment[/url] in a framebuffer.*/
	RenderingDeviceTextureUsageInputAttachmentBit RenderingDeviceTextureUsageBits = 512
)

type RenderingDeviceUniformType

type RenderingDeviceUniformType = classdb.RenderingDeviceUniformType
const (
	/*Sampler uniform.*/
	RenderingDeviceUniformTypeSampler RenderingDeviceUniformType = 0
	/*Sampler uniform with a texture.*/
	RenderingDeviceUniformTypeSamplerWithTexture RenderingDeviceUniformType = 1
	/*Texture uniform.*/
	RenderingDeviceUniformTypeTexture RenderingDeviceUniformType = 2
	/*Image uniform.*/
	RenderingDeviceUniformTypeImage RenderingDeviceUniformType = 3
	/*Texture buffer uniform.*/
	RenderingDeviceUniformTypeTextureBuffer RenderingDeviceUniformType = 4
	/*Sampler uniform with a texture buffer.*/
	RenderingDeviceUniformTypeSamplerWithTextureBuffer RenderingDeviceUniformType = 5
	/*Image buffer uniform.*/
	RenderingDeviceUniformTypeImageBuffer RenderingDeviceUniformType = 6
	/*Uniform buffer uniform.*/
	RenderingDeviceUniformTypeUniformBuffer RenderingDeviceUniformType = 7
	/*[url=https://vkguide.dev/docs/chapter-4/storage_buffers/]Storage buffer[/url] uniform.*/
	RenderingDeviceUniformTypeStorageBuffer RenderingDeviceUniformType = 8
	/*Input attachment uniform.*/
	RenderingDeviceUniformTypeInputAttachment RenderingDeviceUniformType = 9
	/*Represents the size of the [enum UniformType] enum.*/
	RenderingDeviceUniformTypeMax RenderingDeviceUniformType = 10
)

type RenderingDeviceVertexFrequency

type RenderingDeviceVertexFrequency = classdb.RenderingDeviceVertexFrequency
const (
	/*Vertex attribute addressing is a function of the vertex. This is used to specify the rate at which vertex attributes are pulled from buffers.*/
	RenderingDeviceVertexFrequencyVertex RenderingDeviceVertexFrequency = 0
	/*Vertex attribute addressing is a function of the instance index. This is used to specify the rate at which vertex attributes are pulled from buffers.*/
	RenderingDeviceVertexFrequencyInstance RenderingDeviceVertexFrequency = 1
)

type RenderingServerArrayCustomFormat

type RenderingServerArrayCustomFormat = classdb.RenderingServerArrayCustomFormat
const (
	/*Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, unsigned floating-point in the [code][0.0, 1.0][/code] range.*/
	RenderingServerArrayCustomRgba8Unorm RenderingServerArrayCustomFormat = 0
	/*Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, signed floating-point in the [code][-1.0, 1.0][/code] range.*/
	RenderingServerArrayCustomRgba8Snorm RenderingServerArrayCustomFormat = 1
	/*Custom data array contains 16-bit-per-channel red/green color data. Values are floating-point in half precision.*/
	RenderingServerArrayCustomRgHalf RenderingServerArrayCustomFormat = 2
	/*Custom data array contains 16-bit-per-channel red/green/blue/alpha color data. Values are floating-point in half precision.*/
	RenderingServerArrayCustomRgbaHalf RenderingServerArrayCustomFormat = 3
	/*Custom data array contains 32-bit-per-channel red color data. Values are floating-point in single precision.*/
	RenderingServerArrayCustomRFloat RenderingServerArrayCustomFormat = 4
	/*Custom data array contains 32-bit-per-channel red/green color data. Values are floating-point in single precision.*/
	RenderingServerArrayCustomRgFloat RenderingServerArrayCustomFormat = 5
	/*Custom data array contains 32-bit-per-channel red/green/blue color data. Values are floating-point in single precision.*/
	RenderingServerArrayCustomRgbFloat RenderingServerArrayCustomFormat = 6
	/*Custom data array contains 32-bit-per-channel red/green/blue/alpha color data. Values are floating-point in single precision.*/
	RenderingServerArrayCustomRgbaFloat RenderingServerArrayCustomFormat = 7
	/*Represents the size of the [enum ArrayCustomFormat] enum.*/
	RenderingServerArrayCustomMax RenderingServerArrayCustomFormat = 8
)

type RenderingServerArrayFormat

type RenderingServerArrayFormat = classdb.RenderingServerArrayFormat
const (
	/*Flag used to mark a vertex position array.*/
	RenderingServerArrayFormatVertex RenderingServerArrayFormat = 1
	/*Flag used to mark a normal array.*/
	RenderingServerArrayFormatNormal RenderingServerArrayFormat = 2
	/*Flag used to mark a tangent array.*/
	RenderingServerArrayFormatTangent RenderingServerArrayFormat = 4
	/*Flag used to mark a vertex color array.*/
	RenderingServerArrayFormatColor RenderingServerArrayFormat = 8
	/*Flag used to mark a UV coordinates array.*/
	RenderingServerArrayFormatTexUv RenderingServerArrayFormat = 16
	/*Flag used to mark a UV coordinates array for the second UV coordinates.*/
	RenderingServerArrayFormatTexUv2 RenderingServerArrayFormat = 32
	/*Flag used to mark an array of custom per-vertex data for the first set of custom data.*/
	RenderingServerArrayFormatCustom0 RenderingServerArrayFormat = 64
	/*Flag used to mark an array of custom per-vertex data for the second set of custom data.*/
	RenderingServerArrayFormatCustom1 RenderingServerArrayFormat = 128
	/*Flag used to mark an array of custom per-vertex data for the third set of custom data.*/
	RenderingServerArrayFormatCustom2 RenderingServerArrayFormat = 256
	/*Flag used to mark an array of custom per-vertex data for the fourth set of custom data.*/
	RenderingServerArrayFormatCustom3 RenderingServerArrayFormat = 512
	/*Flag used to mark a bone information array.*/
	RenderingServerArrayFormatBones RenderingServerArrayFormat = 1024
	/*Flag used to mark a weights array.*/
	RenderingServerArrayFormatWeights RenderingServerArrayFormat = 2048
	/*Flag used to mark an index array.*/
	RenderingServerArrayFormatIndex          RenderingServerArrayFormat = 4096
	RenderingServerArrayFormatBlendShapeMask RenderingServerArrayFormat = 7
	RenderingServerArrayFormatCustomBase     RenderingServerArrayFormat = 13
	RenderingServerArrayFormatCustomBits     RenderingServerArrayFormat = 3
	RenderingServerArrayFormatCustom0Shift   RenderingServerArrayFormat = 13
	RenderingServerArrayFormatCustom1Shift   RenderingServerArrayFormat = 16
	RenderingServerArrayFormatCustom2Shift   RenderingServerArrayFormat = 19
	RenderingServerArrayFormatCustom3Shift   RenderingServerArrayFormat = 22
	RenderingServerArrayFormatCustomMask     RenderingServerArrayFormat = 7
	RenderingServerArrayCompressFlagsBase    RenderingServerArrayFormat = 25
	/*Flag used to mark that the array contains 2D vertices.*/
	RenderingServerArrayFlagUse2dVertices    RenderingServerArrayFormat = 33554432
	RenderingServerArrayFlagUseDynamicUpdate RenderingServerArrayFormat = 67108864
	/*Flag used to mark that the array uses 8 bone weights instead of 4.*/
	RenderingServerArrayFlagUse8BoneWeights RenderingServerArrayFormat = 134217728
	/*Flag used to mark that the mesh does not have a vertex array and instead will infer vertex positions in the shader using indices and other information.*/
	RenderingServerArrayFlagUsesEmptyVertexArray RenderingServerArrayFormat = 268435456
	/*Flag used to mark that a mesh is using compressed attributes (vertices, normals, tangents, UVs). When this form of compression is enabled, vertex positions will be packed into an RGBA16UNORM attribute and scaled in the vertex shader. The normal and tangent will be packed into an RG16UNORM representing an axis, and a 16-bit float stored in the A-channel of the vertex. UVs will use 16-bit normalized floats instead of full 32-bit signed floats. When using this compression mode you must use either vertices, normals, and tangents or only vertices. You cannot use normals without tangents. Importers will automatically enable this compression if they can.*/
	RenderingServerArrayFlagCompressAttributes RenderingServerArrayFormat = 536870912
	/*Flag used to mark the start of the bits used to store the mesh version.*/
	RenderingServerArrayFlagFormatVersionBase RenderingServerArrayFormat = 35
	/*Flag used to shift a mesh format int to bring the version into the lowest digits.*/
	RenderingServerArrayFlagFormatVersionShift RenderingServerArrayFormat = 35
	/*Flag used to record the format used by prior mesh versions before the introduction of a version.*/
	RenderingServerArrayFlagFormatVersion1 RenderingServerArrayFormat = 0
	/*Flag used to record the second iteration of the mesh version flag. The primary difference between this and [constant ARRAY_FLAG_FORMAT_VERSION_1] is that this version supports [constant ARRAY_FLAG_COMPRESS_ATTRIBUTES] and in this version vertex positions are de-interleaved from normals and tangents.*/
	RenderingServerArrayFlagFormatVersion2 RenderingServerArrayFormat = 34359738368
	/*Flag used to record the current version that the engine expects. Currently this is the same as [constant ARRAY_FLAG_FORMAT_VERSION_2].*/
	RenderingServerArrayFlagFormatCurrentVersion RenderingServerArrayFormat = 34359738368
	/*Flag used to isolate the bits used for mesh version after using [constant ARRAY_FLAG_FORMAT_VERSION_SHIFT] to shift them into place.*/
	RenderingServerArrayFlagFormatVersionMask RenderingServerArrayFormat = 255
)

type RenderingServerArrayType

type RenderingServerArrayType = classdb.RenderingServerArrayType
const (
	/*Array is a vertex position array.*/
	RenderingServerArrayVertex RenderingServerArrayType = 0
	/*Array is a normal array.*/
	RenderingServerArrayNormal RenderingServerArrayType = 1
	/*Array is a tangent array.*/
	RenderingServerArrayTangent RenderingServerArrayType = 2
	/*Array is a vertex color array.*/
	RenderingServerArrayColor RenderingServerArrayType = 3
	/*Array is a UV coordinates array.*/
	RenderingServerArrayTexUv RenderingServerArrayType = 4
	/*Array is a UV coordinates array for the second set of UV coordinates.*/
	RenderingServerArrayTexUv2 RenderingServerArrayType = 5
	/*Array is a custom data array for the first set of custom data.*/
	RenderingServerArrayCustom0 RenderingServerArrayType = 6
	/*Array is a custom data array for the second set of custom data.*/
	RenderingServerArrayCustom1 RenderingServerArrayType = 7
	/*Array is a custom data array for the third set of custom data.*/
	RenderingServerArrayCustom2 RenderingServerArrayType = 8
	/*Array is a custom data array for the fourth set of custom data.*/
	RenderingServerArrayCustom3 RenderingServerArrayType = 9
	/*Array contains bone information.*/
	RenderingServerArrayBones RenderingServerArrayType = 10
	/*Array is weight information.*/
	RenderingServerArrayWeights RenderingServerArrayType = 11
	/*Array is an index array.*/
	RenderingServerArrayIndex RenderingServerArrayType = 12
	/*Represents the size of the [enum ArrayType] enum.*/
	RenderingServerArrayMax RenderingServerArrayType = 13
)

type RenderingServerBakeChannels

type RenderingServerBakeChannels = classdb.RenderingServerBakeChannels
const (
	/*Index of [Image] in array of [Image]s returned by [method bake_render_uv2]. Image uses [constant Image.FORMAT_RGBA8] and contains albedo color in the [code].rgb[/code] channels and alpha in the [code].a[/code] channel.*/
	RenderingServerBakeChannelAlbedoAlpha RenderingServerBakeChannels = 0
	/*Index of [Image] in array of [Image]s returned by [method bake_render_uv2]. Image uses [constant Image.FORMAT_RGBA8] and contains the per-pixel normal of the object in the [code].rgb[/code] channels and nothing in the [code].a[/code] channel. The per-pixel normal is encoded as [code]normal * 0.5 + 0.5[/code].*/
	RenderingServerBakeChannelNormal RenderingServerBakeChannels = 1
	/*Index of [Image] in array of [Image]s returned by [method bake_render_uv2]. Image uses [constant Image.FORMAT_RGBA8] and contains ambient occlusion (from material and decals only) in the [code].r[/code] channel, roughness in the [code].g[/code] channel, metallic in the [code].b[/code] channel and sub surface scattering amount in the [code].a[/code] channel.*/
	RenderingServerBakeChannelOrm RenderingServerBakeChannels = 2
	/*Index of [Image] in array of [Image]s returned by [method bake_render_uv2]. Image uses [constant Image.FORMAT_RGBAH] and contains emission color in the [code].rgb[/code] channels and nothing in the [code].a[/code] channel.*/
	RenderingServerBakeChannelEmission RenderingServerBakeChannels = 3
)

type RenderingServerBlendShapeMode

type RenderingServerBlendShapeMode = classdb.RenderingServerBlendShapeMode
const (
	/*Blend shapes are normalized.*/
	RenderingServerBlendShapeModeNormalized RenderingServerBlendShapeMode = 0
	/*Blend shapes are relative to base weight.*/
	RenderingServerBlendShapeModeRelative RenderingServerBlendShapeMode = 1
)

type RenderingServerCanvasGroupMode

type RenderingServerCanvasGroupMode = classdb.RenderingServerCanvasGroupMode
const (
	/*Child draws over parent and is not clipped.*/
	RenderingServerCanvasGroupModeDisabled RenderingServerCanvasGroupMode = 0
	/*Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn.*/
	RenderingServerCanvasGroupModeClipOnly RenderingServerCanvasGroupMode = 1
	/*Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area.*/
	RenderingServerCanvasGroupModeClipAndDraw RenderingServerCanvasGroupMode = 2
	RenderingServerCanvasGroupModeTransparent RenderingServerCanvasGroupMode = 3
)

type RenderingServerCanvasItemTextureFilter

type RenderingServerCanvasItemTextureFilter = classdb.RenderingServerCanvasItemTextureFilter
const (
	/*Uses the default filter mode for this [Viewport].*/
	RenderingServerCanvasItemTextureFilterDefault RenderingServerCanvasItemTextureFilter = 0
	/*The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	RenderingServerCanvasItemTextureFilterNearest RenderingServerCanvasItemTextureFilter = 1
	/*The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	RenderingServerCanvasItemTextureFilterLinear RenderingServerCanvasItemTextureFilter = 2
	/*The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look pixelated from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	RenderingServerCanvasItemTextureFilterNearestWithMipmaps RenderingServerCanvasItemTextureFilter = 3
	/*The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look smooth from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	RenderingServerCanvasItemTextureFilterLinearWithMipmaps RenderingServerCanvasItemTextureFilter = 4
	/*The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look pixelated from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
	  [b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] is usually more appropriate in this case.*/
	RenderingServerCanvasItemTextureFilterNearestWithMipmapsAnisotropic RenderingServerCanvasItemTextureFilter = 5
	/*The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look smooth from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
	  [b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS] is usually more appropriate in this case.*/
	RenderingServerCanvasItemTextureFilterLinearWithMipmapsAnisotropic RenderingServerCanvasItemTextureFilter = 6
	/*Max value for [enum CanvasItemTextureFilter] enum.*/
	RenderingServerCanvasItemTextureFilterMax RenderingServerCanvasItemTextureFilter = 7
)

type RenderingServerCanvasItemTextureRepeat

type RenderingServerCanvasItemTextureRepeat = classdb.RenderingServerCanvasItemTextureRepeat
const (
	/*Uses the default repeat mode for this [Viewport].*/
	RenderingServerCanvasItemTextureRepeatDefault RenderingServerCanvasItemTextureRepeat = 0
	/*Disables textures repeating. Instead, when reading UVs outside the 0-1 range, the value will be clamped to the edge of the texture, resulting in a stretched out look at the borders of the texture.*/
	RenderingServerCanvasItemTextureRepeatDisabled RenderingServerCanvasItemTextureRepeat = 1
	/*Enables the texture to repeat when UV coordinates are outside the 0-1 range. If using one of the linear filtering modes, this can result in artifacts at the edges of a texture when the sampler filters across the edges of the texture.*/
	RenderingServerCanvasItemTextureRepeatEnabled RenderingServerCanvasItemTextureRepeat = 2
	/*Flip the texture when repeating so that the edge lines up instead of abruptly changing.*/
	RenderingServerCanvasItemTextureRepeatMirror RenderingServerCanvasItemTextureRepeat = 3
	/*Max value for [enum CanvasItemTextureRepeat] enum.*/
	RenderingServerCanvasItemTextureRepeatMax RenderingServerCanvasItemTextureRepeat = 4
)

type RenderingServerCanvasLightBlendMode

type RenderingServerCanvasLightBlendMode = classdb.RenderingServerCanvasLightBlendMode
const (
	/*Adds light color additive to the canvas.*/
	RenderingServerCanvasLightBlendModeAdd RenderingServerCanvasLightBlendMode = 0
	/*Adds light color subtractive to the canvas.*/
	RenderingServerCanvasLightBlendModeSub RenderingServerCanvasLightBlendMode = 1
	/*The light adds color depending on transparency.*/
	RenderingServerCanvasLightBlendModeMix RenderingServerCanvasLightBlendMode = 2
)

type RenderingServerCanvasLightMode

type RenderingServerCanvasLightMode = classdb.RenderingServerCanvasLightMode
const (
	/*2D point light (see [PointLight2D]).*/
	RenderingServerCanvasLightModePoint RenderingServerCanvasLightMode = 0
	/*2D directional (sun/moon) light (see [DirectionalLight2D]).*/
	RenderingServerCanvasLightModeDirectional RenderingServerCanvasLightMode = 1
)

type RenderingServerCanvasLightShadowFilter

type RenderingServerCanvasLightShadowFilter = classdb.RenderingServerCanvasLightShadowFilter
const (
	/*Do not apply a filter to canvas light shadows.*/
	RenderingServerCanvasLightFilterNone RenderingServerCanvasLightShadowFilter = 0
	/*Use PCF5 filtering to filter canvas light shadows.*/
	RenderingServerCanvasLightFilterPcf5 RenderingServerCanvasLightShadowFilter = 1
	/*Use PCF13 filtering to filter canvas light shadows.*/
	RenderingServerCanvasLightFilterPcf13 RenderingServerCanvasLightShadowFilter = 2
	/*Max value of the [enum CanvasLightShadowFilter] enum.*/
	RenderingServerCanvasLightFilterMax RenderingServerCanvasLightShadowFilter = 3
)

type RenderingServerCanvasOccluderPolygonCullMode

type RenderingServerCanvasOccluderPolygonCullMode = classdb.RenderingServerCanvasOccluderPolygonCullMode
const (
	/*Culling of the canvas occluder is disabled.*/
	RenderingServerCanvasOccluderPolygonCullDisabled RenderingServerCanvasOccluderPolygonCullMode = 0
	/*Culling of the canvas occluder is clockwise.*/
	RenderingServerCanvasOccluderPolygonCullClockwise RenderingServerCanvasOccluderPolygonCullMode = 1
	/*Culling of the canvas occluder is counterclockwise.*/
	RenderingServerCanvasOccluderPolygonCullCounterClockwise RenderingServerCanvasOccluderPolygonCullMode = 2
)

type RenderingServerCanvasTextureChannel

type RenderingServerCanvasTextureChannel = classdb.RenderingServerCanvasTextureChannel
const (
	/*Diffuse canvas texture ([member CanvasTexture.diffuse_texture]).*/
	RenderingServerCanvasTextureChannelDiffuse RenderingServerCanvasTextureChannel = 0
	/*Normal map canvas texture ([member CanvasTexture.normal_texture]).*/
	RenderingServerCanvasTextureChannelNormal RenderingServerCanvasTextureChannel = 1
	/*Specular map canvas texture ([member CanvasTexture.specular_texture]).*/
	RenderingServerCanvasTextureChannelSpecular RenderingServerCanvasTextureChannel = 2
)

type RenderingServerCubeMapLayer

type RenderingServerCubeMapLayer = classdb.RenderingServerCubeMapLayer
const (
	/*Left face of a [Cubemap].*/
	RenderingServerCubemapLayerLeft RenderingServerCubeMapLayer = 0
	/*Right face of a [Cubemap].*/
	RenderingServerCubemapLayerRight RenderingServerCubeMapLayer = 1
	/*Bottom face of a [Cubemap].*/
	RenderingServerCubemapLayerBottom RenderingServerCubeMapLayer = 2
	/*Top face of a [Cubemap].*/
	RenderingServerCubemapLayerTop RenderingServerCubeMapLayer = 3
	/*Front face of a [Cubemap].*/
	RenderingServerCubemapLayerFront RenderingServerCubeMapLayer = 4
	/*Back face of a [Cubemap].*/
	RenderingServerCubemapLayerBack RenderingServerCubeMapLayer = 5
)

type RenderingServerDOFBlurQuality

type RenderingServerDOFBlurQuality = classdb.RenderingServerDOFBlurQuality
const (
	/*Lowest quality DOF blur. This is the fastest setting, but you may be able to see filtering artifacts.*/
	RenderingServerDofBlurQualityVeryLow RenderingServerDOFBlurQuality = 0
	/*Low quality DOF blur.*/
	RenderingServerDofBlurQualityLow RenderingServerDOFBlurQuality = 1
	/*Medium quality DOF blur.*/
	RenderingServerDofBlurQualityMedium RenderingServerDOFBlurQuality = 2
	/*Highest quality DOF blur. Results in the smoothest looking blur by taking the most samples, but is also significantly slower.*/
	RenderingServerDofBlurQualityHigh RenderingServerDOFBlurQuality = 3
)

type RenderingServerDOFBokehShape

type RenderingServerDOFBokehShape = classdb.RenderingServerDOFBokehShape
const (
	/*Calculate the DOF blur using a box filter. The fastest option, but results in obvious lines in blur pattern.*/
	RenderingServerDofBokehBox RenderingServerDOFBokehShape = 0
	/*Calculates DOF blur using a hexagon shaped filter.*/
	RenderingServerDofBokehHexagon RenderingServerDOFBokehShape = 1
	/*Calculates DOF blur using a circle shaped filter. Best quality and most realistic, but slowest. Use only for areas where a lot of performance can be dedicated to post-processing (e.g. cutscenes).*/
	RenderingServerDofBokehCircle RenderingServerDOFBokehShape = 2
)

type RenderingServerDecalFilter

type RenderingServerDecalFilter = classdb.RenderingServerDecalFilter
const (
	/*Nearest-neighbor filter for decals (use for pixel art decals). No mipmaps are used for rendering, which means decals at a distance will look sharp but grainy. This has roughly the same performance cost as using mipmaps.*/
	RenderingServerDecalFilterNearest RenderingServerDecalFilter = 0
	/*Linear filter for decals (use for non-pixel art decals). No mipmaps are used for rendering, which means decals at a distance will look smooth but blurry. This has roughly the same performance cost as using mipmaps.*/
	RenderingServerDecalFilterLinear RenderingServerDecalFilter = 1
	/*Nearest-neighbor filter for decals (use for pixel art decals). Isotropic mipmaps are used for rendering, which means decals at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.*/
	RenderingServerDecalFilterNearestMipmaps RenderingServerDecalFilter = 2
	/*Linear filter for decals (use for non-pixel art decals). Isotropic mipmaps are used for rendering, which means decals at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.*/
	RenderingServerDecalFilterLinearMipmaps RenderingServerDecalFilter = 3
	/*Nearest-neighbor filter for decals (use for pixel art decals). Anisotropic mipmaps are used for rendering, which means decals at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].*/
	RenderingServerDecalFilterNearestMipmapsAnisotropic RenderingServerDecalFilter = 4
	/*Linear filter for decals (use for non-pixel art decals). Anisotropic mipmaps are used for rendering, which means decals at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].*/
	RenderingServerDecalFilterLinearMipmapsAnisotropic RenderingServerDecalFilter = 5
)

type RenderingServerDecalTexture

type RenderingServerDecalTexture = classdb.RenderingServerDecalTexture
const (
	/*Albedo texture slot in a decal ([member Decal.texture_albedo]).*/
	RenderingServerDecalTextureAlbedo RenderingServerDecalTexture = 0
	/*Normal map texture slot in a decal ([member Decal.texture_normal]).*/
	RenderingServerDecalTextureNormal RenderingServerDecalTexture = 1
	/*Occlusion/Roughness/Metallic texture slot in a decal ([member Decal.texture_orm]).*/
	RenderingServerDecalTextureOrm RenderingServerDecalTexture = 2
	/*Emission texture slot in a decal ([member Decal.texture_emission]).*/
	RenderingServerDecalTextureEmission RenderingServerDecalTexture = 3
	/*Represents the size of the [enum DecalTexture] enum.*/
	RenderingServerDecalTextureMax RenderingServerDecalTexture = 4
)

type RenderingServerEnvironmentAmbientSource

type RenderingServerEnvironmentAmbientSource = classdb.RenderingServerEnvironmentAmbientSource
const (
	/*Gather ambient light from whichever source is specified as the background.*/
	RenderingServerEnvAmbientSourceBg RenderingServerEnvironmentAmbientSource = 0
	/*Disable ambient light.*/
	RenderingServerEnvAmbientSourceDisabled RenderingServerEnvironmentAmbientSource = 1
	/*Specify a specific [Color] for ambient light.*/
	RenderingServerEnvAmbientSourceColor RenderingServerEnvironmentAmbientSource = 2
	/*Gather ambient light from the [Sky] regardless of what the background is.*/
	RenderingServerEnvAmbientSourceSky RenderingServerEnvironmentAmbientSource = 3
)

type RenderingServerEnvironmentBG

type RenderingServerEnvironmentBG = classdb.RenderingServerEnvironmentBG
const (
	/*Use the clear color as background.*/
	RenderingServerEnvBgClearColor RenderingServerEnvironmentBG = 0
	/*Use a specified color as the background.*/
	RenderingServerEnvBgColor RenderingServerEnvironmentBG = 1
	/*Use a sky resource for the background.*/
	RenderingServerEnvBgSky RenderingServerEnvironmentBG = 2
	/*Use a specified canvas layer as the background. This can be useful for instantiating a 2D scene in a 3D world.*/
	RenderingServerEnvBgCanvas RenderingServerEnvironmentBG = 3
	/*Do not clear the background, use whatever was rendered last frame as the background.*/
	RenderingServerEnvBgKeep RenderingServerEnvironmentBG = 4
	/*Displays a camera feed in the background.*/
	RenderingServerEnvBgCameraFeed RenderingServerEnvironmentBG = 5
	/*Represents the size of the [enum EnvironmentBG] enum.*/
	RenderingServerEnvBgMax RenderingServerEnvironmentBG = 6
)

type RenderingServerEnvironmentGlowBlendMode

type RenderingServerEnvironmentGlowBlendMode = classdb.RenderingServerEnvironmentGlowBlendMode
const (
	/*Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources.*/
	RenderingServerEnvGlowBlendModeAdditive RenderingServerEnvironmentGlowBlendMode = 0
	/*Screen glow blending mode. Increases brightness, used frequently with bloom.*/
	RenderingServerEnvGlowBlendModeScreen RenderingServerEnvironmentGlowBlendMode = 1
	/*Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom).*/
	RenderingServerEnvGlowBlendModeSoftlight RenderingServerEnvironmentGlowBlendMode = 2
	/*Replace glow blending mode. Replaces all pixels' color by the glow value. This can be used to simulate a full-screen blur effect by tweaking the glow parameters to match the original image's brightness.*/
	RenderingServerEnvGlowBlendModeReplace RenderingServerEnvironmentGlowBlendMode = 3
	/*Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect.*/
	RenderingServerEnvGlowBlendModeMix RenderingServerEnvironmentGlowBlendMode = 4
)

type RenderingServerEnvironmentReflectionSource

type RenderingServerEnvironmentReflectionSource = classdb.RenderingServerEnvironmentReflectionSource
const (
	/*Use the background for reflections.*/
	RenderingServerEnvReflectionSourceBg RenderingServerEnvironmentReflectionSource = 0
	/*Disable reflections.*/
	RenderingServerEnvReflectionSourceDisabled RenderingServerEnvironmentReflectionSource = 1
	/*Use the [Sky] for reflections regardless of what the background is.*/
	RenderingServerEnvReflectionSourceSky RenderingServerEnvironmentReflectionSource = 2
)

type RenderingServerEnvironmentSDFGIFramesToConverge

type RenderingServerEnvironmentSDFGIFramesToConverge = classdb.RenderingServerEnvironmentSDFGIFramesToConverge
const (
	/*Converge SDFGI over 5 frames. This is the most responsive, but creates the most noisy result with a given ray count.*/
	RenderingServerEnvSdfgiConvergeIn5Frames RenderingServerEnvironmentSDFGIFramesToConverge = 0
	/*Configure SDFGI to fully converge over 10 frames.*/
	RenderingServerEnvSdfgiConvergeIn10Frames RenderingServerEnvironmentSDFGIFramesToConverge = 1
	/*Configure SDFGI to fully converge over 15 frames.*/
	RenderingServerEnvSdfgiConvergeIn15Frames RenderingServerEnvironmentSDFGIFramesToConverge = 2
	/*Configure SDFGI to fully converge over 20 frames.*/
	RenderingServerEnvSdfgiConvergeIn20Frames RenderingServerEnvironmentSDFGIFramesToConverge = 3
	/*Configure SDFGI to fully converge over 25 frames.*/
	RenderingServerEnvSdfgiConvergeIn25Frames RenderingServerEnvironmentSDFGIFramesToConverge = 4
	/*Configure SDFGI to fully converge over 30 frames. This is the least responsive, but creates the least noisy result with a given ray count.*/
	RenderingServerEnvSdfgiConvergeIn30Frames RenderingServerEnvironmentSDFGIFramesToConverge = 5
	/*Represents the size of the [enum EnvironmentSDFGIFramesToConverge] enum.*/
	RenderingServerEnvSdfgiConvergeMax RenderingServerEnvironmentSDFGIFramesToConverge = 6
)

type RenderingServerEnvironmentSDFGIFramesToUpdateLight

type RenderingServerEnvironmentSDFGIFramesToUpdateLight = classdb.RenderingServerEnvironmentSDFGIFramesToUpdateLight
const (
	/*Update indirect light from dynamic lights in SDFGI over 1 frame. This is the most responsive, but has the highest GPU requirements.*/
	RenderingServerEnvSdfgiUpdateLightIn1Frame RenderingServerEnvironmentSDFGIFramesToUpdateLight = 0
	/*Update indirect light from dynamic lights in SDFGI over 2 frames.*/
	RenderingServerEnvSdfgiUpdateLightIn2Frames RenderingServerEnvironmentSDFGIFramesToUpdateLight = 1
	/*Update indirect light from dynamic lights in SDFGI over 4 frames.*/
	RenderingServerEnvSdfgiUpdateLightIn4Frames RenderingServerEnvironmentSDFGIFramesToUpdateLight = 2
	/*Update indirect light from dynamic lights in SDFGI over 8 frames.*/
	RenderingServerEnvSdfgiUpdateLightIn8Frames RenderingServerEnvironmentSDFGIFramesToUpdateLight = 3
	/*Update indirect light from dynamic lights in SDFGI over 16 frames. This is the least responsive, but has the lowest GPU requirements.*/
	RenderingServerEnvSdfgiUpdateLightIn16Frames RenderingServerEnvironmentSDFGIFramesToUpdateLight = 4
	/*Represents the size of the [enum EnvironmentSDFGIFramesToUpdateLight] enum.*/
	RenderingServerEnvSdfgiUpdateLightMax RenderingServerEnvironmentSDFGIFramesToUpdateLight = 5
)

type RenderingServerEnvironmentSDFGIRayCount

type RenderingServerEnvironmentSDFGIRayCount = classdb.RenderingServerEnvironmentSDFGIRayCount
const (
	/*Throw 4 rays per frame when converging SDFGI. This has the lowest GPU requirements, but creates the most noisy result.*/
	RenderingServerEnvSdfgiRayCount4 RenderingServerEnvironmentSDFGIRayCount = 0
	/*Throw 8 rays per frame when converging SDFGI.*/
	RenderingServerEnvSdfgiRayCount8 RenderingServerEnvironmentSDFGIRayCount = 1
	/*Throw 16 rays per frame when converging SDFGI.*/
	RenderingServerEnvSdfgiRayCount16 RenderingServerEnvironmentSDFGIRayCount = 2
	/*Throw 32 rays per frame when converging SDFGI.*/
	RenderingServerEnvSdfgiRayCount32 RenderingServerEnvironmentSDFGIRayCount = 3
	/*Throw 64 rays per frame when converging SDFGI.*/
	RenderingServerEnvSdfgiRayCount64 RenderingServerEnvironmentSDFGIRayCount = 4
	/*Throw 96 rays per frame when converging SDFGI. This has high GPU requirements.*/
	RenderingServerEnvSdfgiRayCount96 RenderingServerEnvironmentSDFGIRayCount = 5
	/*Throw 128 rays per frame when converging SDFGI. This has very high GPU requirements, but creates the least noisy result.*/
	RenderingServerEnvSdfgiRayCount128 RenderingServerEnvironmentSDFGIRayCount = 6
	/*Represents the size of the [enum EnvironmentSDFGIRayCount] enum.*/
	RenderingServerEnvSdfgiRayCountMax RenderingServerEnvironmentSDFGIRayCount = 7
)

type RenderingServerEnvironmentSDFGIYScale

type RenderingServerEnvironmentSDFGIYScale = classdb.RenderingServerEnvironmentSDFGIYScale
const (
	/*Use 50% scale for SDFGI on the Y (vertical) axis. SDFGI cells will be twice as short as they are wide. This allows providing increased GI detail and reduced light leaking with thin floors and ceilings. This is usually the best choice for scenes that don't feature much verticality.*/
	RenderingServerEnvSdfgiYScale50Percent RenderingServerEnvironmentSDFGIYScale = 0
	/*Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales.*/
	RenderingServerEnvSdfgiYScale75Percent RenderingServerEnvironmentSDFGIYScale = 1
	/*Use 100% scale for SDFGI on the Y (vertical) axis. SDFGI cells will be as tall as they are wide. This is usually the best choice for highly vertical scenes. The downside is that light leaking may become more noticeable with thin floors and ceilings.*/
	RenderingServerEnvSdfgiYScale100Percent RenderingServerEnvironmentSDFGIYScale = 2
)

type RenderingServerEnvironmentSSAOQuality

type RenderingServerEnvironmentSSAOQuality = classdb.RenderingServerEnvironmentSSAOQuality
const (
	/*Lowest quality of screen-space ambient occlusion.*/
	RenderingServerEnvSsaoQualityVeryLow RenderingServerEnvironmentSSAOQuality = 0
	/*Low quality screen-space ambient occlusion.*/
	RenderingServerEnvSsaoQualityLow RenderingServerEnvironmentSSAOQuality = 1
	/*Medium quality screen-space ambient occlusion.*/
	RenderingServerEnvSsaoQualityMedium RenderingServerEnvironmentSSAOQuality = 2
	/*High quality screen-space ambient occlusion.*/
	RenderingServerEnvSsaoQualityHigh RenderingServerEnvironmentSSAOQuality = 3
	/*Highest quality screen-space ambient occlusion. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.*/
	RenderingServerEnvSsaoQualityUltra RenderingServerEnvironmentSSAOQuality = 4
)

type RenderingServerEnvironmentSSILQuality

type RenderingServerEnvironmentSSILQuality = classdb.RenderingServerEnvironmentSSILQuality
const (
	/*Lowest quality of screen-space indirect lighting.*/
	RenderingServerEnvSsilQualityVeryLow RenderingServerEnvironmentSSILQuality = 0
	/*Low quality screen-space indirect lighting.*/
	RenderingServerEnvSsilQualityLow RenderingServerEnvironmentSSILQuality = 1
	/*High quality screen-space indirect lighting.*/
	RenderingServerEnvSsilQualityMedium RenderingServerEnvironmentSSILQuality = 2
	/*High quality screen-space indirect lighting.*/
	RenderingServerEnvSsilQualityHigh RenderingServerEnvironmentSSILQuality = 3
	/*Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.*/
	RenderingServerEnvSsilQualityUltra RenderingServerEnvironmentSSILQuality = 4
)

type RenderingServerEnvironmentSSRRoughnessQuality

type RenderingServerEnvironmentSSRRoughnessQuality = classdb.RenderingServerEnvironmentSSRRoughnessQuality
const (
	/*Lowest quality of roughness filter for screen-space reflections. Rough materials will not have blurrier screen-space reflections compared to smooth (non-rough) materials. This is the fastest option.*/
	RenderingServerEnvSsrRoughnessQualityDisabled RenderingServerEnvironmentSSRRoughnessQuality = 0
	/*Low quality of roughness filter for screen-space reflections.*/
	RenderingServerEnvSsrRoughnessQualityLow RenderingServerEnvironmentSSRRoughnessQuality = 1
	/*Medium quality of roughness filter for screen-space reflections.*/
	RenderingServerEnvSsrRoughnessQualityMedium RenderingServerEnvironmentSSRRoughnessQuality = 2
	/*High quality of roughness filter for screen-space reflections. This is the slowest option.*/
	RenderingServerEnvSsrRoughnessQualityHigh RenderingServerEnvironmentSSRRoughnessQuality = 3
)

type RenderingServerEnvironmentToneMapper

type RenderingServerEnvironmentToneMapper = classdb.RenderingServerEnvironmentToneMapper
const (
	/*Output color as they came in. This can cause bright lighting to look blown out, with noticeable clipping in the output colors.*/
	RenderingServerEnvToneMapperLinear RenderingServerEnvironmentToneMapper = 0
	/*Use the Reinhard tonemapper. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code]. This avoids clipping bright highlights, but the resulting image can look a bit dull.*/
	RenderingServerEnvToneMapperReinhard RenderingServerEnvironmentToneMapper = 1
	/*Use the filmic tonemapper. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than [constant ENV_TONE_MAPPER_REINHARD].*/
	RenderingServerEnvToneMapperFilmic RenderingServerEnvironmentToneMapper = 2
	/*Use the Academy Color Encoding System tonemapper. ACES is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. ACES typically has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] and [constant ENV_TONE_MAPPER_FILMIC].
	  [b]Note:[/b] This tonemapping operator is called "ACES Fitted" in Godot 3.x.*/
	RenderingServerEnvToneMapperAces RenderingServerEnvironmentToneMapper = 3
)

type RenderingServerFeatures

type RenderingServerFeatures = classdb.RenderingServerFeatures
const (
	/*Hardware supports shaders. This enum is currently unused in Godot 3.x.*/
	RenderingServerFeatureShaders RenderingServerFeatures = 0
	/*Hardware supports multithreading. This enum is currently unused in Godot 3.x.*/
	RenderingServerFeatureMultithreaded RenderingServerFeatures = 1
)

type RenderingServerFogVolumeShape

type RenderingServerFogVolumeShape = classdb.RenderingServerFogVolumeShape
const (
	/*[FogVolume] will be shaped like an ellipsoid (stretched sphere).*/
	RenderingServerFogVolumeShapeEllipsoid RenderingServerFogVolumeShape = 0
	/*[FogVolume] will be shaped like a cone pointing upwards (in local coordinates). The cone's angle is set automatically to fill the size. The cone will be adjusted to fit within the size. Rotate the [FogVolume] node to reorient the cone. Non-uniform scaling via size is not supported (scale the [FogVolume] node instead).*/
	RenderingServerFogVolumeShapeCone RenderingServerFogVolumeShape = 1
	/*[FogVolume] will be shaped like an upright cylinder (in local coordinates). Rotate the [FogVolume] node to reorient the cylinder. The cylinder will be adjusted to fit within the size. Non-uniform scaling via size is not supported (scale the [FogVolume] node instead).*/
	RenderingServerFogVolumeShapeCylinder RenderingServerFogVolumeShape = 2
	/*[FogVolume] will be shaped like a box.*/
	RenderingServerFogVolumeShapeBox RenderingServerFogVolumeShape = 3
	/*[FogVolume] will have no shape, will cover the whole world and will not be culled.*/
	RenderingServerFogVolumeShapeWorld RenderingServerFogVolumeShape = 4
	/*Represents the size of the [enum FogVolumeShape] enum.*/
	RenderingServerFogVolumeShapeMax RenderingServerFogVolumeShape = 5
)

type RenderingServerGlobalShaderParameterType

type RenderingServerGlobalShaderParameterType = classdb.RenderingServerGlobalShaderParameterType
const (
	/*Boolean global shader parameter ([code]global uniform bool ...[/code]).*/
	RenderingServerGlobalVarTypeBool RenderingServerGlobalShaderParameterType = 0
	/*2-dimensional boolean vector global shader parameter ([code]global uniform bvec2 ...[/code]).*/
	RenderingServerGlobalVarTypeBvec2 RenderingServerGlobalShaderParameterType = 1
	/*3-dimensional boolean vector global shader parameter ([code]global uniform bvec3 ...[/code]).*/
	RenderingServerGlobalVarTypeBvec3 RenderingServerGlobalShaderParameterType = 2
	/*4-dimensional boolean vector global shader parameter ([code]global uniform bvec4 ...[/code]).*/
	RenderingServerGlobalVarTypeBvec4 RenderingServerGlobalShaderParameterType = 3
	/*Integer global shader parameter ([code]global uniform int ...[/code]).*/
	RenderingServerGlobalVarTypeInt RenderingServerGlobalShaderParameterType = 4
	/*2-dimensional integer vector global shader parameter ([code]global uniform ivec2 ...[/code]).*/
	RenderingServerGlobalVarTypeIvec2 RenderingServerGlobalShaderParameterType = 5
	/*3-dimensional integer vector global shader parameter ([code]global uniform ivec3 ...[/code]).*/
	RenderingServerGlobalVarTypeIvec3 RenderingServerGlobalShaderParameterType = 6
	/*4-dimensional integer vector global shader parameter ([code]global uniform ivec4 ...[/code]).*/
	RenderingServerGlobalVarTypeIvec4 RenderingServerGlobalShaderParameterType = 7
	/*2-dimensional integer rectangle global shader parameter ([code]global uniform ivec4 ...[/code]). Equivalent to [constant GLOBAL_VAR_TYPE_IVEC4] in shader code, but exposed as a [Rect2i] in the editor UI.*/
	RenderingServerGlobalVarTypeRect2i RenderingServerGlobalShaderParameterType = 8
	/*Unsigned integer global shader parameter ([code]global uniform uint ...[/code]).*/
	RenderingServerGlobalVarTypeUint RenderingServerGlobalShaderParameterType = 9
	/*2-dimensional unsigned integer vector global shader parameter ([code]global uniform uvec2 ...[/code]).*/
	RenderingServerGlobalVarTypeUvec2 RenderingServerGlobalShaderParameterType = 10
	/*3-dimensional unsigned integer vector global shader parameter ([code]global uniform uvec3 ...[/code]).*/
	RenderingServerGlobalVarTypeUvec3 RenderingServerGlobalShaderParameterType = 11
	/*4-dimensional unsigned integer vector global shader parameter ([code]global uniform uvec4 ...[/code]).*/
	RenderingServerGlobalVarTypeUvec4 RenderingServerGlobalShaderParameterType = 12
	/*Single-precision floating-point global shader parameter ([code]global uniform float ...[/code]).*/
	RenderingServerGlobalVarTypeFloat RenderingServerGlobalShaderParameterType = 13
	/*2-dimensional floating-point vector global shader parameter ([code]global uniform vec2 ...[/code]).*/
	RenderingServerGlobalVarTypeVec2 RenderingServerGlobalShaderParameterType = 14
	/*3-dimensional floating-point vector global shader parameter ([code]global uniform vec3 ...[/code]).*/
	RenderingServerGlobalVarTypeVec3 RenderingServerGlobalShaderParameterType = 15
	/*4-dimensional floating-point vector global shader parameter ([code]global uniform vec4 ...[/code]).*/
	RenderingServerGlobalVarTypeVec4 RenderingServerGlobalShaderParameterType = 16
	/*Color global shader parameter ([code]global uniform vec4 ...[/code]). Equivalent to [constant GLOBAL_VAR_TYPE_VEC4] in shader code, but exposed as a [Color] in the editor UI.*/
	RenderingServerGlobalVarTypeColor RenderingServerGlobalShaderParameterType = 17
	/*2-dimensional floating-point rectangle global shader parameter ([code]global uniform vec4 ...[/code]). Equivalent to [constant GLOBAL_VAR_TYPE_VEC4] in shader code, but exposed as a [Rect2] in the editor UI.*/
	RenderingServerGlobalVarTypeRect2 RenderingServerGlobalShaderParameterType = 18
	/*2×2 matrix global shader parameter ([code]global uniform mat2 ...[/code]). Exposed as a [PackedInt32Array] in the editor UI.*/
	RenderingServerGlobalVarTypeMat2 RenderingServerGlobalShaderParameterType = 19
	/*3×3 matrix global shader parameter ([code]global uniform mat3 ...[/code]). Exposed as a [Basis] in the editor UI.*/
	RenderingServerGlobalVarTypeMat3 RenderingServerGlobalShaderParameterType = 20
	/*4×4 matrix global shader parameter ([code]global uniform mat4 ...[/code]). Exposed as a [Projection] in the editor UI.*/
	RenderingServerGlobalVarTypeMat4 RenderingServerGlobalShaderParameterType = 21
	/*2-dimensional transform global shader parameter ([code]global uniform mat2x3 ...[/code]). Exposed as a [Transform2D] in the editor UI.*/
	RenderingServerGlobalVarTypeTransform2d RenderingServerGlobalShaderParameterType = 22
	/*3-dimensional transform global shader parameter ([code]global uniform mat3x4 ...[/code]). Exposed as a [Transform3D] in the editor UI.*/
	RenderingServerGlobalVarTypeTransform RenderingServerGlobalShaderParameterType = 23
	/*2D sampler global shader parameter ([code]global uniform sampler2D ...[/code]). Exposed as a [Texture2D] in the editor UI.*/
	RenderingServerGlobalVarTypeSampler2d RenderingServerGlobalShaderParameterType = 24
	/*2D sampler array global shader parameter ([code]global uniform sampler2DArray ...[/code]). Exposed as a [Texture2DArray] in the editor UI.*/
	RenderingServerGlobalVarTypeSampler2darray RenderingServerGlobalShaderParameterType = 25
	/*3D sampler global shader parameter ([code]global uniform sampler3D ...[/code]). Exposed as a [Texture3D] in the editor UI.*/
	RenderingServerGlobalVarTypeSampler3d RenderingServerGlobalShaderParameterType = 26
	/*Cubemap sampler global shader parameter ([code]global uniform samplerCube ...[/code]). Exposed as a [Cubemap] in the editor UI.*/
	RenderingServerGlobalVarTypeSamplercube RenderingServerGlobalShaderParameterType = 27
	/*Represents the size of the [enum GlobalShaderParameterType] enum.*/
	RenderingServerGlobalVarTypeMax RenderingServerGlobalShaderParameterType = 28
)

type RenderingServerInstanceFlags

type RenderingServerInstanceFlags = classdb.RenderingServerInstanceFlags
const (
	/*Allows the instance to be used in baked lighting.*/
	RenderingServerInstanceFlagUseBakedLight RenderingServerInstanceFlags = 0
	/*Allows the instance to be used with dynamic global illumination.*/
	RenderingServerInstanceFlagUseDynamicGi RenderingServerInstanceFlags = 1
	/*When set, manually requests to draw geometry on next frame.*/
	RenderingServerInstanceFlagDrawNextFrameIfVisible RenderingServerInstanceFlags = 2
	/*Always draw, even if the instance would be culled by occlusion culling. Does not affect view frustum culling.*/
	RenderingServerInstanceFlagIgnoreOcclusionCulling RenderingServerInstanceFlags = 3
	/*Represents the size of the [enum InstanceFlags] enum.*/
	RenderingServerInstanceFlagMax RenderingServerInstanceFlags = 4
)

type RenderingServerInstanceType

type RenderingServerInstanceType = classdb.RenderingServerInstanceType
const (
	/*The instance does not have a type.*/
	RenderingServerInstanceNone RenderingServerInstanceType = 0
	/*The instance is a mesh.*/
	RenderingServerInstanceMesh RenderingServerInstanceType = 1
	/*The instance is a multimesh.*/
	RenderingServerInstanceMultimesh RenderingServerInstanceType = 2
	/*The instance is a particle emitter.*/
	RenderingServerInstanceParticles RenderingServerInstanceType = 3
	/*The instance is a GPUParticles collision shape.*/
	RenderingServerInstanceParticlesCollision RenderingServerInstanceType = 4
	/*The instance is a light.*/
	RenderingServerInstanceLight RenderingServerInstanceType = 5
	/*The instance is a reflection probe.*/
	RenderingServerInstanceReflectionProbe RenderingServerInstanceType = 6
	/*The instance is a decal.*/
	RenderingServerInstanceDecal RenderingServerInstanceType = 7
	/*The instance is a VoxelGI.*/
	RenderingServerInstanceVoxelGi RenderingServerInstanceType = 8
	/*The instance is a lightmap.*/
	RenderingServerInstanceLightmap RenderingServerInstanceType = 9
	/*The instance is an occlusion culling occluder.*/
	RenderingServerInstanceOccluder RenderingServerInstanceType = 10
	/*The instance is a visible on-screen notifier.*/
	RenderingServerInstanceVisiblityNotifier RenderingServerInstanceType = 11
	/*The instance is a fog volume.*/
	RenderingServerInstanceFogVolume RenderingServerInstanceType = 12
	/*Represents the size of the [enum InstanceType] enum.*/
	RenderingServerInstanceMax RenderingServerInstanceType = 13
	/*A combination of the flags of geometry instances (mesh, multimesh, immediate and particles).*/
	RenderingServerInstanceGeometryMask RenderingServerInstanceType = 14
)

type RenderingServerLightBakeMode

type RenderingServerLightBakeMode = classdb.RenderingServerLightBakeMode
const (
	/*Light is ignored when baking. This is the fastest mode, but the light will be taken into account when baking global illumination. This mode should generally be used for dynamic lights that change quickly, as the effect of global illumination is less noticeable on those lights.*/
	RenderingServerLightBakeDisabled RenderingServerLightBakeMode = 0
	/*Light is taken into account in static baking ([VoxelGI], [LightmapGI], SDFGI ([member Environment.sdfgi_enabled])). The light can be moved around or modified, but its global illumination will not update in real-time. This is suitable for subtle changes (such as flickering torches), but generally not large changes such as toggling a light on and off.*/
	RenderingServerLightBakeStatic RenderingServerLightBakeMode = 1
	/*Light is taken into account in dynamic baking ([VoxelGI] and SDFGI ([member Environment.sdfgi_enabled]) only). The light can be moved around or modified with global illumination updating in real-time. The light's global illumination appearance will be slightly different compared to [constant LIGHT_BAKE_STATIC]. This has a greater performance cost compared to [constant LIGHT_BAKE_STATIC]. When using SDFGI, the update speed of dynamic lights is affected by [member ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights].*/
	RenderingServerLightBakeDynamic RenderingServerLightBakeMode = 2
)

type RenderingServerLightDirectionalShadowMode

type RenderingServerLightDirectionalShadowMode = classdb.RenderingServerLightDirectionalShadowMode
const (
	/*Use orthogonal shadow projection for directional light.*/
	RenderingServerLightDirectionalShadowOrthogonal RenderingServerLightDirectionalShadowMode = 0
	/*Use 2 splits for shadow projection when using directional light.*/
	RenderingServerLightDirectionalShadowParallel2Splits RenderingServerLightDirectionalShadowMode = 1
	/*Use 4 splits for shadow projection when using directional light.*/
	RenderingServerLightDirectionalShadowParallel4Splits RenderingServerLightDirectionalShadowMode = 2
)

type RenderingServerLightDirectionalSkyMode

type RenderingServerLightDirectionalSkyMode = classdb.RenderingServerLightDirectionalSkyMode
const (
	/*Use DirectionalLight3D in both sky rendering and scene lighting.*/
	RenderingServerLightDirectionalSkyModeLightAndSky RenderingServerLightDirectionalSkyMode = 0
	/*Only use DirectionalLight3D in scene lighting.*/
	RenderingServerLightDirectionalSkyModeLightOnly RenderingServerLightDirectionalSkyMode = 1
	/*Only use DirectionalLight3D in sky rendering.*/
	RenderingServerLightDirectionalSkyModeSkyOnly RenderingServerLightDirectionalSkyMode = 2
)

type RenderingServerLightOmniShadowMode

type RenderingServerLightOmniShadowMode = classdb.RenderingServerLightOmniShadowMode
const (
	/*Use a dual paraboloid shadow map for omni lights.*/
	RenderingServerLightOmniShadowDualParaboloid RenderingServerLightOmniShadowMode = 0
	/*Use a cubemap shadow map for omni lights. Slower but better quality than dual paraboloid.*/
	RenderingServerLightOmniShadowCube RenderingServerLightOmniShadowMode = 1
)

type RenderingServerLightParam

type RenderingServerLightParam = classdb.RenderingServerLightParam
const (
	/*The light's energy multiplier.*/
	RenderingServerLightParamEnergy RenderingServerLightParam = 0
	/*The light's indirect energy multiplier (final indirect energy is [constant LIGHT_PARAM_ENERGY] * [constant LIGHT_PARAM_INDIRECT_ENERGY]).*/
	RenderingServerLightParamIndirectEnergy RenderingServerLightParam = 1
	/*The light's volumetric fog energy multiplier (final volumetric fog energy is [constant LIGHT_PARAM_ENERGY] * [constant LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY]).*/
	RenderingServerLightParamVolumetricFogEnergy RenderingServerLightParam = 2
	/*The light's influence on specularity.*/
	RenderingServerLightParamSpecular RenderingServerLightParam = 3
	/*The light's range.*/
	RenderingServerLightParamRange RenderingServerLightParam = 4
	/*The size of the light when using spot light or omni light. The angular size of the light when using directional light.*/
	RenderingServerLightParamSize RenderingServerLightParam = 5
	/*The light's attenuation.*/
	RenderingServerLightParamAttenuation RenderingServerLightParam = 6
	/*The spotlight's angle.*/
	RenderingServerLightParamSpotAngle RenderingServerLightParam = 7
	/*The spotlight's attenuation.*/
	RenderingServerLightParamSpotAttenuation RenderingServerLightParam = 8
	/*The maximum distance for shadow splits. Increasing this value will make directional shadows visible from further away, at the cost of lower overall shadow detail and performance (since more objects need to be included in the directional shadow rendering).*/
	RenderingServerLightParamShadowMaxDistance RenderingServerLightParam = 9
	/*Proportion of shadow atlas occupied by the first split.*/
	RenderingServerLightParamShadowSplit1Offset RenderingServerLightParam = 10
	/*Proportion of shadow atlas occupied by the second split.*/
	RenderingServerLightParamShadowSplit2Offset RenderingServerLightParam = 11
	/*Proportion of shadow atlas occupied by the third split. The fourth split occupies the rest.*/
	RenderingServerLightParamShadowSplit3Offset RenderingServerLightParam = 12
	/*Proportion of shadow max distance where the shadow will start to fade out.*/
	RenderingServerLightParamShadowFadeStart RenderingServerLightParam = 13
	/*Normal bias used to offset shadow lookup by object normal. Can be used to fix self-shadowing artifacts.*/
	RenderingServerLightParamShadowNormalBias RenderingServerLightParam = 14
	/*Bias the shadow lookup to fix self-shadowing artifacts.*/
	RenderingServerLightParamShadowBias RenderingServerLightParam = 15
	/*Sets the size of the directional shadow pancake. The pancake offsets the start of the shadow's camera frustum to provide a higher effective depth resolution for the shadow. However, a high pancake size can cause artifacts in the shadows of large objects that are close to the edge of the frustum. Reducing the pancake size can help. Setting the size to [code]0[/code] turns off the pancaking effect.*/
	RenderingServerLightParamShadowPancakeSize RenderingServerLightParam = 16
	/*The light's shadow opacity. Values lower than [code]1.0[/code] make the light appear through shadows. This can be used to fake global illumination at a low performance cost.*/
	RenderingServerLightParamShadowOpacity RenderingServerLightParam = 17
	/*Blurs the edges of the shadow. Can be used to hide pixel artifacts in low resolution shadow maps. A high value can make shadows appear grainy and can cause other unwanted artifacts. Try to keep as near default as possible.*/
	RenderingServerLightParamShadowBlur        RenderingServerLightParam = 18
	RenderingServerLightParamTransmittanceBias RenderingServerLightParam = 19
	/*Constant representing the intensity of the light, measured in Lumens when dealing with a [SpotLight3D] or [OmniLight3D], or measured in Lux with a [DirectionalLight3D]. Only used when [member ProjectSettings.rendering/lights_and_shadows/use_physical_light_units] is [code]true[/code].*/
	RenderingServerLightParamIntensity RenderingServerLightParam = 20
	/*Represents the size of the [enum LightParam] enum.*/
	RenderingServerLightParamMax RenderingServerLightParam = 21
)

type RenderingServerLightProjectorFilter

type RenderingServerLightProjectorFilter = classdb.RenderingServerLightProjectorFilter
const (
	/*Nearest-neighbor filter for light projectors (use for pixel art light projectors). No mipmaps are used for rendering, which means light projectors at a distance will look sharp but grainy. This has roughly the same performance cost as using mipmaps.*/
	RenderingServerLightProjectorFilterNearest RenderingServerLightProjectorFilter = 0
	/*Linear filter for light projectors (use for non-pixel art light projectors). No mipmaps are used for rendering, which means light projectors at a distance will look smooth but blurry. This has roughly the same performance cost as using mipmaps.*/
	RenderingServerLightProjectorFilterLinear RenderingServerLightProjectorFilter = 1
	/*Nearest-neighbor filter for light projectors (use for pixel art light projectors). Isotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.*/
	RenderingServerLightProjectorFilterNearestMipmaps RenderingServerLightProjectorFilter = 2
	/*Linear filter for light projectors (use for non-pixel art light projectors). Isotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth but blurry. This has roughly the same performance cost as not using mipmaps.*/
	RenderingServerLightProjectorFilterLinearMipmaps RenderingServerLightProjectorFilter = 3
	/*Nearest-neighbor filter for light projectors (use for pixel art light projectors). Anisotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].*/
	RenderingServerLightProjectorFilterNearestMipmapsAnisotropic RenderingServerLightProjectorFilter = 4
	/*Linear filter for light projectors (use for non-pixel art light projectors). Anisotropic mipmaps are used for rendering, which means light projectors at a distance will look smooth and sharp when viewed from oblique angles. This looks better compared to isotropic mipmaps, but is slower. The level of anisotropic filtering is defined by [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].*/
	RenderingServerLightProjectorFilterLinearMipmapsAnisotropic RenderingServerLightProjectorFilter = 5
)

type RenderingServerLightType

type RenderingServerLightType = classdb.RenderingServerLightType
const (
	/*Directional (sun/moon) light (see [DirectionalLight3D]).*/
	RenderingServerLightDirectional RenderingServerLightType = 0
	/*Omni light (see [OmniLight3D]).*/
	RenderingServerLightOmni RenderingServerLightType = 1
	/*Spot light (see [SpotLight3D]).*/
	RenderingServerLightSpot RenderingServerLightType = 2
)

type RenderingServerMultimeshTransformFormat

type RenderingServerMultimeshTransformFormat = classdb.RenderingServerMultimeshTransformFormat
const (
	/*Use [Transform2D] to store MultiMesh transform.*/
	RenderingServerMultimeshTransform2d RenderingServerMultimeshTransformFormat = 0
	/*Use [Transform3D] to store MultiMesh transform.*/
	RenderingServerMultimeshTransform3d RenderingServerMultimeshTransformFormat = 1
)

type RenderingServerNinePatchAxisMode

type RenderingServerNinePatchAxisMode = classdb.RenderingServerNinePatchAxisMode
const (
	/*The nine patch gets stretched where needed.*/
	RenderingServerNinePatchStretch RenderingServerNinePatchAxisMode = 0
	/*The nine patch gets filled with tiles where needed.*/
	RenderingServerNinePatchTile RenderingServerNinePatchAxisMode = 1
	/*The nine patch gets filled with tiles where needed and stretches them a bit if needed.*/
	RenderingServerNinePatchTileFit RenderingServerNinePatchAxisMode = 2
)

type RenderingServerParticlesCollisionHeightfieldResolution

type RenderingServerParticlesCollisionHeightfieldResolution = classdb.RenderingServerParticlesCollisionHeightfieldResolution
const (
	RenderingServerParticlesCollisionHeightfieldResolution256  RenderingServerParticlesCollisionHeightfieldResolution = 0
	RenderingServerParticlesCollisionHeightfieldResolution512  RenderingServerParticlesCollisionHeightfieldResolution = 1
	RenderingServerParticlesCollisionHeightfieldResolution1024 RenderingServerParticlesCollisionHeightfieldResolution = 2
	RenderingServerParticlesCollisionHeightfieldResolution2048 RenderingServerParticlesCollisionHeightfieldResolution = 3
	RenderingServerParticlesCollisionHeightfieldResolution4096 RenderingServerParticlesCollisionHeightfieldResolution = 4
	RenderingServerParticlesCollisionHeightfieldResolution8192 RenderingServerParticlesCollisionHeightfieldResolution = 5
	/*Represents the size of the [enum ParticlesCollisionHeightfieldResolution] enum.*/
	RenderingServerParticlesCollisionHeightfieldResolutionMax RenderingServerParticlesCollisionHeightfieldResolution = 6
)

type RenderingServerParticlesCollisionType

type RenderingServerParticlesCollisionType = classdb.RenderingServerParticlesCollisionType
const (
	RenderingServerParticlesCollisionTypeSphereAttract      RenderingServerParticlesCollisionType = 0
	RenderingServerParticlesCollisionTypeBoxAttract         RenderingServerParticlesCollisionType = 1
	RenderingServerParticlesCollisionTypeVectorFieldAttract RenderingServerParticlesCollisionType = 2
	RenderingServerParticlesCollisionTypeSphereCollide      RenderingServerParticlesCollisionType = 3
	RenderingServerParticlesCollisionTypeBoxCollide         RenderingServerParticlesCollisionType = 4
	RenderingServerParticlesCollisionTypeSdfCollide         RenderingServerParticlesCollisionType = 5
	RenderingServerParticlesCollisionTypeHeightfieldCollide RenderingServerParticlesCollisionType = 6
)

type RenderingServerParticlesDrawOrder

type RenderingServerParticlesDrawOrder = classdb.RenderingServerParticlesDrawOrder
const (
	/*Draw particles in the order that they appear in the particles array.*/
	RenderingServerParticlesDrawOrderIndex RenderingServerParticlesDrawOrder = 0
	/*Sort particles based on their lifetime. In other words, the particle with the highest lifetime is drawn at the front.*/
	RenderingServerParticlesDrawOrderLifetime RenderingServerParticlesDrawOrder = 1
	/*Sort particles based on the inverse of their lifetime. In other words, the particle with the lowest lifetime is drawn at the front.*/
	RenderingServerParticlesDrawOrderReverseLifetime RenderingServerParticlesDrawOrder = 2
	/*Sort particles based on their distance to the camera.*/
	RenderingServerParticlesDrawOrderViewDepth RenderingServerParticlesDrawOrder = 3
)

type RenderingServerParticlesMode

type RenderingServerParticlesMode = classdb.RenderingServerParticlesMode
const (
	/*2D particles.*/
	RenderingServerParticlesMode2d RenderingServerParticlesMode = 0
	/*3D particles.*/
	RenderingServerParticlesMode3d RenderingServerParticlesMode = 1
)

type RenderingServerParticlesTransformAlign

type RenderingServerParticlesTransformAlign = classdb.RenderingServerParticlesTransformAlign
const (
	RenderingServerParticlesTransformAlignDisabled              RenderingServerParticlesTransformAlign = 0
	RenderingServerParticlesTransformAlignZBillboard            RenderingServerParticlesTransformAlign = 1
	RenderingServerParticlesTransformAlignYToVelocity           RenderingServerParticlesTransformAlign = 2
	RenderingServerParticlesTransformAlignZBillboardYToVelocity RenderingServerParticlesTransformAlign = 3
)

type RenderingServerPrimitiveType

type RenderingServerPrimitiveType = classdb.RenderingServerPrimitiveType
const (
	/*Primitive to draw consists of points.*/
	RenderingServerPrimitivePoints RenderingServerPrimitiveType = 0
	/*Primitive to draw consists of lines.*/
	RenderingServerPrimitiveLines RenderingServerPrimitiveType = 1
	/*Primitive to draw consists of a line strip from start to end.*/
	RenderingServerPrimitiveLineStrip RenderingServerPrimitiveType = 2
	/*Primitive to draw consists of triangles.*/
	RenderingServerPrimitiveTriangles RenderingServerPrimitiveType = 3
	/*Primitive to draw consists of a triangle strip (the last 3 vertices are always combined to make a triangle).*/
	RenderingServerPrimitiveTriangleStrip RenderingServerPrimitiveType = 4
	/*Represents the size of the [enum PrimitiveType] enum.*/
	RenderingServerPrimitiveMax RenderingServerPrimitiveType = 5
)

type RenderingServerReflectionProbeAmbientMode

type RenderingServerReflectionProbeAmbientMode = classdb.RenderingServerReflectionProbeAmbientMode
const (
	/*Do not apply any ambient lighting inside the reflection probe's box defined by its size.*/
	RenderingServerReflectionProbeAmbientDisabled RenderingServerReflectionProbeAmbientMode = 0
	/*Apply automatically-sourced environment lighting inside the reflection probe's box defined by its size.*/
	RenderingServerReflectionProbeAmbientEnvironment RenderingServerReflectionProbeAmbientMode = 1
	/*Apply custom ambient lighting inside the reflection probe's box defined by its size. See [method reflection_probe_set_ambient_color] and [method reflection_probe_set_ambient_energy].*/
	RenderingServerReflectionProbeAmbientColor RenderingServerReflectionProbeAmbientMode = 2
)

type RenderingServerReflectionProbeUpdateMode

type RenderingServerReflectionProbeUpdateMode = classdb.RenderingServerReflectionProbeUpdateMode
const (
	/*Reflection probe will update reflections once and then stop.*/
	RenderingServerReflectionProbeUpdateOnce RenderingServerReflectionProbeUpdateMode = 0
	/*Reflection probe will update each frame. This mode is necessary to capture moving objects.*/
	RenderingServerReflectionProbeUpdateAlways RenderingServerReflectionProbeUpdateMode = 1
)

type RenderingServerRenderingInfo

type RenderingServerRenderingInfo = classdb.RenderingServerRenderingInfo
const (
	/*Number of objects rendered in the current 3D scene. This varies depending on camera position and rotation.*/
	RenderingServerRenderingInfoTotalObjectsInFrame RenderingServerRenderingInfo = 0
	/*Number of points, lines, or triangles rendered in the current 3D scene. This varies depending on camera position and rotation.*/
	RenderingServerRenderingInfoTotalPrimitivesInFrame RenderingServerRenderingInfo = 1
	/*Number of draw calls performed to render in the current 3D scene. This varies depending on camera position and rotation.*/
	RenderingServerRenderingInfoTotalDrawCallsInFrame RenderingServerRenderingInfo = 2
	/*Texture memory used (in bytes).*/
	RenderingServerRenderingInfoTextureMemUsed RenderingServerRenderingInfo = 3
	/*Buffer memory used (in bytes). This includes vertex data, uniform buffers, and many miscellaneous buffer types used internally.*/
	RenderingServerRenderingInfoBufferMemUsed RenderingServerRenderingInfo = 4
	/*Video memory used (in bytes). When using the Forward+ or mobile rendering backends, this is always greater than the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and [constant RENDERING_INFO_BUFFER_MEM_USED], since there is miscellaneous data not accounted for by those two metrics. When using the GL Compatibility backend, this is equal to the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and [constant RENDERING_INFO_BUFFER_MEM_USED].*/
	RenderingServerRenderingInfoVideoMemUsed RenderingServerRenderingInfo = 5
)

type RenderingServerShaderMode

type RenderingServerShaderMode = classdb.RenderingServerShaderMode
const (
	/*Shader is a 3D shader.*/
	RenderingServerShaderSpatial RenderingServerShaderMode = 0
	/*Shader is a 2D shader.*/
	RenderingServerShaderCanvasItem RenderingServerShaderMode = 1
	/*Shader is a particle shader (can be used in both 2D and 3D).*/
	RenderingServerShaderParticles RenderingServerShaderMode = 2
	/*Shader is a 3D sky shader.*/
	RenderingServerShaderSky RenderingServerShaderMode = 3
	/*Shader is a 3D fog shader.*/
	RenderingServerShaderFog RenderingServerShaderMode = 4
	/*Represents the size of the [enum ShaderMode] enum.*/
	RenderingServerShaderMax RenderingServerShaderMode = 5
)

type RenderingServerShadowCastingSetting

type RenderingServerShadowCastingSetting = classdb.RenderingServerShadowCastingSetting
const (
	/*Disable shadows from this instance.*/
	RenderingServerShadowCastingSettingOff RenderingServerShadowCastingSetting = 0
	/*Cast shadows from this instance.*/
	RenderingServerShadowCastingSettingOn RenderingServerShadowCastingSetting = 1
	/*Disable backface culling when rendering the shadow of the object. This is slightly slower but may result in more correct shadows.*/
	RenderingServerShadowCastingSettingDoubleSided RenderingServerShadowCastingSetting = 2
	/*Only render the shadows from the object. The object itself will not be drawn.*/
	RenderingServerShadowCastingSettingShadowsOnly RenderingServerShadowCastingSetting = 3
)

type RenderingServerShadowQuality

type RenderingServerShadowQuality = classdb.RenderingServerShadowQuality
const (
	/*Lowest shadow filtering quality (fastest). Soft shadows are not available with this quality setting, which means the [member Light3D.shadow_blur] property is ignored if [member Light3D.light_size] and [member Light3D.light_angular_distance] is [code]0.0[/code].
	  [b]Note:[/b] The variable shadow blur performed by [member Light3D.light_size] and [member Light3D.light_angular_distance] is still effective when using hard shadow filtering. In this case, [member Light3D.shadow_blur] [i]is[/i] taken into account. However, the results will not be blurred, instead the blur amount is treated as a maximum radius for the penumbra.*/
	RenderingServerShadowQualityHard RenderingServerShadowQuality = 0
	/*Very low shadow filtering quality (faster). When using this quality setting, [member Light3D.shadow_blur] is automatically multiplied by 0.75× to avoid introducing too much noise. This division only applies to lights whose [member Light3D.light_size] or [member Light3D.light_angular_distance] is [code]0.0[/code]).*/
	RenderingServerShadowQualitySoftVeryLow RenderingServerShadowQuality = 1
	/*Low shadow filtering quality (fast).*/
	RenderingServerShadowQualitySoftLow RenderingServerShadowQuality = 2
	/*Medium low shadow filtering quality (average).*/
	RenderingServerShadowQualitySoftMedium RenderingServerShadowQuality = 3
	/*High low shadow filtering quality (slow). When using this quality setting, [member Light3D.shadow_blur] is automatically multiplied by 1.5× to better make use of the high sample count. This increased blur also improves the stability of dynamic object shadows. This multiplier only applies to lights whose [member Light3D.light_size] or [member Light3D.light_angular_distance] is [code]0.0[/code]).*/
	RenderingServerShadowQualitySoftHigh RenderingServerShadowQuality = 4
	/*Highest low shadow filtering quality (slowest). When using this quality setting, [member Light3D.shadow_blur] is automatically multiplied by 2× to better make use of the high sample count. This increased blur also improves the stability of dynamic object shadows. This multiplier only applies to lights whose [member Light3D.light_size] or [member Light3D.light_angular_distance] is [code]0.0[/code]).*/
	RenderingServerShadowQualitySoftUltra RenderingServerShadowQuality = 5
	/*Represents the size of the [enum ShadowQuality] enum.*/
	RenderingServerShadowQualityMax RenderingServerShadowQuality = 6
)

type RenderingServerSkyMode

type RenderingServerSkyMode = classdb.RenderingServerSkyMode
const (
	/*Automatically selects the appropriate process mode based on your sky shader. If your shader uses [code]TIME[/code] or [code]POSITION[/code], this will use [constant SKY_MODE_REALTIME]. If your shader uses any of the [code]LIGHT_*[/code] variables or any custom uniforms, this uses [constant SKY_MODE_INCREMENTAL]. Otherwise, this defaults to [constant SKY_MODE_QUALITY].*/
	RenderingServerSkyModeAutomatic RenderingServerSkyMode = 0
	/*Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than [constant SKY_MODE_REALTIME] but takes much longer to generate. This should not be used if you plan on changing the sky at runtime. If you are finding that the reflection is not blurry enough and is showing sparkles or fireflies, try increasing [member ProjectSettings.rendering/reflections/sky_reflections/ggx_samples].*/
	RenderingServerSkyModeQuality RenderingServerSkyMode = 1
	/*Uses the same high quality importance sampling to process the radiance map as [constant SKY_MODE_QUALITY], but updates over several frames. The number of frames is determined by [member ProjectSettings.rendering/reflections/sky_reflections/roughness_layers]. Use this when you need highest quality radiance maps, but have a sky that updates slowly.*/
	RenderingServerSkyModeIncremental RenderingServerSkyMode = 2
	/*Uses the fast filtering algorithm to process the radiance map. In general this results in lower quality, but substantially faster run times. If you need better quality, but still need to update the sky every frame, consider turning on [member ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality].
	  [b]Note:[/b] The fast filtering algorithm is limited to 256×256 cubemaps, so [method sky_set_radiance_size] must be set to [code]256[/code]. Otherwise, a warning is printed and the overridden radiance size is ignored.*/
	RenderingServerSkyModeRealtime RenderingServerSkyMode = 3
)

type RenderingServerSubSurfaceScatteringQuality

type RenderingServerSubSurfaceScatteringQuality = classdb.RenderingServerSubSurfaceScatteringQuality
const (
	/*Disables subsurface scattering entirely, even on materials that have [member BaseMaterial3D.subsurf_scatter_enabled] set to [code]true[/code]. This has the lowest GPU requirements.*/
	RenderingServerSubSurfaceScatteringQualityDisabled RenderingServerSubSurfaceScatteringQuality = 0
	/*Low subsurface scattering quality.*/
	RenderingServerSubSurfaceScatteringQualityLow RenderingServerSubSurfaceScatteringQuality = 1
	/*Medium subsurface scattering quality.*/
	RenderingServerSubSurfaceScatteringQualityMedium RenderingServerSubSurfaceScatteringQuality = 2
	/*High subsurface scattering quality. This has the highest GPU requirements.*/
	RenderingServerSubSurfaceScatteringQualityHigh RenderingServerSubSurfaceScatteringQuality = 3
)

type RenderingServerTextureLayeredType

type RenderingServerTextureLayeredType = classdb.RenderingServerTextureLayeredType
const (
	/*Array of 2-dimensional textures (see [Texture2DArray]).*/
	RenderingServerTextureLayered2dArray RenderingServerTextureLayeredType = 0
	/*Cubemap texture (see [Cubemap]).*/
	RenderingServerTextureLayeredCubemap RenderingServerTextureLayeredType = 1
	/*Array of cubemap textures (see [CubemapArray]).*/
	RenderingServerTextureLayeredCubemapArray RenderingServerTextureLayeredType = 2
)

type RenderingServerViewportClearMode

type RenderingServerViewportClearMode = classdb.RenderingServerViewportClearMode
const (
	/*Always clear the viewport's render target before drawing.*/
	RenderingServerViewportClearAlways RenderingServerViewportClearMode = 0
	/*Never clear the viewport's render target.*/
	RenderingServerViewportClearNever RenderingServerViewportClearMode = 1
	/*Clear the viewport's render target on the next frame, then switch to [constant VIEWPORT_CLEAR_NEVER].*/
	RenderingServerViewportClearOnlyNextFrame RenderingServerViewportClearMode = 2
)

type RenderingServerViewportDebugDraw

type RenderingServerViewportDebugDraw = classdb.RenderingServerViewportDebugDraw
const (
	/*Debug draw is disabled. Default setting.*/
	RenderingServerViewportDebugDrawDisabled RenderingServerViewportDebugDraw = 0
	/*Objects are displayed without light information.*/
	RenderingServerViewportDebugDrawUnshaded RenderingServerViewportDebugDraw = 1
	/*Objects are displayed with only light information.*/
	RenderingServerViewportDebugDrawLighting RenderingServerViewportDebugDraw = 2
	/*Objects are displayed semi-transparent with additive blending so you can see where they are drawing over top of one another. A higher overdraw (represented by brighter colors) means you are wasting performance on drawing pixels that are being hidden behind others.
	  [b]Note:[/b] When using this debug draw mode, custom shaders will be ignored. This means vertex displacement won't be visible anymore.*/
	RenderingServerViewportDebugDrawOverdraw RenderingServerViewportDebugDraw = 3
	/*Debug draw draws objects in wireframe.*/
	RenderingServerViewportDebugDrawWireframe RenderingServerViewportDebugDraw = 4
	/*Normal buffer is drawn instead of regular scene so you can see the per-pixel normals that will be used by post-processing effects.*/
	RenderingServerViewportDebugDrawNormalBuffer RenderingServerViewportDebugDraw = 5
	/*Objects are displayed with only the albedo value from [VoxelGI]s.*/
	RenderingServerViewportDebugDrawVoxelGiAlbedo RenderingServerViewportDebugDraw = 6
	/*Objects are displayed with only the lighting value from [VoxelGI]s.*/
	RenderingServerViewportDebugDrawVoxelGiLighting RenderingServerViewportDebugDraw = 7
	/*Objects are displayed with only the emission color from [VoxelGI]s.*/
	RenderingServerViewportDebugDrawVoxelGiEmission RenderingServerViewportDebugDraw = 8
	/*Draws the shadow atlas that stores shadows from [OmniLight3D]s and [SpotLight3D]s in the upper left quadrant of the [Viewport].*/
	RenderingServerViewportDebugDrawShadowAtlas RenderingServerViewportDebugDraw = 9
	/*Draws the shadow atlas that stores shadows from [DirectionalLight3D]s in the upper left quadrant of the [Viewport].
	  The slice of the camera frustum related to the shadow map cascade is superimposed to visualize coverage. The color of each slice matches the colors used for [constant VIEWPORT_DEBUG_DRAW_PSSM_SPLITS]. When shadow cascades are blended the overlap is taken into account when drawing the frustum slices.
	  The last cascade shows all frustum slices to illustrate the coverage of all slices.*/
	RenderingServerViewportDebugDrawDirectionalShadowAtlas RenderingServerViewportDebugDraw = 10
	/*Draws the estimated scene luminance. This is a 1×1 texture that is generated when autoexposure is enabled to control the scene's exposure.*/
	RenderingServerViewportDebugDrawSceneLuminance RenderingServerViewportDebugDraw = 11
	/*Draws the screen space ambient occlusion texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssao_enabled] set in your [WorldEnvironment].*/
	RenderingServerViewportDebugDrawSsao RenderingServerViewportDebugDraw = 12
	/*Draws the screen space indirect lighting texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssil_enabled] set in your [WorldEnvironment].*/
	RenderingServerViewportDebugDrawSsil RenderingServerViewportDebugDraw = 13
	/*Colors each PSSM split for the [DirectionalLight3D]s in the scene a different color so you can see where the splits are. In order they will be colored red, green, blue, yellow.*/
	RenderingServerViewportDebugDrawPssmSplits RenderingServerViewportDebugDraw = 14
	/*Draws the decal atlas that stores decal textures from [Decal]s.*/
	RenderingServerViewportDebugDrawDecalAtlas RenderingServerViewportDebugDraw = 15
	/*Draws SDFGI cascade data. This is the data structure that is used to bounce lighting against and create reflections.*/
	RenderingServerViewportDebugDrawSdfgi RenderingServerViewportDebugDraw = 16
	/*Draws SDFGI probe data. This is the data structure that is used to give indirect lighting dynamic objects moving within the scene.*/
	RenderingServerViewportDebugDrawSdfgiProbes RenderingServerViewportDebugDraw = 17
	/*Draws the global illumination buffer ([VoxelGI] or SDFGI).*/
	RenderingServerViewportDebugDrawGiBuffer RenderingServerViewportDebugDraw = 18
	/*Disable mesh LOD. All meshes are drawn with full detail, which can be used to compare performance.*/
	RenderingServerViewportDebugDrawDisableLod RenderingServerViewportDebugDraw = 19
	/*Draws the [OmniLight3D] cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting.*/
	RenderingServerViewportDebugDrawClusterOmniLights RenderingServerViewportDebugDraw = 20
	/*Draws the [SpotLight3D] cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting.*/
	RenderingServerViewportDebugDrawClusterSpotLights RenderingServerViewportDebugDraw = 21
	/*Draws the [Decal] cluster. Clustering determines where decals are positioned in screen-space, which allows the engine to only process these portions of the screen for decals.*/
	RenderingServerViewportDebugDrawClusterDecals RenderingServerViewportDebugDraw = 22
	/*Draws the [ReflectionProbe] cluster. Clustering determines where reflection probes are positioned in screen-space, which allows the engine to only process these portions of the screen for reflection probes.*/
	RenderingServerViewportDebugDrawClusterReflectionProbes RenderingServerViewportDebugDraw = 23
	/*Draws the occlusion culling buffer. This low-resolution occlusion culling buffer is rasterized on the CPU and is used to check whether instances are occluded by other objects.*/
	RenderingServerViewportDebugDrawOccluders RenderingServerViewportDebugDraw = 24
	/*Draws the motion vectors buffer. This is used by temporal antialiasing to correct for motion that occurs during gameplay.*/
	RenderingServerViewportDebugDrawMotionVectors RenderingServerViewportDebugDraw = 25
	/*Internal buffer is drawn instead of regular scene so you can see the per-pixel output that will be used by post-processing effects.*/
	RenderingServerViewportDebugDrawInternalBuffer RenderingServerViewportDebugDraw = 26
)

type RenderingServerViewportEnvironmentMode

type RenderingServerViewportEnvironmentMode = classdb.RenderingServerViewportEnvironmentMode
const (
	/*Disable rendering of 3D environment over 2D canvas.*/
	RenderingServerViewportEnvironmentDisabled RenderingServerViewportEnvironmentMode = 0
	/*Enable rendering of 3D environment over 2D canvas.*/
	RenderingServerViewportEnvironmentEnabled RenderingServerViewportEnvironmentMode = 1
	/*Inherit enable/disable value from parent. If the topmost parent is also set to [constant VIEWPORT_ENVIRONMENT_INHERIT], then this has the same behavior as [constant VIEWPORT_ENVIRONMENT_ENABLED].*/
	RenderingServerViewportEnvironmentInherit RenderingServerViewportEnvironmentMode = 2
	/*Represents the size of the [enum ViewportEnvironmentMode] enum.*/
	RenderingServerViewportEnvironmentMax RenderingServerViewportEnvironmentMode = 3
)

type RenderingServerViewportMSAA

type RenderingServerViewportMSAA = classdb.RenderingServerViewportMSAA
const (
	/*Multisample antialiasing for 3D is disabled. This is the default value, and also the fastest setting.*/
	RenderingServerViewportMsaaDisabled RenderingServerViewportMSAA = 0
	/*Multisample antialiasing uses 2 samples per pixel for 3D. This has a moderate impact on performance.*/
	RenderingServerViewportMsaa2x RenderingServerViewportMSAA = 1
	/*Multisample antialiasing uses 4 samples per pixel for 3D. This has a high impact on performance.*/
	RenderingServerViewportMsaa4x RenderingServerViewportMSAA = 2
	/*Multisample antialiasing uses 8 samples per pixel for 3D. This has a very high impact on performance. Likely unsupported on low-end and older hardware.*/
	RenderingServerViewportMsaa8x RenderingServerViewportMSAA = 3
	/*Represents the size of the [enum ViewportMSAA] enum.*/
	RenderingServerViewportMsaaMax RenderingServerViewportMSAA = 4
)

type RenderingServerViewportOcclusionCullingBuildQuality

type RenderingServerViewportOcclusionCullingBuildQuality = classdb.RenderingServerViewportOcclusionCullingBuildQuality
const (
	/*Low occlusion culling BVH build quality (as defined by Embree). Results in the lowest CPU usage, but least effective culling.*/
	RenderingServerViewportOcclusionBuildQualityLow RenderingServerViewportOcclusionCullingBuildQuality = 0
	/*Medium occlusion culling BVH build quality (as defined by Embree).*/
	RenderingServerViewportOcclusionBuildQualityMedium RenderingServerViewportOcclusionCullingBuildQuality = 1
	/*High occlusion culling BVH build quality (as defined by Embree). Results in the highest CPU usage, but most effective culling.*/
	RenderingServerViewportOcclusionBuildQualityHigh RenderingServerViewportOcclusionCullingBuildQuality = 2
)

type RenderingServerViewportRenderInfo

type RenderingServerViewportRenderInfo = classdb.RenderingServerViewportRenderInfo
const (
	/*Number of objects drawn in a single frame.*/
	RenderingServerViewportRenderInfoObjectsInFrame RenderingServerViewportRenderInfo = 0
	/*Number of points, lines, or triangles drawn in a single frame.*/
	RenderingServerViewportRenderInfoPrimitivesInFrame RenderingServerViewportRenderInfo = 1
	/*Number of draw calls during this frame.*/
	RenderingServerViewportRenderInfoDrawCallsInFrame RenderingServerViewportRenderInfo = 2
	/*Represents the size of the [enum ViewportRenderInfo] enum.*/
	RenderingServerViewportRenderInfoMax RenderingServerViewportRenderInfo = 3
)

type RenderingServerViewportRenderInfoType

type RenderingServerViewportRenderInfoType = classdb.RenderingServerViewportRenderInfoType
const (
	/*Visible render pass (excluding shadows).*/
	RenderingServerViewportRenderInfoTypeVisible RenderingServerViewportRenderInfoType = 0
	/*Shadow render pass. Objects will be rendered several times depending on the number of amounts of lights with shadows and the number of directional shadow splits.*/
	RenderingServerViewportRenderInfoTypeShadow RenderingServerViewportRenderInfoType = 1
	/*Represents the size of the [enum ViewportRenderInfoType] enum.*/
	RenderingServerViewportRenderInfoTypeMax RenderingServerViewportRenderInfoType = 2
)

type RenderingServerViewportSDFOversize

type RenderingServerViewportSDFOversize = classdb.RenderingServerViewportSDFOversize
const (
	/*Do not oversize the 2D signed distance field. Occluders may disappear when touching the viewport's edges, and [GPUParticles3D] collision may stop working earlier than intended. This has the lowest GPU requirements.*/
	RenderingServerViewportSdfOversize100Percent RenderingServerViewportSDFOversize = 0
	/*2D signed distance field covers 20% of the viewport's size outside the viewport on each side (top, right, bottom, left).*/
	RenderingServerViewportSdfOversize120Percent RenderingServerViewportSDFOversize = 1
	/*2D signed distance field covers 50% of the viewport's size outside the viewport on each side (top, right, bottom, left).*/
	RenderingServerViewportSdfOversize150Percent RenderingServerViewportSDFOversize = 2
	/*2D signed distance field covers 100% of the viewport's size outside the viewport on each side (top, right, bottom, left). This has the highest GPU requirements.*/
	RenderingServerViewportSdfOversize200Percent RenderingServerViewportSDFOversize = 3
	/*Represents the size of the [enum ViewportSDFOversize] enum.*/
	RenderingServerViewportSdfOversizeMax RenderingServerViewportSDFOversize = 4
)

type RenderingServerViewportSDFScale

type RenderingServerViewportSDFScale = classdb.RenderingServerViewportSDFScale
const (
	/*Full resolution 2D signed distance field scale. This has the highest GPU requirements.*/
	RenderingServerViewportSdfScale100Percent RenderingServerViewportSDFScale = 0
	/*Half resolution 2D signed distance field scale on each axis (25% of the viewport pixel count).*/
	RenderingServerViewportSdfScale50Percent RenderingServerViewportSDFScale = 1
	/*Quarter resolution 2D signed distance field scale on each axis (6.25% of the viewport pixel count). This has the lowest GPU requirements.*/
	RenderingServerViewportSdfScale25Percent RenderingServerViewportSDFScale = 2
	/*Represents the size of the [enum ViewportSDFScale] enum.*/
	RenderingServerViewportSdfScaleMax RenderingServerViewportSDFScale = 3
)

type RenderingServerViewportScaling3DMode

type RenderingServerViewportScaling3DMode = classdb.RenderingServerViewportScaling3DMode
const (
	/*Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than [code]1.0[/code] will result in undersampling while values greater than [code]1.0[/code] will result in supersampling. A value of [code]1.0[/code] disables scaling.*/
	RenderingServerViewportScaling3dModeBilinear RenderingServerViewportScaling3DMode = 0
	/*Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than [code]1.0[/code] will be result in the viewport being upscaled using FSR. Values greater than [code]1.0[/code] are not supported and bilinear downsampling will be used instead. A value of [code]1.0[/code] disables scaling.*/
	RenderingServerViewportScaling3dModeFsr RenderingServerViewportScaling3DMode = 1
	/*Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than [code]1.0[/code] will be result in the viewport being upscaled using FSR2. Values greater than [code]1.0[/code] are not supported and bilinear downsampling will be used instead. A value of [code]1.0[/code] will use FSR2 at native resolution as a TAA solution.*/
	RenderingServerViewportScaling3dModeFsr2 RenderingServerViewportScaling3DMode = 2
	/*Represents the size of the [enum ViewportScaling3DMode] enum.*/
	RenderingServerViewportScaling3dModeMax RenderingServerViewportScaling3DMode = 3
)

type RenderingServerViewportScreenSpaceAA

type RenderingServerViewportScreenSpaceAA = classdb.RenderingServerViewportScreenSpaceAA
const (
	/*Do not perform any antialiasing in the full screen post-process.*/
	RenderingServerViewportScreenSpaceAaDisabled RenderingServerViewportScreenSpaceAA = 0
	/*Use fast approximate antialiasing. FXAA is a popular screen-space antialiasing method, which is fast but will make the image look blurry, especially at lower resolutions. It can still work relatively well at large resolutions such as 1440p and 4K.*/
	RenderingServerViewportScreenSpaceAaFxaa RenderingServerViewportScreenSpaceAA = 1
	/*Represents the size of the [enum ViewportScreenSpaceAA] enum.*/
	RenderingServerViewportScreenSpaceAaMax RenderingServerViewportScreenSpaceAA = 2
)

type RenderingServerViewportUpdateMode

type RenderingServerViewportUpdateMode = classdb.RenderingServerViewportUpdateMode
const (
	/*Do not update the viewport's render target.*/
	RenderingServerViewportUpdateDisabled RenderingServerViewportUpdateMode = 0
	/*Update the viewport's render target once, then switch to [constant VIEWPORT_UPDATE_DISABLED].*/
	RenderingServerViewportUpdateOnce RenderingServerViewportUpdateMode = 1
	/*Update the viewport's render target only when it is visible. This is the default value.*/
	RenderingServerViewportUpdateWhenVisible RenderingServerViewportUpdateMode = 2
	/*Update the viewport's render target only when its parent is visible.*/
	RenderingServerViewportUpdateWhenParentVisible RenderingServerViewportUpdateMode = 3
	/*Always update the viewport's render target.*/
	RenderingServerViewportUpdateAlways RenderingServerViewportUpdateMode = 4
)

type RenderingServerViewportVRSMode

type RenderingServerViewportVRSMode = classdb.RenderingServerViewportVRSMode
const (
	/*Variable rate shading is disabled.*/
	RenderingServerViewportVrsDisabled RenderingServerViewportVRSMode = 0
	/*Variable rate shading uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view.*/
	RenderingServerViewportVrsTexture RenderingServerViewportVRSMode = 1
	/*Variable rate shading texture is supplied by the primary [XRInterface].*/
	RenderingServerViewportVrsXr RenderingServerViewportVRSMode = 2
	/*Represents the size of the [enum ViewportVRSMode] enum.*/
	RenderingServerViewportVrsMax RenderingServerViewportVRSMode = 3
)

type RenderingServerVisibilityRangeFadeMode

type RenderingServerVisibilityRangeFadeMode = classdb.RenderingServerVisibilityRangeFadeMode
const (
	/*Disable visibility range fading for the given instance.*/
	RenderingServerVisibilityRangeFadeDisabled RenderingServerVisibilityRangeFadeMode = 0
	/*Fade-out the given instance when it approaches its visibility range limits.*/
	RenderingServerVisibilityRangeFadeSelf RenderingServerVisibilityRangeFadeMode = 1
	/*Fade-in the given instance's dependencies when reaching its visibility range limits.*/
	RenderingServerVisibilityRangeFadeDependencies RenderingServerVisibilityRangeFadeMode = 2
)

type RenderingServerVoxelGIQuality

type RenderingServerVoxelGIQuality = classdb.RenderingServerVoxelGIQuality
const (
	/*Low [VoxelGI] rendering quality using 4 cones.*/
	RenderingServerVoxelGiQualityLow RenderingServerVoxelGIQuality = 0
	/*High [VoxelGI] rendering quality using 6 cones.*/
	RenderingServerVoxelGiQualityHigh RenderingServerVoxelGIQuality = 1
)

type Resource

type Resource = classdb.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 [member resource_path] returns the same reference. PackedScene, one of the most common [Object]s in a Godot project, is also a resource, uniquely capable of storing and instantiating the [Node]s it contains as many times as desired. In GDScript, resources can loaded from disk by their [member resource_path] using [method @GDScript.load] or [method @GDScript.preload]. [b]Note:[/b] 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 methods that can be overridden by a [Class] that extends it.
type Resource interface {
	//Override this method to customize the newly duplicated resource created from [method PackedScene.instantiate], if the original's [member resource_local_to_scene] is set to [code]true[/code].
	//[b]Example:[/b] Set a random [code]damage[/code] value to every local resource from an instantiated scene.
	//[codeblock]
	//extends Resource
	//
	//var damage = 0
	//
	//func _setup_local_to_scene():
	//    damage = randi_range(10, 40)
	//[/codeblock]
	SetupLocalToScene(godot Context)
}

type ResourceFormatLoader

type ResourceFormatLoader = classdb.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 [code]class_name[/code] 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. [b]Note:[/b] 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 [code].png[/code] textures as [code].ctex[/code] (CompressedTexture2D) first, so they can be loaded with better efficiency on the graphics card.

// ResourceFormatLoader methods that can be overridden by a [Class] that extends it.
type ResourceFormatLoader interface {
	//Gets the list of extensions for files this loader is able to read.
	GetRecognizedExtensions(godot Context) gd.PackedStringArray
	//Tells whether or not this loader should load a resource from its resource path for a given type.
	//If it is not implemented, the default behavior returns whether the path's extension is within the ones provided by [method _get_recognized_extensions], and if the type is within the ones provided by [method _get_resource_type].
	RecognizePath(godot Context, path gd.String, atype gd.StringName) bool
	//Tells which resource class this loader can load.
	//[b]Note:[/b] Custom resource types defined by scripts aren't known by the [ClassDB], so you might just handle [code]"Resource"[/code] for them.
	HandlesType(godot Context, atype gd.StringName) bool
	//Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return [code]""[/code].
	//[b]Note:[/b] Custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them.
	GetResourceType(godot Context, path gd.String) gd.String
	//Returns the script class name associated with the [Resource] under the given [param path]. If the resource has no script or the script isn't a named class, it should return [code]""[/code].
	GetResourceScriptClass(godot Context, path gd.String) gd.String
	GetResourceUid(godot Context, path gd.String) gd.Int
	//If implemented, gets the dependencies of a given resource. If [param add_types] is [code]true[/code], paths should be appended [code]::TypeName[/code], where [code]TypeName[/code] is the class name of the dependency.
	//[b]Note:[/b] Custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them.
	GetDependencies(godot Context, path gd.String, add_types bool) gd.PackedStringArray
	//If implemented, renames dependencies within the given resource and saves it. [param renames] is a dictionary [code]{ String => String }[/code] mapping old dependency paths to new paths.
	//Returns [constant OK] on success, or an [enum Error] constant in case of failure.
	RenameDependencies(godot Context, path gd.String, renames gd.Dictionary) int64
	Exists(godot Context, path gd.String) bool
	GetClassesUsed(godot Context, path gd.String) gd.PackedStringArray
	//Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, [param original_path] will target the source file. Returns a [Resource] object on success, or an [enum Error] constant in case of failure.
	//The [param cache_mode] property defines whether and how the cache should be used or updated when loading the resource. See [enum CacheMode] for details.
	Load(godot Context, path gd.String, original_path gd.String, use_sub_threads bool, cache_mode gd.Int) gd.Variant
}

type ResourceFormatLoaderCacheMode

type ResourceFormatLoaderCacheMode = classdb.ResourceFormatLoaderCacheMode
const (
	ResourceFormatLoaderCacheModeIgnore  ResourceFormatLoaderCacheMode = 0
	ResourceFormatLoaderCacheModeReuse   ResourceFormatLoaderCacheMode = 1
	ResourceFormatLoaderCacheModeReplace ResourceFormatLoaderCacheMode = 2
)

type ResourceFormatSaver

type ResourceFormatSaver = classdb.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 [ResourceFormatSaver]s, each handling its own format and called automatically by the engine. By default, Godot saves resources as [code].tres[/code] (text-based), [code].res[/code] (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 with [code]class_name[/code] 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 methods that can be overridden by a [Class] that extends it.
type ResourceFormatSaver interface {
	//Saves the given resource object to a file at the target [param path]. [param flags] is a bitmask composed with [enum ResourceSaver.SaverFlags] constants.
	//Returns [constant OK] on success, or an [enum Error] constant in case of failure.
	Save(godot Context, resource Resource, path gd.String, flags gd.Int) int64
	//Sets a new UID for the resource at the given [param path]. Returns [constant OK] on success, or an [enum Error] constant in case of failure.
	SetUid(godot Context, path gd.String, uid gd.Int) int64
	//Returns whether the given resource object can be saved by this saver.
	Recognize(godot Context, resource Resource) bool
	//Returns the list of extensions available for saving the resource object, provided it is recognized (see [method _recognize]).
	GetRecognizedExtensions(godot Context, resource Resource) gd.PackedStringArray
	//Returns [code]true[/code] if this saver handles a given save path and [code]false[/code] otherwise.
	//If this method is not implemented, the default behavior returns whether the path's extension is within the ones provided by [method _get_recognized_extensions].
	RecognizePath(godot Context, resource Resource, path gd.String) bool
}

type ResourceImporter

type ResourceImporter = classdb.ResourceImporter

This is the base class for Godot's resource importers. To implement your own resource importers using editor plugins, see EditorImportPlugin.

type ResourceImporterBMFont

type ResourceImporterBMFont = classdb.ResourceImporterBMFont

The BMFont format is a format created by the [url=https://www.angelcode.com/products/bmfont/]BMFont[/url] program. Many BMFont-compatible programs also exist, like [url=https://www.bmglyph.com/]BMGlyph[/url]. Compared to ResourceImporterImageFont, ResourceImporterBMFont supports bitmap fonts with varying glyph widths/heights. See also ResourceImporterDynamicFont.

type ResourceImporterBitMap

type ResourceImporterBitMap = classdb.ResourceImporterBitMap

BitMap resources are typically used as click masks in TextureButton and TouchScreenButton.

type ResourceImporterCSVTranslation

type ResourceImporterCSVTranslation = classdb.ResourceImporterCSVTranslation

Comma-separated values are a plain text table storage format. The format's simplicity makes it easy to edit in any text editor or spreadsheet software. This makes it a common choice for game localization. [b]Example CSV file:[/b] [codeblock] keys,en,es,ja GREET,"Hello, friend!","Hola, amigo!",こんにちは ASK,How are you?,Cómo está?,元気ですか BYE,Goodbye,Adiós,さようなら QUOTE,"""Hello"" said the man.","""Hola"" dijo el hombre.",「こんにちは」男は言いました [/codeblock]

type ResourceImporterDynamicFont

type ResourceImporterDynamicFont = classdb.ResourceImporterDynamicFont

Unlike bitmap fonts, dynamic fonts can be resized to any size and still look crisp. Dynamic fonts also optionally support MSDF font rendering, which allows for run-time scale changes with no re-rasterization cost. While WOFF and especially WOFF2 tend to result in smaller file sizes, there is no universally "better" font format. In most situations, it's recommended to use the font format that was shipped on the font developer's website. See also ResourceImporterBMFont and ResourceImporterImageFont.

type ResourceImporterImage

type ResourceImporterImage = classdb.ResourceImporterImage

This importer imports Image resources, as opposed to CompressedTexture2D. If you need to render the image in 2D or 3D, use ResourceImporterTexture instead.

type ResourceImporterImageFont

type ResourceImporterImageFont = classdb.ResourceImporterImageFont

This image-based workflow can be easier to use than ResourceImporterBMFont, but it requires all glyphs to have the same width and height. This makes ResourceImporterImageFont most suited to fixed-width fonts. See also ResourceImporterDynamicFont.

type ResourceImporterImportOrder

type ResourceImporterImportOrder = classdb.ResourceImporterImportOrder
const (
	/*The default import order.*/
	ResourceImporterImportOrderDefault ResourceImporterImportOrder = 0
	/*The import order for scenes, which ensures scenes are imported [i]after[/i] all other core resources such as textures. Custom importers should generally have an import order lower than [code]100[/code] to avoid issues when importing scenes that rely on custom resources.*/
	ResourceImporterImportOrderScene ResourceImporterImportOrder = 100
)

type ResourceImporterLayeredTexture

type ResourceImporterLayeredTexture = classdb.ResourceImporterLayeredTexture

This imports a 3-dimensional texture, which can then be used in custom shaders, as a FogMaterial density map or as a GPUParticlesAttractorVectorField3D. See also ResourceImporterTexture and ResourceImporterTextureAtlas.

type ResourceImporterMP3

type ResourceImporterMP3 = classdb.ResourceImporterMP3

MP3 is a lossy audio format, with worse audio quality compared to ResourceImporterOggVorbis at a given bitrate. In most cases, it's recommended to use Ogg Vorbis over MP3. However, if you're using a MP3 sound source with no higher quality source available, then it's recommended to use the MP3 file directly to avoid double lossy compression. MP3 requires more CPU to decode than ResourceImporterWAV. If you need to play a lot of simultaneous sounds, it's recommended to use WAV for those sounds instead, especially if targeting low-end devices.

type ResourceImporterOBJ

type ResourceImporterOBJ = classdb.ResourceImporterOBJ

Unlike ResourceImporterScene, ResourceImporterOBJ will import a single Mesh resource by default instead of importing a PackedScene. This makes it easier to use the Mesh resource in nodes that expect direct Mesh resources, such as GridMap, GPUParticles3D or CPUParticles3D. Note that it is still possible to save mesh resources from 3D scenes using the [b]Advanced Import Settings[/b] dialog, regardless of the source format. See also ResourceImporterScene, which is used for more advanced 3D formats such as glTF.

type ResourceImporterOggVorbis

type ResourceImporterOggVorbis = classdb.ResourceImporterOggVorbis

Ogg Vorbis is a lossy audio format, with better audio quality compared to ResourceImporterMP3 at a given bitrate. In most cases, it's recommended to use Ogg Vorbis over MP3. However, if you're using a MP3 sound source with no higher quality source available, then it's recommended to use the MP3 file directly to avoid double lossy compression. Ogg Vorbis requires more CPU to decode than ResourceImporterWAV. If you need to play a lot of simultaneous sounds, it's recommended to use WAV for those sounds instead, especially if targeting low-end devices.

type ResourceImporterScene

type ResourceImporterScene = classdb.ResourceImporterScene

See also ResourceImporterOBJ, which is used for OBJ models that can be imported as an independent Mesh or a scene. Additional options (such as extracting individual meshes or materials to files) are available in the [b]Advanced Import Settings[/b] dialog. This dialog can be accessed by double-clicking a 3D scene in the FileSystem dock or by selecting a 3D scene in the FileSystem dock, going to the Import dock and choosing [b]Advanced[/b]. [b]Note:[/b] ResourceImporterScene is [i]not[/i] used for [PackedScene]s, such as [code].tscn[/code] and [code].scn[/code] files.

type ResourceImporterShaderFile

type ResourceImporterShaderFile = classdb.ResourceImporterShaderFile

This imports native GLSL shaders as RDShaderFile resources, for use with low-level RenderingDevice operations. This importer does [i]not[/i] handle [code].gdshader[/code] files.

type ResourceImporterTexture

type ResourceImporterTexture = classdb.ResourceImporterTexture

This importer imports CompressedTexture2D resources. If you need to process the image in scripts in a more convenient way, use ResourceImporterImage instead. See also ResourceImporterLayeredTexture.

type ResourceImporterTextureAtlas

type ResourceImporterTextureAtlas = classdb.ResourceImporterTextureAtlas

This imports a collection of textures from a PNG image into an AtlasTexture or 2D ArrayMesh. This can be used to save memory when importing 2D animations from spritesheets. Texture atlases are only supported in 2D rendering, not 3D. See also ResourceImporterTexture and ResourceImporterLayeredTexture. [b]Note:[/b] ResourceImporterTextureAtlas does not handle importing TileSetAtlasSource, which is created using the TileSet editor instead.

type ResourceImporterWAV

type ResourceImporterWAV = classdb.ResourceImporterWAV

WAV is an uncompressed format, which can provide higher quality compared to Ogg Vorbis and MP3. It also has the lowest CPU cost to decode. This means high numbers of WAV sounds can be played at the same time, even on low-end deviceS.

type ResourceLoaderCacheMode

type ResourceLoaderCacheMode = classdb.ResourceLoaderCacheMode
const (
	ResourceLoaderCacheModeIgnore  ResourceLoaderCacheMode = 0
	ResourceLoaderCacheModeReuse   ResourceLoaderCacheMode = 1
	ResourceLoaderCacheModeReplace ResourceLoaderCacheMode = 2
)

type ResourceLoaderThreadLoadStatus

type ResourceLoaderThreadLoadStatus = classdb.ResourceLoaderThreadLoadStatus
const (
	/*The resource is invalid, or has not been loaded with [method load_threaded_request].*/
	ResourceLoaderThreadLoadInvalidResource ResourceLoaderThreadLoadStatus = 0
	/*The resource is still being loaded.*/
	ResourceLoaderThreadLoadInProgress ResourceLoaderThreadLoadStatus = 1
	/*Some error occurred during loading and it failed.*/
	ResourceLoaderThreadLoadFailed ResourceLoaderThreadLoadStatus = 2
	/*The resource was loaded successfully and can be accessed via [method load_threaded_get].*/
	ResourceLoaderThreadLoadLoaded ResourceLoaderThreadLoadStatus = 3
)

type ResourcePreloader

type ResourcePreloader = classdb.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 [method @GDScript.preload] built-in method which can be used in most situations, leaving the use of ResourcePreloader for more advanced scenarios.

type ResourceSaverSaverFlags

type ResourceSaverSaverFlags = classdb.ResourceSaverSaverFlags
const (
	/*No resource saving option.*/
	ResourceSaverFlagNone ResourceSaverSaverFlags = 0
	/*Save the resource with a path relative to the scene which uses it.*/
	ResourceSaverFlagRelativePaths ResourceSaverSaverFlags = 1
	/*Bundles external resources.*/
	ResourceSaverFlagBundleResources ResourceSaverSaverFlags = 2
	/*Changes the [member Resource.resource_path] of the saved resource to match its new location.*/
	ResourceSaverFlagChangePath ResourceSaverSaverFlags = 4
	/*Do not save editor-specific metadata (identified by their [code]__editor[/code] prefix).*/
	ResourceSaverFlagOmitEditorProperties ResourceSaverSaverFlags = 8
	/*Save as big endian (see [member FileAccess.big_endian]).*/
	ResourceSaverFlagSaveBigEndian ResourceSaverSaverFlags = 16
	/*Compress the resource on save using [constant FileAccess.COMPRESSION_ZSTD]. Only available for binary resource types.*/
	ResourceSaverFlagCompress ResourceSaverSaverFlags = 32
	/*Take over the paths of the saved subresources (see [method Resource.take_over_path]).*/
	ResourceSaverFlagReplaceSubresourcePaths ResourceSaverSaverFlags = 64
)

type RibbonTrailMesh

type RibbonTrailMesh = classdb.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 [member section_length] and number of [member section_segments]. A [member 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.

type RibbonTrailMeshShape

type RibbonTrailMeshShape = classdb.RibbonTrailMeshShape
const (
	/*Gives the mesh a single flat face.*/
	RibbonTrailMeshShapeFlat RibbonTrailMeshShape = 0
	/*Gives the mesh two perpendicular flat faces, making a cross shape.*/
	RibbonTrailMeshShapeCross RibbonTrailMeshShape = 1
)

type RichTextEffect

type RichTextEffect = classdb.RichTextEffect

A custom effect for a RichTextLabel, which can be loaded in the RichTextLabel inspector or using [method RichTextLabel.install_effect]. [b]Note:[/b] For a RichTextEffect to be usable, a BBCode tag must be defined as a member variable called [code]bbcode[/code] in the script. [codeblocks] [gdscript skip-lint] # The RichTextEffect will be usable like this: `[example]Some text[/example]` var bbcode = "example" [/gdscript] [csharp skip-lint] // The RichTextEffect will be usable like this: `[example]Some text[/example]` string bbcode = "example"; [/csharp] [/codeblocks] [b]Note:[/b] 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 methods that can be overridden by a [Class] that extends it.
type RichTextEffect interface {
	//Override this method to modify properties in [param char_fx]. The method must return [code]true[/code] if the character could be transformed successfully. If the method returns [code]false[/code], it will skip transformation to avoid displaying broken text.
	ProcessCustomFx(godot Context, char_fx CharFXTransform) bool
}

type RichTextLabel

type RichTextLabel = classdb.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. [b]Note:[/b] Assignments to [member text] clear the tag stack and reconstruct it from the property's contents. Any edits made to [member text] will erase previous edits made from other manual sources such as [method append_text] and the [code]push_*[/code] / [method pop] methods. [b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For example, instead of using [code skip-lint][b]bold[i]bold italic[/b]italic[/i][/code], use [code skip-lint][b]bold[i]bold italic[/i][/b][i]italic[/i][/code]. [b]Note:[/b] [code]push_pop_*[/code] functions won't affect BBCode. [b]Note:[/b] Unlike Label, RichTextLabel doesn't have a [i]property[/i] to horizontally align text to the center. Instead, enable [member bbcode_enabled] and surround the text in a [code skip-lint][center][/code] tag as follows: [code skip-lint][center]Example[/center][/code]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the [member fit_content] property.

type RichTextLabelImageUpdateMask

type RichTextLabelImageUpdateMask = classdb.RichTextLabelImageUpdateMask
const (
	/*If this bit is set, [method update_image] changes image texture.*/
	RichTextLabelUpdateTexture RichTextLabelImageUpdateMask = 1
	/*If this bit is set, [method update_image] changes image size.*/
	RichTextLabelUpdateSize RichTextLabelImageUpdateMask = 2
	/*If this bit is set, [method update_image] changes image color.*/
	RichTextLabelUpdateColor RichTextLabelImageUpdateMask = 4
	/*If this bit is set, [method update_image] changes image inline alignment.*/
	RichTextLabelUpdateAlignment RichTextLabelImageUpdateMask = 8
	/*If this bit is set, [method update_image] changes image texture region.*/
	RichTextLabelUpdateRegion RichTextLabelImageUpdateMask = 16
	/*If this bit is set, [method update_image] changes image padding.*/
	RichTextLabelUpdatePad RichTextLabelImageUpdateMask = 32
	/*If this bit is set, [method update_image] changes image tooltip.*/
	RichTextLabelUpdateTooltip RichTextLabelImageUpdateMask = 64
	/*If this bit is set, [method update_image] changes image width from/to percents.*/
	RichTextLabelUpdateWidthInPercent RichTextLabelImageUpdateMask = 128
)

type RichTextLabelListType

type RichTextLabelListType = classdb.RichTextLabelListType
const (
	/*Each list item has a number marker.*/
	RichTextLabelListNumbers RichTextLabelListType = 0
	/*Each list item has a letter marker.*/
	RichTextLabelListLetters RichTextLabelListType = 1
	/*Each list item has a roman number marker.*/
	RichTextLabelListRoman RichTextLabelListType = 2
	/*Each list item has a filled circle marker.*/
	RichTextLabelListDots RichTextLabelListType = 3
)

type RichTextLabelMenuItems

type RichTextLabelMenuItems = classdb.RichTextLabelMenuItems
const (
	/*Copies the selected text.*/
	RichTextLabelMenuCopy RichTextLabelMenuItems = 0
	/*Selects the whole [RichTextLabel] text.*/
	RichTextLabelMenuSelectAll RichTextLabelMenuItems = 1
	/*Represents the size of the [enum MenuItems] enum.*/
	RichTextLabelMenuMax RichTextLabelMenuItems = 2
)

type RigidBody2D

type RigidBody2D = classdb.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 [member lock_rotation], [member freeze], and [member freeze_mode]. By changing various properties of the object, such as [member 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 [member custom_integrator]. [b]Note:[/b] Changing the 2D transform or [member linear_velocity] of a RigidBody2D very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer [method _integrate_forces] as it allows you to directly access the physics state.

// RigidBody2D methods that can be overridden by a [Class] that extends it.
type RigidBody2D interface {
	//Allows you to read and safely modify the simulation state for the object. Use this instead of [method Node._physics_process] if you need to directly change the body's [code]position[/code] or other physics properties. By default, it works in addition to the usual physics behavior, but [member custom_integrator] allows you to disable the default behavior and write custom force integration for a body.
	IntegrateForces(godot Context, state PhysicsDirectBodyState2D)
}

type RigidBody2DCCDMode

type RigidBody2DCCDMode = classdb.RigidBody2DCCDMode
const (
	/*Continuous collision detection disabled. This is the fastest way to detect body collisions, but can miss small, fast-moving objects.*/
	RigidBody2DCcdModeDisabled RigidBody2DCCDMode = 0
	/*Continuous collision detection enabled using raycasting. This is faster than shapecasting but less precise.*/
	RigidBody2DCcdModeCastRay RigidBody2DCCDMode = 1
	/*Continuous collision detection enabled using shapecasting. This is the slowest CCD method and the most precise.*/
	RigidBody2DCcdModeCastShape RigidBody2DCCDMode = 2
)

type RigidBody2DCenterOfMassMode

type RigidBody2DCenterOfMassMode = classdb.RigidBody2DCenterOfMassMode
const (
	/*In this mode, the body's center of mass is calculated automatically based on its shapes. This assumes that the shapes' origins are also their center of mass.*/
	RigidBody2DCenterOfMassModeAuto RigidBody2DCenterOfMassMode = 0
	/*In this mode, the body's center of mass is set through [member center_of_mass]. Defaults to the body's origin position.*/
	RigidBody2DCenterOfMassModeCustom RigidBody2DCenterOfMassMode = 1
)

type RigidBody2DDampMode

type RigidBody2DDampMode = classdb.RigidBody2DDampMode
const (
	/*In this mode, the body's damping value is added to any value set in areas or the default value.*/
	RigidBody2DDampModeCombine RigidBody2DDampMode = 0
	/*In this mode, the body's damping value replaces any value set in areas or the default value.*/
	RigidBody2DDampModeReplace RigidBody2DDampMode = 1
)

type RigidBody2DFreezeMode

type RigidBody2DFreezeMode = classdb.RigidBody2DFreezeMode
const (
	/*Static body freeze mode (default). The body is not affected by gravity and forces. It can be only moved by user code and doesn't collide with other bodies along its path.*/
	RigidBody2DFreezeModeStatic RigidBody2DFreezeMode = 0
	/*Kinematic body freeze mode. Similar to [constant FREEZE_MODE_STATIC], but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated.*/
	RigidBody2DFreezeModeKinematic RigidBody2DFreezeMode = 1
)

type RigidBody3D

type RigidBody3D = classdb.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 [member lock_rotation], [member freeze], and [member freeze_mode]. By changing various properties of the object, such as [member 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 [member custom_integrator]. [b]Note:[/b] Changing the 3D transform or [member linear_velocity] of a RigidBody3D very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer [method _integrate_forces] as it allows you to directly access the physics state.

// RigidBody3D methods that can be overridden by a [Class] that extends it.
type RigidBody3D interface {
	//Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the [member custom_integrator] property allows you to disable the default behavior and do fully custom force integration for a body.
	IntegrateForces(godot Context, state PhysicsDirectBodyState3D)
}

type RigidBody3DCenterOfMassMode

type RigidBody3DCenterOfMassMode = classdb.RigidBody3DCenterOfMassMode
const (
	/*In this mode, the body's center of mass is calculated automatically based on its shapes. This assumes that the shapes' origins are also their center of mass.*/
	RigidBody3DCenterOfMassModeAuto RigidBody3DCenterOfMassMode = 0
	/*In this mode, the body's center of mass is set through [member center_of_mass]. Defaults to the body's origin position.*/
	RigidBody3DCenterOfMassModeCustom RigidBody3DCenterOfMassMode = 1
)

type RigidBody3DDampMode

type RigidBody3DDampMode = classdb.RigidBody3DDampMode
const (
	/*In this mode, the body's damping value is added to any value set in areas or the default value.*/
	RigidBody3DDampModeCombine RigidBody3DDampMode = 0
	/*In this mode, the body's damping value replaces any value set in areas or the default value.*/
	RigidBody3DDampModeReplace RigidBody3DDampMode = 1
)

type RigidBody3DFreezeMode

type RigidBody3DFreezeMode = classdb.RigidBody3DFreezeMode
const (
	/*Static body freeze mode (default). The body is not affected by gravity and forces. It can be only moved by user code and doesn't collide with other bodies along its path.*/
	RigidBody3DFreezeModeStatic RigidBody3DFreezeMode = 0
	/*Kinematic body freeze mode. Similar to [constant FREEZE_MODE_STATIC], but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated.*/
	RigidBody3DFreezeModeKinematic RigidBody3DFreezeMode = 1
)

type RootMotionView

type RootMotionView = classdb.RootMotionView

[i]Root motion[/i] 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. [b]Note:[/b] RootMotionView is only visible in the editor. It will be hidden automatically in the running project.

type SceneMultiplayer

type SceneMultiplayer = classdb.SceneMultiplayer

This class is the default implementation of MultiplayerAPI, used to provide multiplayer functionalities in Godot Engine. This implementation supports RPCs via [method Node.rpc] and [method Node.rpc_id] and requires [method MultiplayerAPI.rpc] 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. [b]Note:[/b] 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. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type SceneReplicationConfig

type SceneReplicationConfig = classdb.SceneReplicationConfig

type SceneReplicationConfigReplicationMode

type SceneReplicationConfigReplicationMode = classdb.SceneReplicationConfigReplicationMode
const (
	/*Do not keep the given property synchronized.*/
	SceneReplicationConfigReplicationModeNever SceneReplicationConfigReplicationMode = 0
	/*Replicate the given property on process by constantly sending updates using unreliable transfer mode.*/
	SceneReplicationConfigReplicationModeAlways SceneReplicationConfigReplicationMode = 1
	/*Replicate the given property on process by sending updates using reliable transfer mode when its value changes.*/
	SceneReplicationConfigReplicationModeOnChange SceneReplicationConfigReplicationMode = 2
)

type SceneState

type SceneState = classdb.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 [method PackedScene.get_state].

type SceneStateGenEditState

type SceneStateGenEditState = classdb.SceneStateGenEditState
const (
	/*If passed to [method PackedScene.instantiate], blocks edits to the scene state.*/
	SceneStateGenEditStateDisabled SceneStateGenEditState = 0
	/*If passed to [method PackedScene.instantiate], provides inherited scene resources to the local scene.
	  [b]Note:[/b] Only available in editor builds.*/
	SceneStateGenEditStateInstance SceneStateGenEditState = 1
	/*If passed to [method PackedScene.instantiate], provides local scene resources to the local scene. Only the main scene should receive the main edit state.
	  [b]Note:[/b] Only available in editor builds.*/
	SceneStateGenEditStateMain SceneStateGenEditState = 2
	/*If passed to [method PackedScene.instantiate], it's similar to [constant GEN_EDIT_STATE_MAIN], but for the case where the scene is being instantiated to be the base of another one.
	  [b]Note:[/b] Only available in editor builds.*/
	SceneStateGenEditStateMainInherited SceneStateGenEditState = 3
)

type SceneTree

type SceneTree = classdb.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.

type SceneTreeGroupCallFlags

type SceneTreeGroupCallFlags = classdb.SceneTreeGroupCallFlags
const (
	/*Call a group with no flags (default).*/
	SceneTreeGroupCallDefault SceneTreeGroupCallFlags = 0
	/*Call a group in reverse scene order.*/
	SceneTreeGroupCallReverse SceneTreeGroupCallFlags = 1
	/*Call a group at the end of the current frame (process or physics).*/
	SceneTreeGroupCallDeferred SceneTreeGroupCallFlags = 2
	/*Call a group only once even if the call is executed many times.
	  [b]Note:[/b] Arguments are not taken into account when deciding whether the call is unique or not. Therefore when the same method is called with different arguments, only the first call will be performed.*/
	SceneTreeGroupCallUnique SceneTreeGroupCallFlags = 4
)

type SceneTreeTimer

type SceneTreeTimer = classdb.SceneTreeTimer

A one-shot timer managed by the scene tree, which emits [signal timeout] on completion. See also [method SceneTree.create_timer]. 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: [codeblocks] [gdscript] func some_function():

print("Timer started.")
await get_tree().create_timer(1.0).timeout
print("Timer ended.")

[/gdscript] [csharp] public async Task SomeFunction()

{
    GD.Print("Timer started.");
    await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName.Timeout);
    GD.Print("Timer ended.");
}

[/csharp] [/codeblocks] The timer will be dereferenced after its time elapses. To preserve the timer, you can keep a reference to it. See RefCounted. [b]Note:[/b] The timer is processed after all of the nodes in the current frame, i.e. node's [method Node._process] method would be called before the timer (or [method Node._physics_process] if [code]process_in_physics[/code] in [method SceneTree.create_timer] has been set to [code]true[/code]).

type Script

type Script = classdb.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 [code]new[/code] method of a script subclass creates a new instance. [method Object.set_script] extends an existing object, if that object's class matches one of the script's base classes.

type ScriptCreateDialog

type ScriptCreateDialog = classdb.ScriptCreateDialog

The ScriptCreateDialog creates script files according to a given template for a given scripting language. The standard use is to configure its fields prior to calling one of the [method Window.popup] methods. [codeblocks] [gdscript] func _ready():

var dialog = ScriptCreateDialog.new();
dialog.config("Node", "res://new_node.gd") # For in-engine types.
dialog.config("\"res://base_node.gd\"", "res://derived_node.gd") # For script types.
dialog.popup_centered()

[/gdscript] [csharp] public override void _Ready()

{
    var dialog = new ScriptCreateDialog();
    dialog.Config("Node", "res://NewNode.cs"); // For in-engine types.
    dialog.Config("\"res://BaseNode.cs\"", "res://DerivedNode.cs"); // For script types.
    dialog.PopupCentered();
}

[/csharp] [/codeblocks]

type ScriptEditor

type ScriptEditor = classdb.ScriptEditor

Godot editor's script editor. [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_script_editor].

type ScriptEditorBase

type ScriptEditorBase = classdb.ScriptEditorBase

Base editor for editing scripts in the ScriptEditor. This does not include documentation items.

type ScriptExtension

type ScriptExtension = classdb.ScriptExtension

type ScriptLanguage

type ScriptLanguage = classdb.ScriptLanguage

type ScriptLanguageExtension

type ScriptLanguageExtension = classdb.ScriptLanguageExtension

type ScriptLanguageExtensionCodeCompletionKind

type ScriptLanguageExtensionCodeCompletionKind = classdb.ScriptLanguageExtensionCodeCompletionKind
const (
	ScriptLanguageExtensionCodeCompletionKindClass     ScriptLanguageExtensionCodeCompletionKind = 0
	ScriptLanguageExtensionCodeCompletionKindFunction  ScriptLanguageExtensionCodeCompletionKind = 1
	ScriptLanguageExtensionCodeCompletionKindSignal    ScriptLanguageExtensionCodeCompletionKind = 2
	ScriptLanguageExtensionCodeCompletionKindVariable  ScriptLanguageExtensionCodeCompletionKind = 3
	ScriptLanguageExtensionCodeCompletionKindMember    ScriptLanguageExtensionCodeCompletionKind = 4
	ScriptLanguageExtensionCodeCompletionKindEnum      ScriptLanguageExtensionCodeCompletionKind = 5
	ScriptLanguageExtensionCodeCompletionKindConstant  ScriptLanguageExtensionCodeCompletionKind = 6
	ScriptLanguageExtensionCodeCompletionKindNodePath  ScriptLanguageExtensionCodeCompletionKind = 7
	ScriptLanguageExtensionCodeCompletionKindFilePath  ScriptLanguageExtensionCodeCompletionKind = 8
	ScriptLanguageExtensionCodeCompletionKindPlainText ScriptLanguageExtensionCodeCompletionKind = 9
	ScriptLanguageExtensionCodeCompletionKindMax       ScriptLanguageExtensionCodeCompletionKind = 10
)

type ScriptLanguageExtensionCodeCompletionLocation

type ScriptLanguageExtensionCodeCompletionLocation = classdb.ScriptLanguageExtensionCodeCompletionLocation
const (
	/*The option is local to the location of the code completion query - e.g. a local variable. Subsequent value of location represent options from the outer class, the exact value represent how far they are (in terms of inner classes).*/
	ScriptLanguageExtensionLocationLocal ScriptLanguageExtensionCodeCompletionLocation = 0
	/*The option is from the containing class or a parent class, relative to the location of the code completion query. Perform a bitwise OR with the class depth (e.g. 0 for the local class, 1 for the parent, 2 for the grandparent, etc) to store the depth of an option in the class or a parent class.*/
	ScriptLanguageExtensionLocationParentMask ScriptLanguageExtensionCodeCompletionLocation = 256
	/*The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons).*/
	ScriptLanguageExtensionLocationOtherUserCode ScriptLanguageExtensionCodeCompletionLocation = 512
	/*The option is from other engine code, not covered by the other enum constants - e.g. built-in classes.*/
	ScriptLanguageExtensionLocationOther ScriptLanguageExtensionCodeCompletionLocation = 1024
)

type ScriptLanguageExtensionLookupResultType

type ScriptLanguageExtensionLookupResultType = classdb.ScriptLanguageExtensionLookupResultType
const (
	ScriptLanguageExtensionLookupResultScriptLocation      ScriptLanguageExtensionLookupResultType = 0
	ScriptLanguageExtensionLookupResultClass               ScriptLanguageExtensionLookupResultType = 1
	ScriptLanguageExtensionLookupResultClassConstant       ScriptLanguageExtensionLookupResultType = 2
	ScriptLanguageExtensionLookupResultClassProperty       ScriptLanguageExtensionLookupResultType = 3
	ScriptLanguageExtensionLookupResultClassMethod         ScriptLanguageExtensionLookupResultType = 4
	ScriptLanguageExtensionLookupResultClassSignal         ScriptLanguageExtensionLookupResultType = 5
	ScriptLanguageExtensionLookupResultClassEnum           ScriptLanguageExtensionLookupResultType = 6
	ScriptLanguageExtensionLookupResultClassTbdGlobalscope ScriptLanguageExtensionLookupResultType = 7
	ScriptLanguageExtensionLookupResultClassAnnotation     ScriptLanguageExtensionLookupResultType = 8
	ScriptLanguageExtensionLookupResultMax                 ScriptLanguageExtensionLookupResultType = 9
)

type ScrollBar

type ScrollBar = classdb.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.

type ScrollContainer

type ScrollContainer = classdb.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 [member Control.custom_minimum_size] of the Control relative to the ScrollContainer.

type ScrollContainerScrollMode

type ScrollContainerScrollMode = classdb.ScrollContainerScrollMode
const (
	/*Scrolling disabled, scrollbar will be invisible.*/
	ScrollContainerScrollModeDisabled ScrollContainerScrollMode = 0
	/*Scrolling enabled, scrollbar will be visible only if necessary, i.e. container's content is bigger than the container.*/
	ScrollContainerScrollModeAuto ScrollContainerScrollMode = 1
	/*Scrolling enabled, scrollbar will be always visible.*/
	ScrollContainerScrollModeShowAlways ScrollContainerScrollMode = 2
	/*Scrolling enabled, scrollbar will be hidden.*/
	ScrollContainerScrollModeShowNever ScrollContainerScrollMode = 3
)

type SegmentShape2D

type SegmentShape2D = classdb.SegmentShape2D

A 2D line segment shape, intended for use in physics. Usually used to provide a shape for a CollisionShape2D.

type Semaphore

type Semaphore = classdb.Semaphore

A synchronization semaphore that can be used to synchronize multiple [Thread]s. Initialized to zero on creation. For a binary version, see Mutex. [b]Warning:[/b] Semaphores must be used carefully to avoid deadlocks. [b]Warning:[/b] 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 Thread's reference count reaches zero and it is therefore destroyed, it must not be waiting on any semaphore.

type SeparationRayShape2D

type SeparationRayShape2D = classdb.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.

type SeparationRayShape3D

type SeparationRayShape3D = classdb.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.

type Separator

type Separator = classdb.Separator

Abstract base class for separators, used for separating other controls. [Separator]s are purely visual and normally drawn as a StyleBoxLine.

type Shader

type Shader = classdb.Shader

A custom shader program implemented in the Godot shading language, saved with the [code].gdshader[/code] 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.

type ShaderGlobalsOverride

type ShaderGlobalsOverride = classdb.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 [code]global_shader_parameter_*[/code] methods for more information. [b]Note:[/b] 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. [b]Note:[/b] All ShaderGlobalsOverride nodes are made part of a [code]"shader_overrides_group"[/code] group when they are added to the scene tree. The currently active ShaderGlobalsOverride node also has a [code]"shader_overrides_group_active"[/code] group added to it. You can use this to check which ShaderGlobalsOverride node is currently active.

type ShaderInclude

type ShaderInclude = classdb.ShaderInclude

A shader include file, saved with the [code].gdshaderinc[/code] extension. This class allows you to define a custom shader snippet that can be included in a Shader by using the preprocessor directive [code]#include[/code], followed by the file path (e.g. [code]#include "res://shader_lib.gdshaderinc"[/code]). The snippet doesn't have to be a valid shader on its own.

type ShaderMaterial

type ShaderMaterial = classdb.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 [ShaderMaterial]s can use the same shader and configure different values for the shader uniforms. [b]Note:[/b] For performance reasons, the [signal Resource.changed] signal is only emitted when the [member Resource.resource_name] changes. Only in editor, it is also emitted for [member shader] changes.

type ShaderMode

type ShaderMode = classdb.ShaderMode
const (
	/*Mode used to draw all 3D objects.*/
	ShaderModeSpatial ShaderMode = 0
	/*Mode used to draw all 2D objects.*/
	ShaderModeCanvasItem ShaderMode = 1
	/*Mode used to calculate particle information on a per-particle basis. Not used for drawing.*/
	ShaderModeParticles ShaderMode = 2
	/*Mode used for drawing skies. Only works with shaders attached to [Sky] objects.*/
	ShaderModeSky ShaderMode = 3
	/*Mode used for setting the color and density of volumetric fog effect.*/
	ShaderModeFog ShaderMode = 4
)

type Shape2D

type Shape2D = classdb.Shape2D

Abstract base class for all 2D shapes, intended for use in physics. [b]Performance:[/b] Primitive shapes, especially CircleShape2D, are fast to check collisions against. ConvexPolygonShape2D is slower, and ConcavePolygonShape2D is the slowest.

type Shape3D

type Shape3D = classdb.Shape3D

Abstract base class for all 3D shapes, intended for use in physics. [b]Performance:[/b] Primitive shapes, especially SphereShape3D, are fast to check collisions against. ConvexPolygonShape3D and HeightMapShape3D are slower, and ConcavePolygonShape3D is the slowest.

type ShapeCast2D

type ShapeCast2D = classdb.ShapeCast2D

Shape casting allows to detect collision objects by sweeping its [member shape] along the cast direction determined by [member target_position]. 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 [member target_position] set to [code]Vector2(0, 0)[/code] and by calling [method force_shapecast_update] 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. [b]Note:[/b] Shape casting is more computationally expensive than ray casting.

type ShapeCast3D

type ShapeCast3D = classdb.ShapeCast3D

Shape casting allows to detect collision objects by sweeping its [member shape] along the cast direction determined by [member target_position]. 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 [member target_position] set to [code]Vector3(0, 0, 0)[/code] and by calling [method force_shapecast_update] 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. [b]Note:[/b] Shape casting is more computationally expensive than ray casting.

type Shortcut

type Shortcut = classdb.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.

type Side

type Side = xy.Side

type Signal

type Signal[T any] struct {
	Emit T
	// contains filtered or unexported fields
}

Signal's T must be a function type that represents the arguments that are required to be passed to the signal.

type Skeleton2D

type Skeleton2D = classdb.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 [member SkeletonModificationStack2D.modification_count] and creating the desired number of modifications.

type Skeleton3D

type Skeleton3D = classdb.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.

type SkeletonIK3D

type SkeletonIK3D = classdb.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 [code]bones_global_pose_override[/code] property for all affected bones in the chain. If fully applied, this overwrites any bone transform from [Animation]s or bone custom poses set by users. The applied amount can be controlled with the [member interpolation] property. [codeblock] # 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) [/codeblock] [i]Deprecated.[/i] This class is deprecated, and might be removed in a future release.

type SkeletonModification2D

type SkeletonModification2D = classdb.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 methods that can be overridden by a [Class] that extends it.
type SkeletonModification2D interface {
	//Executes the given modification. This is where the modification performs whatever function it is designed to do.
	Execute(godot Context, delta gd.Float)
	//Called when the modification is setup. This is where the modification performs initialization.
	SetupModification(godot Context, modification_stack SkeletonModificationStack2D)
	//Used for drawing [b]editor-only[/b] modification gizmos. This function will only be called in the Godot editor and can be overridden to draw custom gizmos.
	//[b]Note:[/b] You will need to use the Skeleton2D from [method SkeletonModificationStack2D.get_skeleton] and it's draw functions, as the [SkeletonModification2D] resource cannot draw on its own.
	DrawEditorGizmo(godot Context)
}

type SkeletonModification2DCCDIK

type SkeletonModification2DCCDIK = classdb.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 [i]can[/i] look more robotic than other IK solvers. [b]Note:[/b] The CCDIK modifier has [code]ccdik_joints[/code], 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.

type SkeletonModification2DFABRIK

type SkeletonModification2DFABRIK = classdb.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. [b]Note:[/b] The FABRIK modifier has [code]fabrik_joints[/code], 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.

type SkeletonModification2DJiggle

type SkeletonModification2DJiggle = classdb.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. [b]Note:[/b] The Jiggle modifier has [code]jiggle_joints[/code], 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.

type SkeletonModification2DLookAt

type SkeletonModification2DLookAt = classdb.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.

type SkeletonModification2DPhysicalBones

type SkeletonModification2DPhysicalBones = classdb.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.

type SkeletonModification2DStackHolder

type SkeletonModification2DStackHolder = classdb.SkeletonModification2DStackHolder

This SkeletonModification2D holds a reference to a SkeletonModificationStack2D, allowing you to use multiple modification stacks on a single Skeleton2D. [b]Note:[/b] The modifications in the held SkeletonModificationStack2D will only be executed if their execution mode matches the execution mode of the SkeletonModification2DStackHolder.

type SkeletonModification2DTwoBoneIK

type SkeletonModification2DTwoBoneIK = classdb.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.

type SkeletonModificationStack2D

type SkeletonModificationStack2D = classdb.SkeletonModificationStack2D

This resource is used by the Skeleton and holds a stack of [SkeletonModification2D]s. 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 [i]before[/i] the arms on a humanoid skeleton. This resource also controls how strongly all of the modifications are applied to the Skeleton2D.

type SkeletonProfile

type SkeletonProfile = classdb.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. [b]Note:[/b] These parameters need to be set only when creating a custom profile. In SkeletonProfileHumanoid, they are defined internally as read-only values.

type SkeletonProfileHumanoid

type SkeletonProfileHumanoid = classdb.SkeletonProfileHumanoid

A SkeletonProfile as a preset that is optimized for the human form. This exists for standardization, so all parameters are read-only.

type SkeletonProfileTailDirection

type SkeletonProfileTailDirection = classdb.SkeletonProfileTailDirection
const (
	/*Direction to the average coordinates of bone children.*/
	SkeletonProfileTailDirectionAverageChildren SkeletonProfileTailDirection = 0
	/*Direction to the coordinates of specified bone child.*/
	SkeletonProfileTailDirectionSpecificChild SkeletonProfileTailDirection = 1
	/*Direction is not calculated.*/
	SkeletonProfileTailDirectionEnd SkeletonProfileTailDirection = 2
)

type Skin

type Skin = classdb.Skin

type SkinReference

type SkinReference = classdb.SkinReference

type Sky

type Sky = classdb.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.

type SkyProcessMode

type SkyProcessMode = classdb.SkyProcessMode
const (
	/*Automatically selects the appropriate process mode based on your sky shader. If your shader uses [code]TIME[/code] or [code]POSITION[/code], this will use [constant PROCESS_MODE_REALTIME]. If your shader uses any of the [code]LIGHT_*[/code] variables or any custom uniforms, this uses [constant PROCESS_MODE_INCREMENTAL]. Otherwise, this defaults to [constant PROCESS_MODE_QUALITY].*/
	SkyProcessModeAutomatic SkyProcessMode = 0
	/*Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than [constant PROCESS_MODE_REALTIME] but takes much longer to generate. This should not be used if you plan on changing the sky at runtime. If you are finding that the reflection is not blurry enough and is showing sparkles or fireflies, try increasing [member ProjectSettings.rendering/reflections/sky_reflections/ggx_samples].*/
	SkyProcessModeQuality SkyProcessMode = 1
	/*Uses the same high quality importance sampling to process the radiance map as [constant PROCESS_MODE_QUALITY], but updates over several frames. The number of frames is determined by [member ProjectSettings.rendering/reflections/sky_reflections/roughness_layers]. Use this when you need highest quality radiance maps, but have a sky that updates slowly.*/
	SkyProcessModeIncremental SkyProcessMode = 2
	/*Uses the fast filtering algorithm to process the radiance map. In general this results in lower quality, but substantially faster run times. If you need better quality, but still need to update the sky every frame, consider turning on [member ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality].
	  [b]Note:[/b] The fast filtering algorithm is limited to 256×256 cubemaps, so [member radiance_size] must be set to [constant RADIANCE_SIZE_256]. Otherwise, a warning is printed and the overridden radiance size is ignored.*/
	SkyProcessModeRealtime SkyProcessMode = 3
)

type SkyRadianceSize

type SkyRadianceSize = classdb.SkyRadianceSize
const (
	/*Radiance texture size is 32×32 pixels.*/
	SkyRadianceSize32 SkyRadianceSize = 0
	/*Radiance texture size is 64×64 pixels.*/
	SkyRadianceSize64 SkyRadianceSize = 1
	/*Radiance texture size is 128×128 pixels.*/
	SkyRadianceSize128 SkyRadianceSize = 2
	/*Radiance texture size is 256×256 pixels.*/
	SkyRadianceSize256 SkyRadianceSize = 3
	/*Radiance texture size is 512×512 pixels.*/
	SkyRadianceSize512 SkyRadianceSize = 4
	/*Radiance texture size is 1024×1024 pixels.*/
	SkyRadianceSize1024 SkyRadianceSize = 5
	/*Radiance texture size is 2048×2048 pixels.*/
	SkyRadianceSize2048 SkyRadianceSize = 6
	/*Represents the size of the [enum RadianceSize] enum.*/
	SkyRadianceSizeMax SkyRadianceSize = 7
)

type Slider

type Slider = classdb.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.

type SliderJoint3D

type SliderJoint3D = classdb.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.

type SliderJoint3DParam

type SliderJoint3DParam = classdb.SliderJoint3DParam
const (
	/*The maximum difference between the pivot points on their X axis before damping happens.*/
	SliderJoint3DParamLinearLimitUpper SliderJoint3DParam = 0
	/*The minimum difference between the pivot points on their X axis before damping happens.*/
	SliderJoint3DParamLinearLimitLower SliderJoint3DParam = 1
	/*A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement.*/
	SliderJoint3DParamLinearLimitSoftness SliderJoint3DParam = 2
	/*The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost.*/
	SliderJoint3DParamLinearLimitRestitution SliderJoint3DParam = 3
	/*The amount of damping once the slider limits are surpassed.*/
	SliderJoint3DParamLinearLimitDamping SliderJoint3DParam = 4
	/*A factor applied to the movement across the slider axis as long as the slider is in the limits. The lower, the slower the movement.*/
	SliderJoint3DParamLinearMotionSoftness SliderJoint3DParam = 5
	/*The amount of restitution inside the slider limits.*/
	SliderJoint3DParamLinearMotionRestitution SliderJoint3DParam = 6
	/*The amount of damping inside the slider limits.*/
	SliderJoint3DParamLinearMotionDamping SliderJoint3DParam = 7
	/*A factor applied to the movement across axes orthogonal to the slider.*/
	SliderJoint3DParamLinearOrthogonalSoftness SliderJoint3DParam = 8
	/*The amount of restitution when movement is across axes orthogonal to the slider.*/
	SliderJoint3DParamLinearOrthogonalRestitution SliderJoint3DParam = 9
	/*The amount of damping when movement is across axes orthogonal to the slider.*/
	SliderJoint3DParamLinearOrthogonalDamping SliderJoint3DParam = 10
	/*The upper limit of rotation in the slider.*/
	SliderJoint3DParamAngularLimitUpper SliderJoint3DParam = 11
	/*The lower limit of rotation in the slider.*/
	SliderJoint3DParamAngularLimitLower SliderJoint3DParam = 12
	/*A factor applied to the all rotation once the limit is surpassed.*/
	SliderJoint3DParamAngularLimitSoftness SliderJoint3DParam = 13
	/*The amount of restitution of the rotation when the limit is surpassed.*/
	SliderJoint3DParamAngularLimitRestitution SliderJoint3DParam = 14
	/*The amount of damping of the rotation when the limit is surpassed.*/
	SliderJoint3DParamAngularLimitDamping SliderJoint3DParam = 15
	/*A factor applied to the all rotation in the limits.*/
	SliderJoint3DParamAngularMotionSoftness SliderJoint3DParam = 16
	/*The amount of restitution of the rotation in the limits.*/
	SliderJoint3DParamAngularMotionRestitution SliderJoint3DParam = 17
	/*The amount of damping of the rotation in the limits.*/
	SliderJoint3DParamAngularMotionDamping SliderJoint3DParam = 18
	/*A factor applied to the all rotation across axes orthogonal to the slider.*/
	SliderJoint3DParamAngularOrthogonalSoftness SliderJoint3DParam = 19
	/*The amount of restitution of the rotation across axes orthogonal to the slider.*/
	SliderJoint3DParamAngularOrthogonalRestitution SliderJoint3DParam = 20
	/*The amount of damping of the rotation across axes orthogonal to the slider.*/
	SliderJoint3DParamAngularOrthogonalDamping SliderJoint3DParam = 21
	/*Represents the size of the [enum Param] enum.*/
	SliderJoint3DParamMax SliderJoint3DParam = 22
)

type SoftBody3D

type SoftBody3D = classdb.SoftBody3D

A deformable 3D physics mesh. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials. [b]Note:[/b] There are many known bugs in SoftBody3D. Therefore, it's not recommended to use them for things that can affect gameplay (such as trampolines).

type SoftBody3DDisableMode

type SoftBody3DDisableMode = classdb.SoftBody3DDisableMode
const (
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], remove from the physics simulation to stop all physics interactions with this [SoftBody3D].
	  Automatically re-added to the physics simulation when the [Node] is processed again.*/
	SoftBody3DDisableModeRemove SoftBody3DDisableMode = 0
	/*When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], do not affect the physics simulation.*/
	SoftBody3DDisableModeKeepActive SoftBody3DDisableMode = 1
)

type SphereMesh

type SphereMesh = classdb.SphereMesh

Class representing a spherical PrimitiveMesh.

type SphereOccluder3D

type SphereOccluder3D = classdb.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.

type SphereShape3D

type SphereShape3D = classdb.SphereShape3D

A 3D sphere shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. [b]Performance:[/b] SphereShape3D is fast to check collisions against. It is faster than BoxShape3D, CapsuleShape3D, and CylinderShape3D.

type SpinBox

type SpinBox = classdb.SpinBox

SpinBox is a numerical input text field. It allows entering integers and floating point numbers. [b]Example:[/b] [codeblocks] [gdscript] var spin_box = SpinBox.new() add_child(spin_box) var line_edit = spin_box.get_line_edit() line_edit.context_menu_enabled = false spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT [/gdscript] [csharp] var spinBox = new SpinBox(); AddChild(spinBox); var lineEdit = spinBox.GetLineEdit(); lineEdit.ContextMenuEnabled = false; spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right; [/csharp] [/codeblocks] 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. [b]Note:[/b] 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. [b]Note:[/b] SpinBox relies on an underlying LineEdit node. To theme a SpinBox's background, add theme items for LineEdit and customize them. [b]Note:[/b] If you want to implement drag and drop for the underlying LineEdit, you can use [method Control.set_drag_forwarding] on the node returned by [method get_line_edit].

type SplitContainer

type SplitContainer = classdb.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.

type SplitContainerDraggerVisibility

type SplitContainerDraggerVisibility = classdb.SplitContainerDraggerVisibility
const (
	/*The split dragger is visible when the cursor hovers it.*/
	SplitContainerDraggerVisible SplitContainerDraggerVisibility = 0
	/*The split dragger is never visible.*/
	SplitContainerDraggerHidden SplitContainerDraggerVisibility = 1
	/*The split dragger is never visible and its space collapsed.*/
	SplitContainerDraggerHiddenCollapsed SplitContainerDraggerVisibility = 2
)

type SpotLight3D

type SpotLight3D = classdb.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. [b]Note:[/b] 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 [member ProjectSettings.rendering/limits/opengl/max_lights_per_object]. [b]Note:[/b] 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, [member GeometryInstance3D.extra_cull_margin] must be increased on the mesh. Otherwise, the light may not be visible on the mesh.

type SpringArm3D

type SpringArm3D = classdb.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).

type Sprite2D

type Sprite2D = classdb.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.

type Sprite3D

type Sprite3D = classdb.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.

type SpriteBase3D

type SpriteBase3D = classdb.SpriteBase3D

A node that displays 2D texture information in a 3D environment. See also Sprite3D where many other properties are defined.

type SpriteBase3DAlphaCutMode

type SpriteBase3DAlphaCutMode = classdb.SpriteBase3DAlphaCutMode
const (
	/*This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping.*/
	SpriteBase3DAlphaCutDisabled SpriteBase3DAlphaCutMode = 0
	/*This mode only allows fully transparent or fully opaque pixels. Harsh edges will be visible unless some form of screen-space antialiasing is enabled (see [member ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa]). On the bright side, this mode doesn't suffer from transparency sorting issues when multiple transparent materials are overlapping. This mode is also known as [i]alpha testing[/i] or [i]1-bit transparency[/i].*/
	SpriteBase3DAlphaCutDiscard SpriteBase3DAlphaCutMode = 1
	/*This mode draws fully opaque pixels in the depth prepass. This is slower than [constant ALPHA_CUT_DISABLED] or [constant ALPHA_CUT_DISCARD], but it allows displaying translucent areas and smooth edges while using proper sorting.*/
	SpriteBase3DAlphaCutOpaquePrepass SpriteBase3DAlphaCutMode = 2
	/*This mode draws cuts off all values below a spatially-deterministic threshold, the rest will remain opaque.*/
	SpriteBase3DAlphaCutHash SpriteBase3DAlphaCutMode = 3
)

type SpriteBase3DDrawFlags

type SpriteBase3DDrawFlags = classdb.SpriteBase3DDrawFlags
const (
	/*If set, the texture's transparency and the opacity are used to make those parts of the sprite invisible.*/
	SpriteBase3DFlagTransparent SpriteBase3DDrawFlags = 0
	/*If set, lights in the environment affect the sprite.*/
	SpriteBase3DFlagShaded SpriteBase3DDrawFlags = 1
	/*If set, texture can be seen from the back as well. If not, the texture is invisible when looking at it from behind.*/
	SpriteBase3DFlagDoubleSided SpriteBase3DDrawFlags = 2
	/*Disables the depth test, so this object is drawn on top of all others. However, objects drawn after it in the draw order may cover it.*/
	SpriteBase3DFlagDisableDepthTest SpriteBase3DDrawFlags = 3
	/*Label is scaled by depth so that it always appears the same size on screen.*/
	SpriteBase3DFlagFixedSize SpriteBase3DDrawFlags = 4
	/*Represents the size of the [enum DrawFlags] enum.*/
	SpriteBase3DFlagMax SpriteBase3DDrawFlags = 5
)

type SpriteFrames

type SpriteFrames = classdb.SpriteFrames

Sprite frame library for an AnimatedSprite2D or AnimatedSprite3D node. Contains frames and animation data for playback.

type StandardMaterial3D

type StandardMaterial3D = classdb.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.

type StaticBody2D

type StaticBody2D = classdb.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, [AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_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 [member constant_linear_velocity] and [member constant_angular_velocity]).

type StaticBody3D

type StaticBody3D = classdb.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, [AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to [constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_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 [member constant_linear_velocity] and [member constant_angular_velocity]).

type StreamPeer

type StreamPeer = classdb.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. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type StreamPeerBuffer

type StreamPeerBuffer = classdb.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.

type StreamPeerExtension

type StreamPeerExtension = classdb.StreamPeerExtension

type StreamPeerGZIP

type StreamPeerGZIP = classdb.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 [method start_compression] (or [method start_decompression]), calling [method StreamPeer.put_partial_data] on this stream will compress (or decompress) the data, writing it to the internal buffer. Calling [method StreamPeer.get_available_bytes] will return the pending bytes in the internal buffer, and [method StreamPeer.get_partial_data] will retrieve the compressed (or decompressed) bytes from it. When the stream is over, you must call [method finish] to ensure the internal buffer is properly flushed (make sure to call [method StreamPeer.get_available_bytes] on last time to check if more data needs to be read after that).

type StreamPeerTCP

type StreamPeerTCP = classdb.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. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type StreamPeerTCPStatus

type StreamPeerTCPStatus = classdb.StreamPeerTCPStatus
const (
	/*The initial status of the [StreamPeerTCP]. This is also the status after disconnecting.*/
	StreamPeerTCPStatusNone StreamPeerTCPStatus = 0
	/*A status representing a [StreamPeerTCP] that is connecting to a host.*/
	StreamPeerTCPStatusConnecting StreamPeerTCPStatus = 1
	/*A status representing a [StreamPeerTCP] that is connected to a host.*/
	StreamPeerTCPStatusConnected StreamPeerTCPStatus = 2
	/*A status representing a [StreamPeerTCP] in error state.*/
	StreamPeerTCPStatusError StreamPeerTCPStatus = 3
)

type StreamPeerTLS

type StreamPeerTLS = classdb.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. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type StreamPeerTLSStatus

type StreamPeerTLSStatus = classdb.StreamPeerTLSStatus
const (
	/*A status representing a [StreamPeerTLS] that is disconnected.*/
	StreamPeerTLSStatusDisconnected StreamPeerTLSStatus = 0
	/*A status representing a [StreamPeerTLS] during handshaking.*/
	StreamPeerTLSStatusHandshaking StreamPeerTLSStatus = 1
	/*A status representing a [StreamPeerTLS] that is connected to a host.*/
	StreamPeerTLSStatusConnected StreamPeerTLSStatus = 2
	/*A status representing a [StreamPeerTLS] in error state.*/
	StreamPeerTLSStatusError StreamPeerTLSStatus = 3
	/*An error status that shows a mismatch in the TLS certificate domain presented by the host and the domain requested for validation.*/
	StreamPeerTLSStatusErrorHostnameMismatch StreamPeerTLSStatus = 4
)

type String

type String = gd.String

type StringName

type StringName = gd.StringName

type StyleBox

type StyleBox = classdb.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. [b]Note:[/b] For control nodes that have [i]Theme Properties[/i], the [code]focus[/code] StyleBox is displayed over the [code]normal[/code], [code]hover[/code] or [code]pressed[/code] StyleBox. This makes the [code]focus[/code] StyleBox more reusable across different nodes.

// StyleBox methods that can be overridden by a [Class] that extends it.
type StyleBox interface {
	Draw(godot Context, to_canvas_item gd.RID, rect gd.Rect2)
	GetDrawRect(godot Context, rect gd.Rect2) gd.Rect2
	//Virtual method to be implemented by the user. Returns a custom minimum size that the stylebox must respect when drawing. By default [method get_minimum_size] only takes content margins into account. This method can be overridden to add another size restriction. A combination of the default behavior and the output of this method will be used, to account for both sizes.
	GetMinimumSize(godot Context) gd.Vector2
	TestMask(godot Context, point gd.Vector2, rect gd.Rect2) bool
}

type StyleBoxEmpty

type StyleBoxEmpty = classdb.StyleBoxEmpty

An empty StyleBox that can be used to display nothing instead of the default style (e.g. it can "disable" [code]focus[/code] styles).

type StyleBoxFlat

type StyleBoxFlat = classdb.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. [b]Example:[/b] [codeblock] height = 30 corner_radius_top_left = 50 corner_radius_bottom_left = 100 [/codeblock] 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 [b]never[/b] be more than the height. Result: [codeblock] corner_radius_top_left: 10 corner_radius_bottom_left: 20 [/codeblock]

type StyleBoxLine

type StyleBoxLine = classdb.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.

type StyleBoxTexture

type StyleBoxTexture = classdb.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.

type StyleBoxTextureAxisStretchMode

type StyleBoxTextureAxisStretchMode = classdb.StyleBoxTextureAxisStretchMode
const (
	/*Stretch the stylebox's texture. This results in visible distortion unless the texture size matches the stylebox's size perfectly.*/
	StyleBoxTextureAxisStretchModeStretch StyleBoxTextureAxisStretchMode = 0
	/*Repeats the stylebox's texture to match the stylebox's size according to the nine-patch system.*/
	StyleBoxTextureAxisStretchModeTile StyleBoxTextureAxisStretchMode = 1
	/*Repeats the stylebox's texture to match the stylebox's size according to the nine-patch system. Unlike [constant AXIS_STRETCH_MODE_TILE], the texture may be slightly stretched to make the nine-patch texture tile seamlessly.*/
	StyleBoxTextureAxisStretchModeTileFit StyleBoxTextureAxisStretchMode = 2
)

type SubViewport

type SubViewport = classdb.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. [b]Note:[/b] 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.

type SubViewportClearMode

type SubViewportClearMode = classdb.SubViewportClearMode
const (
	/*Always clear the render target before drawing.*/
	SubViewportClearModeAlways SubViewportClearMode = 0
	/*Never clear the render target.*/
	SubViewportClearModeNever SubViewportClearMode = 1
	/*Clear the render target on the next frame, then switch to [constant CLEAR_MODE_NEVER].*/
	SubViewportClearModeOnce SubViewportClearMode = 2
)

type SubViewportContainer

type SubViewportContainer = classdb.SubViewportContainer

A container that displays the contents of underlying SubViewport child nodes. It uses the combined size of the [SubViewport]s as minimum size, unless [member stretch] is enabled. [b]Note:[/b] Changing a SubViewportContainer's [member Control.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). [b]Note:[/b] The SubViewportContainer forwards mouse-enter and mouse-exit notifications to its sub-viewports.

// SubViewportContainer methods that can be overridden by a [Class] that extends it.
type SubViewportContainer interface {
	//Virtual method to be implemented by the user. If it returns [code]true[/code], the [param event] is propagated to [SubViewport] children. Propagation doesn't happen if it returns [code]false[/code]. If the function is not implemented, all events are propagated to SubViewports.
	PropagateInputEvent(godot Context, event InputEvent) bool
}

type SubViewportUpdateMode

type SubViewportUpdateMode = classdb.SubViewportUpdateMode
const (
	/*Do not update the render target.*/
	SubViewportUpdateDisabled SubViewportUpdateMode = 0
	/*Update the render target once, then switch to [constant UPDATE_DISABLED].*/
	SubViewportUpdateOnce SubViewportUpdateMode = 1
	/*Update the render target only when it is visible. This is the default value.*/
	SubViewportUpdateWhenVisible SubViewportUpdateMode = 2
	/*Update the render target only when its parent is visible.*/
	SubViewportUpdateWhenParentVisible SubViewportUpdateMode = 3
	/*Always update the render target.*/
	SubViewportUpdateAlways SubViewportUpdateMode = 4
)

type SurfaceTool

type SurfaceTool = classdb.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 [method add_vertex]. For example, to add vertex colors and UVs: [codeblocks] [gdscript] var st = SurfaceTool.new() st.begin(Mesh.PRIMITIVE_TRIANGLES) st.set_color(Color(1, 0, 0)) st.set_uv(Vector2(0, 0)) st.add_vertex(Vector3(0, 0, 0)) [/gdscript] [csharp] 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)); [/csharp] [/codeblocks] 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 [method set_uv] or [method set_color], then the last values would be used. Vertex attributes must be passed [b]before[/b] calling [method add_vertex]. 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. [b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.

type SurfaceToolCustomFormat

type SurfaceToolCustomFormat = classdb.SurfaceToolCustomFormat
const (
	/*Limits range of data passed to [method set_custom] to unsigned normalized 0 to 1 stored in 8 bits per channel. See [constant Mesh.ARRAY_CUSTOM_RGBA8_UNORM].*/
	SurfaceToolCustomRgba8Unorm SurfaceToolCustomFormat = 0
	/*Limits range of data passed to [method set_custom] to signed normalized -1 to 1 stored in 8 bits per channel. See [constant Mesh.ARRAY_CUSTOM_RGBA8_SNORM].*/
	SurfaceToolCustomRgba8Snorm SurfaceToolCustomFormat = 1
	/*Stores data passed to [method set_custom] as half precision floats, and uses only red and green color channels. See [constant Mesh.ARRAY_CUSTOM_RG_HALF].*/
	SurfaceToolCustomRgHalf SurfaceToolCustomFormat = 2
	/*Stores data passed to [method set_custom] as half precision floats and uses all color channels. See [constant Mesh.ARRAY_CUSTOM_RGBA_HALF].*/
	SurfaceToolCustomRgbaHalf SurfaceToolCustomFormat = 3
	/*Stores data passed to [method set_custom] as full precision floats, and uses only red color channel. See [constant Mesh.ARRAY_CUSTOM_R_FLOAT].*/
	SurfaceToolCustomRFloat SurfaceToolCustomFormat = 4
	/*Stores data passed to [method set_custom] as full precision floats, and uses only red and green color channels. See [constant Mesh.ARRAY_CUSTOM_RG_FLOAT].*/
	SurfaceToolCustomRgFloat SurfaceToolCustomFormat = 5
	/*Stores data passed to [method set_custom] as full precision floats, and uses only red, green and blue color channels. See [constant Mesh.ARRAY_CUSTOM_RGB_FLOAT].*/
	SurfaceToolCustomRgbFloat SurfaceToolCustomFormat = 6
	/*Stores data passed to [method set_custom] as full precision floats, and uses all color channels. See [constant Mesh.ARRAY_CUSTOM_RGBA_FLOAT].*/
	SurfaceToolCustomRgbaFloat SurfaceToolCustomFormat = 7
	/*Used to indicate a disabled custom channel.*/
	SurfaceToolCustomMax SurfaceToolCustomFormat = 8
)

type SurfaceToolSkinWeightCount

type SurfaceToolSkinWeightCount = classdb.SurfaceToolSkinWeightCount
const (
	/*Each individual vertex can be influenced by only 4 bone weights.*/
	SurfaceToolSkin4Weights SurfaceToolSkinWeightCount = 0
	/*Each individual vertex can be influenced by up to 8 bone weights.*/
	SurfaceToolSkin8Weights SurfaceToolSkinWeightCount = 1
)

type SyntaxHighlighter

type SyntaxHighlighter = classdb.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. [b]Note:[/b] A SyntaxHighlighter instance should not be used across multiple TextEdit nodes.

// SyntaxHighlighter methods that can be overridden by a [Class] that extends it.
type SyntaxHighlighter interface {
	//Virtual method which can be overridden to return syntax highlighting data.
	//See [method get_line_syntax_highlighting] for more details.
	GetLineSyntaxHighlighting(godot Context, line gd.Int) gd.Dictionary
	//Virtual method which can be overridden to clear any local caches.
	ClearHighlightingCache(godot Context)
	//Virtual method which can be overridden to update any local caches.
	UpdateCache(godot Context)
}

type SystemFont

type SystemFont = classdb.SystemFont

SystemFont loads a font from a system font with the first matching name from [member font_names]. 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. [b]Note:[/b] This class is implemented on iOS, Linux, macOS and Windows, on other platforms it will fallback to default theme font.

type TCPServer

type TCPServer = classdb.TCPServer

A TCP server. Listens to connections on a port and returns a StreamPeerTCP when it gets an incoming connection. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type TLSOptions

type TLSOptions = classdb.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 [method client], [method client_unsafe], or [method server] should be used instead. [codeblocks] [gdscript] # Create a TLS client configuration which uses our custom trusted CA chain. var client_trusted_cas = load("res://my_trusted_cas.crt") var client_tls_options = TLSOptions.client(client_trusted_cas)

# Create a TLS server configuration. var server_certs = load("res://my_server_cas.crt") var server_key = load("res://my_server_key.key") var server_tls_options = TLSOptions.server(server_key, server_certs) [/gdscript] [/codeblocks]

type TabBar

type TabBar = classdb.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.

type TabBarAlignmentMode

type TabBarAlignmentMode = classdb.TabBarAlignmentMode
const (
	/*Places tabs to the left.*/
	TabBarAlignmentLeft TabBarAlignmentMode = 0
	/*Places tabs in the middle.*/
	TabBarAlignmentCenter TabBarAlignmentMode = 1
	/*Places tabs to the right.*/
	TabBarAlignmentRight TabBarAlignmentMode = 2
	/*Represents the size of the [enum AlignmentMode] enum.*/
	TabBarAlignmentMax TabBarAlignmentMode = 3
)

type TabBarCloseButtonDisplayPolicy

type TabBarCloseButtonDisplayPolicy = classdb.TabBarCloseButtonDisplayPolicy
const (
	/*Never show the close buttons.*/
	TabBarCloseButtonShowNever TabBarCloseButtonDisplayPolicy = 0
	/*Only show the close button on the currently active tab.*/
	TabBarCloseButtonShowActiveOnly TabBarCloseButtonDisplayPolicy = 1
	/*Show the close button on all tabs.*/
	TabBarCloseButtonShowAlways TabBarCloseButtonDisplayPolicy = 2
	/*Represents the size of the [enum CloseButtonDisplayPolicy] enum.*/
	TabBarCloseButtonMax TabBarCloseButtonDisplayPolicy = 3
)

type TabContainer

type TabContainer = classdb.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. [b]Note:[/b] The drawing of the clickable tabs is handled by this node; TabBar is not needed.

type TextEdit

type TextEdit = classdb.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. [b]Note:[/b] Most viewport, caret and edit methods contain a [code]caret_index[/code] argument for [member caret_multiple] support. The argument should be one of the following: [code]-1[/code] for all carets, [code]0[/code] for the main caret, or greater than [code]0[/code] for secondary carets. [b]Note:[/b] When holding down [kbd]Alt[/kbd], the vertical scroll wheel will scroll 5 times as fast as it would normally do. This also works in the Godot script editor.

// TextEdit methods that can be overridden by a [Class] that extends it.
type TextEdit interface {
	//Override this method to define what happens when the user types in the provided key [param unicode_char].
	HandleUnicodeInput(godot Context, unicode_char gd.Int, caret_index gd.Int)
	//Override this method to define what happens when the user presses the backspace key.
	Backspace(godot Context, caret_index gd.Int)
	//Override this method to define what happens when the user performs a cut operation.
	Cut(godot Context, caret_index gd.Int)
	//Override this method to define what happens when the user performs a copy operation.
	Copy(godot Context, caret_index gd.Int)
	//Override this method to define what happens when the user performs a paste operation.
	Paste(godot Context, caret_index gd.Int)
	//Override this method to define what happens when the user performs a paste operation with middle mouse button.
	//[b]Note:[/b] This method is only implemented on Linux.
	PastePrimaryClipboard(godot Context, caret_index gd.Int)
}

type TextEditCaretType

type TextEditCaretType = classdb.TextEditCaretType
const (
	/*Vertical line caret.*/
	TextEditCaretTypeLine TextEditCaretType = 0
	/*Block caret.*/
	TextEditCaretTypeBlock TextEditCaretType = 1
)

type TextEditEditAction

type TextEditEditAction = classdb.TextEditEditAction
const (
	/*No current action.*/
	TextEditActionNone TextEditEditAction = 0
	/*A typing action.*/
	TextEditActionTyping TextEditEditAction = 1
	/*A backwards delete action.*/
	TextEditActionBackspace TextEditEditAction = 2
	/*A forward delete action.*/
	TextEditActionDelete TextEditEditAction = 3
)

type TextEditGutterType

type TextEditGutterType = classdb.TextEditGutterType
const (
	/*Draw a string.*/
	TextEditGutterTypeString TextEditGutterType = 0
	/*Draw an icon.*/
	TextEditGutterTypeIcon TextEditGutterType = 1
	/*Custom draw.*/
	TextEditGutterTypeCustom TextEditGutterType = 2
)

type TextEditLineWrappingMode

type TextEditLineWrappingMode = classdb.TextEditLineWrappingMode
const (
	/*Line wrapping is disabled.*/
	TextEditLineWrappingNone TextEditLineWrappingMode = 0
	/*Line wrapping occurs at the control boundary, beyond what would normally be visible.*/
	TextEditLineWrappingBoundary TextEditLineWrappingMode = 1
)

type TextEditMenuItems

type TextEditMenuItems = classdb.TextEditMenuItems
const (
	/*Cuts (copies and clears) the selected text.*/
	TextEditMenuCut TextEditMenuItems = 0
	/*Copies the selected text.*/
	TextEditMenuCopy TextEditMenuItems = 1
	/*Pastes the clipboard text over the selected text (or at the cursor's position).*/
	TextEditMenuPaste TextEditMenuItems = 2
	/*Erases the whole [TextEdit] text.*/
	TextEditMenuClear TextEditMenuItems = 3
	/*Selects the whole [TextEdit] text.*/
	TextEditMenuSelectAll TextEditMenuItems = 4
	/*Undoes the previous action.*/
	TextEditMenuUndo TextEditMenuItems = 5
	/*Redoes the previous action.*/
	TextEditMenuRedo TextEditMenuItems = 6
	/*ID of "Text Writing Direction" submenu.*/
	TextEditMenuSubmenuTextDir TextEditMenuItems = 7
	/*Sets text direction to inherited.*/
	TextEditMenuDirInherited TextEditMenuItems = 8
	/*Sets text direction to automatic.*/
	TextEditMenuDirAuto TextEditMenuItems = 9
	/*Sets text direction to left-to-right.*/
	TextEditMenuDirLtr TextEditMenuItems = 10
	/*Sets text direction to right-to-left.*/
	TextEditMenuDirRtl TextEditMenuItems = 11
	/*Toggles control character display.*/
	TextEditMenuDisplayUcc TextEditMenuItems = 12
	/*ID of "Insert Control Character" submenu.*/
	TextEditMenuSubmenuInsertUcc TextEditMenuItems = 13
	/*Inserts left-to-right mark (LRM) character.*/
	TextEditMenuInsertLrm TextEditMenuItems = 14
	/*Inserts right-to-left mark (RLM) character.*/
	TextEditMenuInsertRlm TextEditMenuItems = 15
	/*Inserts start of left-to-right embedding (LRE) character.*/
	TextEditMenuInsertLre TextEditMenuItems = 16
	/*Inserts start of right-to-left embedding (RLE) character.*/
	TextEditMenuInsertRle TextEditMenuItems = 17
	/*Inserts start of left-to-right override (LRO) character.*/
	TextEditMenuInsertLro TextEditMenuItems = 18
	/*Inserts start of right-to-left override (RLO) character.*/
	TextEditMenuInsertRlo TextEditMenuItems = 19
	/*Inserts pop direction formatting (PDF) character.*/
	TextEditMenuInsertPdf TextEditMenuItems = 20
	/*Inserts Arabic letter mark (ALM) character.*/
	TextEditMenuInsertAlm TextEditMenuItems = 21
	/*Inserts left-to-right isolate (LRI) character.*/
	TextEditMenuInsertLri TextEditMenuItems = 22
	/*Inserts right-to-left isolate (RLI) character.*/
	TextEditMenuInsertRli TextEditMenuItems = 23
	/*Inserts first strong isolate (FSI) character.*/
	TextEditMenuInsertFsi TextEditMenuItems = 24
	/*Inserts pop direction isolate (PDI) character.*/
	TextEditMenuInsertPdi TextEditMenuItems = 25
	/*Inserts zero width joiner (ZWJ) character.*/
	TextEditMenuInsertZwj TextEditMenuItems = 26
	/*Inserts zero width non-joiner (ZWNJ) character.*/
	TextEditMenuInsertZwnj TextEditMenuItems = 27
	/*Inserts word joiner (WJ) character.*/
	TextEditMenuInsertWj TextEditMenuItems = 28
	/*Inserts soft hyphen (SHY) character.*/
	TextEditMenuInsertShy TextEditMenuItems = 29
	/*Represents the size of the [enum MenuItems] enum.*/
	TextEditMenuMax TextEditMenuItems = 30
)

type TextEditSearchFlags

type TextEditSearchFlags = classdb.TextEditSearchFlags
const (
	/*Match case when searching.*/
	TextEditSearchMatchCase TextEditSearchFlags = 1
	/*Match whole words when searching.*/
	TextEditSearchWholeWords TextEditSearchFlags = 2
	/*Search from end to beginning.*/
	TextEditSearchBackwards TextEditSearchFlags = 4
)

type TextEditSelectionMode

type TextEditSelectionMode = classdb.TextEditSelectionMode
const (
	/*Not selecting.*/
	TextEditSelectionModeNone TextEditSelectionMode = 0
	/*Select as if [code]shift[/code] is pressed.*/
	TextEditSelectionModeShift TextEditSelectionMode = 1
	/*Select single characters as if the user single clicked.*/
	TextEditSelectionModePointer TextEditSelectionMode = 2
	/*Select whole words as if the user double clicked.*/
	TextEditSelectionModeWord TextEditSelectionMode = 3
	/*Select whole lines as if the user triple clicked.*/
	TextEditSelectionModeLine TextEditSelectionMode = 4
)

type TextLine

type TextLine = classdb.TextLine

Abstraction over TextServer for handling a single line of text.

type TextMesh

type TextMesh = classdb.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.

type TextParagraph

type TextParagraph = classdb.TextParagraph

Abstraction over TextServer for handling a single paragraph of text.

type TextServer

type TextServer = classdb.TextServer

TextServer is the API backend for managing fonts and rendering text.

type TextServerAdvanced

type TextServerAdvanced = classdb.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.

type TextServerAutowrapMode

type TextServerAutowrapMode = classdb.TextServerAutowrapMode
const (
	/*Autowrap is disabled.*/
	TextServerAutowrapOff TextServerAutowrapMode = 0
	/*Wraps the text inside the node's bounding rectangle by allowing to break lines at arbitrary positions, which is useful when very limited space is available.*/
	TextServerAutowrapArbitrary TextServerAutowrapMode = 1
	/*Wraps the text inside the node's bounding rectangle by soft-breaking between words.*/
	TextServerAutowrapWord TextServerAutowrapMode = 2
	/*Behaves similarly to [constant AUTOWRAP_WORD], but force-breaks a word if that single word does not fit in one line.*/
	TextServerAutowrapWordSmart TextServerAutowrapMode = 3
)

type TextServerContourPointTag

type TextServerContourPointTag = classdb.TextServerContourPointTag
const (
	/*Contour point is on the curve.*/
	TextServerContourCurveTagOn TextServerContourPointTag = 1
	/*Contour point isn't on the curve, but serves as a control point for a conic (quadratic) Bézier arc.*/
	TextServerContourCurveTagOffConic TextServerContourPointTag = 0
	/*Contour point isn't on the curve, but serves as a control point for a cubic Bézier arc.*/
	TextServerContourCurveTagOffCubic TextServerContourPointTag = 2
)

type TextServerDirection

type TextServerDirection = classdb.TextServerDirection
const (
	/*Text direction is determined based on contents and current locale.*/
	TextServerDirectionAuto TextServerDirection = 0
	/*Text is written from left to right.*/
	TextServerDirectionLtr TextServerDirection = 1
	/*Text is written from right to left.*/
	TextServerDirectionRtl TextServerDirection = 2
	/*Text writing direction is the same as base string writing direction. Used for BiDi override only.*/
	TextServerDirectionInherited TextServerDirection = 3
)

type TextServerDummy

type TextServerDummy = classdb.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: [codeblock] 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)

[/codeblock] The command line argument [code]--text-driver Dummy[/code] (case-sensitive) can be used to force the "Dummy" TextServer on any project.

type TextServerExtension

type TextServerExtension = classdb.TextServerExtension

External TextServer implementations should inherit from this class.

// TextServerExtension methods that can be overridden by a [Class] that extends it.
type TextServerExtension interface {
	HasFeature(godot Context, feature TextServerFeature) bool
	GetName(godot Context) gd.String
	GetFeatures(godot Context) gd.Int
	FreeRid(godot Context, rid gd.RID)
	Has(godot Context, rid gd.RID) bool
	LoadSupportData(godot Context, filename gd.String) bool
	GetSupportDataFilename(godot Context) gd.String
	GetSupportDataInfo(godot Context) gd.String
	SaveSupportData(godot Context, filename gd.String) bool
	IsLocaleRightToLeft(godot Context, locale gd.String) bool
	NameToTag(godot Context, name gd.String) gd.Int
	TagToName(godot Context, tag gd.Int) gd.String
	CreateFont(godot Context) gd.RID
	CreateFontLinkedVariation(godot Context, font_rid gd.RID) gd.RID
	FontSetData(godot Context, font_rid gd.RID, data gd.PackedByteArray)
	FontSetDataPtr(godot Context, font_rid gd.RID, data_ptr unsafe.Pointer, data_size gd.Int)
	FontSetFaceIndex(godot Context, font_rid gd.RID, face_index gd.Int)
	FontGetFaceIndex(godot Context, font_rid gd.RID) gd.Int
	FontGetFaceCount(godot Context, font_rid gd.RID) gd.Int
	FontSetStyle(godot Context, font_rid gd.RID, style TextServerFontStyle)
	FontGetStyle(godot Context, font_rid gd.RID) TextServerFontStyle
	FontSetName(godot Context, font_rid gd.RID, name gd.String)
	FontGetName(godot Context, font_rid gd.RID) gd.String
	FontGetOtNameStrings(godot Context, font_rid gd.RID) gd.Dictionary
	FontSetStyleName(godot Context, font_rid gd.RID, name_style gd.String)
	FontGetStyleName(godot Context, font_rid gd.RID) gd.String
	FontSetWeight(godot Context, font_rid gd.RID, weight gd.Int)
	FontGetWeight(godot Context, font_rid gd.RID) gd.Int
	FontSetStretch(godot Context, font_rid gd.RID, stretch gd.Int)
	FontGetStretch(godot Context, font_rid gd.RID) gd.Int
	FontSetAntialiasing(godot Context, font_rid gd.RID, antialiasing TextServerFontAntialiasing)
	FontGetAntialiasing(godot Context, font_rid gd.RID) TextServerFontAntialiasing
	FontSetGenerateMipmaps(godot Context, font_rid gd.RID, generate_mipmaps bool)
	FontGetGenerateMipmaps(godot Context, font_rid gd.RID) bool
	FontSetMultichannelSignedDistanceField(godot Context, font_rid gd.RID, msdf bool)
	FontIsMultichannelSignedDistanceField(godot Context, font_rid gd.RID) bool
	FontSetMsdfPixelRange(godot Context, font_rid gd.RID, msdf_pixel_range gd.Int)
	FontGetMsdfPixelRange(godot Context, font_rid gd.RID) gd.Int
	FontSetMsdfSize(godot Context, font_rid gd.RID, msdf_size gd.Int)
	FontGetMsdfSize(godot Context, font_rid gd.RID) gd.Int
	FontSetFixedSize(godot Context, font_rid gd.RID, fixed_size gd.Int)
	FontGetFixedSize(godot Context, font_rid gd.RID) gd.Int
	FontSetFixedSizeScaleMode(godot Context, font_rid gd.RID, fixed_size_scale_mode TextServerFixedSizeScaleMode)
	FontGetFixedSizeScaleMode(godot Context, font_rid gd.RID) TextServerFixedSizeScaleMode
	FontSetAllowSystemFallback(godot Context, font_rid gd.RID, allow_system_fallback bool)
	FontIsAllowSystemFallback(godot Context, font_rid gd.RID) bool
	FontSetForceAutohinter(godot Context, font_rid gd.RID, force_autohinter bool)
	FontIsForceAutohinter(godot Context, font_rid gd.RID) bool
	FontSetHinting(godot Context, font_rid gd.RID, hinting TextServerHinting)
	FontGetHinting(godot Context, font_rid gd.RID) TextServerHinting
	FontSetSubpixelPositioning(godot Context, font_rid gd.RID, subpixel_positioning TextServerSubpixelPositioning)
	FontGetSubpixelPositioning(godot Context, font_rid gd.RID) TextServerSubpixelPositioning
	FontSetEmbolden(godot Context, font_rid gd.RID, strength gd.Float)
	FontGetEmbolden(godot Context, font_rid gd.RID) gd.Float
	FontSetSpacing(godot Context, font_rid gd.RID, spacing TextServerSpacingType, value gd.Int)
	FontGetSpacing(godot Context, font_rid gd.RID, spacing TextServerSpacingType) gd.Int
	FontSetTransform(godot Context, font_rid gd.RID, transform gd.Transform2D)
	FontGetTransform(godot Context, font_rid gd.RID) gd.Transform2D
	FontSetVariationCoordinates(godot Context, font_rid gd.RID, variation_coordinates gd.Dictionary)
	FontGetVariationCoordinates(godot Context, font_rid gd.RID) gd.Dictionary
	FontSetOversampling(godot Context, font_rid gd.RID, oversampling gd.Float)
	FontGetOversampling(godot Context, font_rid gd.RID) gd.Float
	FontGetSizeCacheList(godot Context, font_rid gd.RID) gd.ArrayOf[gd.Vector2i]
	FontClearSizeCache(godot Context, font_rid gd.RID)
	FontRemoveSizeCache(godot Context, font_rid gd.RID, size gd.Vector2i)
	FontSetAscent(godot Context, font_rid gd.RID, size gd.Int, ascent gd.Float)
	FontGetAscent(godot Context, font_rid gd.RID, size gd.Int) gd.Float
	FontSetDescent(godot Context, font_rid gd.RID, size gd.Int, descent gd.Float)
	FontGetDescent(godot Context, font_rid gd.RID, size gd.Int) gd.Float
	FontSetUnderlinePosition(godot Context, font_rid gd.RID, size gd.Int, underline_position gd.Float)
	FontGetUnderlinePosition(godot Context, font_rid gd.RID, size gd.Int) gd.Float
	FontSetUnderlineThickness(godot Context, font_rid gd.RID, size gd.Int, underline_thickness gd.Float)
	FontGetUnderlineThickness(godot Context, font_rid gd.RID, size gd.Int) gd.Float
	FontSetScale(godot Context, font_rid gd.RID, size gd.Int, scale gd.Float)
	FontGetScale(godot Context, font_rid gd.RID, size gd.Int) gd.Float
	FontGetTextureCount(godot Context, font_rid gd.RID, size gd.Vector2i) gd.Int
	FontClearTextures(godot Context, font_rid gd.RID, size gd.Vector2i)
	FontRemoveTexture(godot Context, font_rid gd.RID, size gd.Vector2i, texture_index gd.Int)
	FontSetTextureImage(godot Context, font_rid gd.RID, size gd.Vector2i, texture_index gd.Int, image Image)
	FontGetTextureImage(godot Context, font_rid gd.RID, size gd.Vector2i, texture_index gd.Int) Image
	FontSetTextureOffsets(godot Context, font_rid gd.RID, size gd.Vector2i, texture_index gd.Int, offset gd.PackedInt32Array)
	FontGetTextureOffsets(godot Context, font_rid gd.RID, size gd.Vector2i, texture_index gd.Int) gd.PackedInt32Array
	FontGetGlyphList(godot Context, font_rid gd.RID, size gd.Vector2i) gd.PackedInt32Array
	FontClearGlyphs(godot Context, font_rid gd.RID, size gd.Vector2i)
	FontRemoveGlyph(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int)
	FontGetGlyphAdvance(godot Context, font_rid gd.RID, size gd.Int, glyph gd.Int) gd.Vector2
	FontSetGlyphAdvance(godot Context, font_rid gd.RID, size gd.Int, glyph gd.Int, advance gd.Vector2)
	FontGetGlyphOffset(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int) gd.Vector2
	FontSetGlyphOffset(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int, offset gd.Vector2)
	FontGetGlyphSize(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int) gd.Vector2
	FontSetGlyphSize(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int, gl_size gd.Vector2)
	FontGetGlyphUvRect(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int) gd.Rect2
	FontSetGlyphUvRect(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int, uv_rect gd.Rect2)
	FontGetGlyphTextureIdx(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int) gd.Int
	FontSetGlyphTextureIdx(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int, texture_idx gd.Int)
	FontGetGlyphTextureRid(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int) gd.RID
	FontGetGlyphTextureSize(godot Context, font_rid gd.RID, size gd.Vector2i, glyph gd.Int) gd.Vector2
	FontGetGlyphContours(godot Context, font_rid gd.RID, size gd.Int, index gd.Int) gd.Dictionary
	FontGetKerningList(godot Context, font_rid gd.RID, size gd.Int) gd.ArrayOf[gd.Vector2i]
	FontClearKerningMap(godot Context, font_rid gd.RID, size gd.Int)
	FontRemoveKerning(godot Context, font_rid gd.RID, size gd.Int, glyph_pair gd.Vector2i)
	FontSetKerning(godot Context, font_rid gd.RID, size gd.Int, glyph_pair gd.Vector2i, kerning gd.Vector2)
	FontGetKerning(godot Context, font_rid gd.RID, size gd.Int, glyph_pair gd.Vector2i) gd.Vector2
	FontGetGlyphIndex(godot Context, font_rid gd.RID, size gd.Int, char gd.Int, variation_selector gd.Int) gd.Int
	FontGetCharFromGlyphIndex(godot Context, font_rid gd.RID, size gd.Int, glyph_index gd.Int) gd.Int
	FontHasChar(godot Context, font_rid gd.RID, char gd.Int) bool
	FontGetSupportedChars(godot Context, font_rid gd.RID) gd.String
	FontRenderRange(godot Context, font_rid gd.RID, size gd.Vector2i, start gd.Int, end gd.Int)
	FontRenderGlyph(godot Context, font_rid gd.RID, size gd.Vector2i, index gd.Int)
	FontDrawGlyph(godot Context, font_rid gd.RID, canvas gd.RID, size gd.Int, pos gd.Vector2, index gd.Int, color gd.Color)
	FontDrawGlyphOutline(godot Context, font_rid gd.RID, canvas gd.RID, size gd.Int, outline_size gd.Int, pos gd.Vector2, index gd.Int, color gd.Color)
	FontIsLanguageSupported(godot Context, font_rid gd.RID, language gd.String) bool
	FontSetLanguageSupportOverride(godot Context, font_rid gd.RID, language gd.String, supported bool)
	FontGetLanguageSupportOverride(godot Context, font_rid gd.RID, language gd.String) bool
	FontRemoveLanguageSupportOverride(godot Context, font_rid gd.RID, language gd.String)
	FontGetLanguageSupportOverrides(godot Context, font_rid gd.RID) gd.PackedStringArray
	FontIsScriptSupported(godot Context, font_rid gd.RID, script gd.String) bool
	FontSetScriptSupportOverride(godot Context, font_rid gd.RID, script gd.String, supported bool)
	FontGetScriptSupportOverride(godot Context, font_rid gd.RID, script gd.String) bool
	FontRemoveScriptSupportOverride(godot Context, font_rid gd.RID, script gd.String)
	FontGetScriptSupportOverrides(godot Context, font_rid gd.RID) gd.PackedStringArray
	FontSetOpentypeFeatureOverrides(godot Context, font_rid gd.RID, overrides gd.Dictionary)
	FontGetOpentypeFeatureOverrides(godot Context, font_rid gd.RID) gd.Dictionary
	FontSupportedFeatureList(godot Context, font_rid gd.RID) gd.Dictionary
	FontSupportedVariationList(godot Context, font_rid gd.RID) gd.Dictionary
	FontGetGlobalOversampling(godot Context) gd.Float
	FontSetGlobalOversampling(godot Context, oversampling gd.Float)
	GetHexCodeBoxSize(godot Context, size gd.Int, index gd.Int) gd.Vector2
	DrawHexCodeBox(godot Context, canvas gd.RID, size gd.Int, pos gd.Vector2, index gd.Int, color gd.Color)
	CreateShapedText(godot Context, direction TextServerDirection, orientation TextServerOrientation) gd.RID
	ShapedTextClear(godot Context, shaped gd.RID)
	ShapedTextSetDirection(godot Context, shaped gd.RID, direction TextServerDirection)
	ShapedTextGetDirection(godot Context, shaped gd.RID) TextServerDirection
	ShapedTextGetInferredDirection(godot Context, shaped gd.RID) TextServerDirection
	ShapedTextSetBidiOverride(godot Context, shaped gd.RID, override gd.Array)
	ShapedTextSetCustomPunctuation(godot Context, shaped gd.RID, punct gd.String)
	ShapedTextGetCustomPunctuation(godot Context, shaped gd.RID) gd.String
	ShapedTextSetOrientation(godot Context, shaped gd.RID, orientation TextServerOrientation)
	ShapedTextGetOrientation(godot Context, shaped gd.RID) TextServerOrientation
	ShapedTextSetPreserveInvalid(godot Context, shaped gd.RID, enabled bool)
	ShapedTextGetPreserveInvalid(godot Context, shaped gd.RID) bool
	ShapedTextSetPreserveControl(godot Context, shaped gd.RID, enabled bool)
	ShapedTextGetPreserveControl(godot Context, shaped gd.RID) bool
	ShapedTextSetSpacing(godot Context, shaped gd.RID, spacing TextServerSpacingType, value gd.Int)
	ShapedTextGetSpacing(godot Context, shaped gd.RID, spacing TextServerSpacingType) gd.Int
	ShapedTextAddString(godot Context, shaped gd.RID, text gd.String, fonts gd.ArrayOf[gd.RID], size gd.Int, opentype_features gd.Dictionary, language gd.String, meta gd.Variant) bool
	ShapedTextAddObject(godot Context, shaped gd.RID, key gd.Variant, size gd.Vector2, inline_align gd.InlineAlignment, length gd.Int, baseline gd.Float) bool
	ShapedTextResizeObject(godot Context, shaped gd.RID, key gd.Variant, size gd.Vector2, inline_align gd.InlineAlignment, baseline gd.Float) bool
	ShapedGetSpanCount(godot Context, shaped gd.RID) gd.Int
	ShapedGetSpanMeta(godot Context, shaped gd.RID, index gd.Int) gd.Variant
	ShapedSetSpanUpdateFont(godot Context, shaped gd.RID, index gd.Int, fonts gd.ArrayOf[gd.RID], size gd.Int, opentype_features gd.Dictionary)
	ShapedTextSubstr(godot Context, shaped gd.RID, start gd.Int, length gd.Int) gd.RID
	ShapedTextGetParent(godot Context, shaped gd.RID) gd.RID
	ShapedTextFitToWidth(godot Context, shaped gd.RID, width gd.Float, justification_flags TextServerJustificationFlag) gd.Float
	ShapedTextTabAlign(godot Context, shaped gd.RID, tab_stops gd.PackedFloat32Array) gd.Float
	ShapedTextShape(godot Context, shaped gd.RID) bool
	ShapedTextUpdateBreaks(godot Context, shaped gd.RID) bool
	ShapedTextUpdateJustificationOps(godot Context, shaped gd.RID) bool
	ShapedTextIsReady(godot Context, shaped gd.RID) bool
	ShapedTextGetGlyphs(godot Context, shaped gd.RID) * Glyph
	ShapedTextSortLogical(godot Context, shaped gd.RID) * Glyph
	ShapedTextGetGlyphCount(godot Context, shaped gd.RID) gd.Int
	ShapedTextGetRange(godot Context, shaped gd.RID) gd.Vector2i
	ShapedTextGetLineBreaksAdv(godot Context, shaped gd.RID, width gd.PackedFloat32Array, start gd.Int, once bool, break_flags TextServerLineBreakFlag) gd.PackedInt32Array
	ShapedTextGetLineBreaks(godot Context, shaped gd.RID, width gd.Float, start gd.Int, break_flags TextServerLineBreakFlag) gd.PackedInt32Array
	ShapedTextGetWordBreaks(godot Context, shaped gd.RID, grapheme_flags TextServerGraphemeFlag) gd.PackedInt32Array
	ShapedTextGetTrimPos(godot Context, shaped gd.RID) gd.Int
	ShapedTextGetEllipsisPos(godot Context, shaped gd.RID) gd.Int
	ShapedTextGetEllipsisGlyphCount(godot Context, shaped gd.RID) gd.Int
	ShapedTextGetEllipsisGlyphs(godot Context, shaped gd.RID) * Glyph
	ShapedTextOverrunTrimToWidth(godot Context, shaped gd.RID, width gd.Float, trim_flags TextServerTextOverrunFlag)
	ShapedTextGetObjects(godot Context, shaped gd.RID) gd.Array
	ShapedTextGetObjectRect(godot Context, shaped gd.RID, key gd.Variant) gd.Rect2
	ShapedTextGetSize(godot Context, shaped gd.RID) gd.Vector2
	ShapedTextGetAscent(godot Context, shaped gd.RID) gd.Float
	ShapedTextGetDescent(godot Context, shaped gd.RID) gd.Float
	ShapedTextGetWidth(godot Context, shaped gd.RID) gd.Float
	ShapedTextGetUnderlinePosition(godot Context, shaped gd.RID) gd.Float
	ShapedTextGetUnderlineThickness(godot Context, shaped gd.RID) gd.Float
	ShapedTextGetDominantDirectionInRange(godot Context, shaped gd.RID, start gd.Int, end gd.Int) gd.Int
	ShapedTextGetCarets(godot Context, shaped gd.RID, position gd.Int, caret *CaretInfo)
	ShapedTextGetSelection(godot Context, shaped gd.RID, start gd.Int, end gd.Int) gd.PackedVector2Array
	ShapedTextHitTestGrapheme(godot Context, shaped gd.RID, coord gd.Float) gd.Int
	ShapedTextHitTestPosition(godot Context, shaped gd.RID, coord gd.Float) gd.Int
	ShapedTextDraw(godot Context, shaped gd.RID, canvas gd.RID, pos gd.Vector2, clip_l gd.Float, clip_r gd.Float, color gd.Color)
	ShapedTextDrawOutline(godot Context, shaped gd.RID, canvas gd.RID, pos gd.Vector2, clip_l gd.Float, clip_r gd.Float, outline_size gd.Int, color gd.Color)
	ShapedTextGetGraphemeBounds(godot Context, shaped gd.RID, pos gd.Int) gd.Vector2
	ShapedTextNextGraphemePos(godot Context, shaped gd.RID, pos gd.Int) gd.Int
	ShapedTextPrevGraphemePos(godot Context, shaped gd.RID, pos gd.Int) gd.Int
	ShapedTextGetCharacterBreaks(godot Context, shaped gd.RID) gd.PackedInt32Array
	ShapedTextNextCharacterPos(godot Context, shaped gd.RID, pos gd.Int) gd.Int
	ShapedTextPrevCharacterPos(godot Context, shaped gd.RID, pos gd.Int) gd.Int
	ShapedTextClosestCharacterPos(godot Context, shaped gd.RID, pos gd.Int) gd.Int
	FormatNumber(godot Context, s gd.String, language gd.String) gd.String
	ParseNumber(godot Context, s gd.String, language gd.String) gd.String
	PercentSign(godot Context, language gd.String) gd.String
	StripDiacritics(godot Context, s gd.String) gd.String
	IsValidIdentifier(godot Context, s gd.String) bool
	StringGetWordBreaks(godot Context, s gd.String, language gd.String, chars_per_line gd.Int) gd.PackedInt32Array
	StringGetCharacterBreaks(godot Context, s gd.String, language gd.String) gd.PackedInt32Array
	IsConfusable(godot Context, s gd.String, dict gd.PackedStringArray) gd.Int
	SpoofCheck(godot Context, s gd.String) bool
	StringToUpper(godot Context, s gd.String, language gd.String) gd.String
	StringToLower(godot Context, s gd.String, language gd.String) gd.String
	ParseStructuredText(godot Context, parser_type TextServerStructuredTextParser, args gd.Array, text gd.String) gd.ArrayOf[gd.Vector3i]
	Cleanup(godot Context)
}

type TextServerFeature

type TextServerFeature = classdb.TextServerFeature
const (
	/*TextServer supports simple text layouts.*/
	TextServerFeatureSimpleLayout TextServerFeature = 1
	/*TextServer supports bidirectional text layouts.*/
	TextServerFeatureBidiLayout TextServerFeature = 2
	/*TextServer supports vertical layouts.*/
	TextServerFeatureVerticalLayout TextServerFeature = 4
	/*TextServer supports complex text shaping.*/
	TextServerFeatureShaping TextServerFeature = 8
	/*TextServer supports justification using kashidas.*/
	TextServerFeatureKashidaJustification TextServerFeature = 16
	/*TextServer supports complex line/word breaking rules (e.g. dictionary based).*/
	TextServerFeatureBreakIterators TextServerFeature = 32
	/*TextServer supports loading bitmap fonts.*/
	TextServerFeatureFontBitmap TextServerFeature = 64
	/*TextServer supports loading dynamic (TrueType, OpeType, etc.) fonts.*/
	TextServerFeatureFontDynamic TextServerFeature = 128
	/*TextServer supports multichannel signed distance field dynamic font rendering.*/
	TextServerFeatureFontMsdf TextServerFeature = 256
	/*TextServer supports loading system fonts.*/
	TextServerFeatureFontSystem TextServerFeature = 512
	/*TextServer supports variable fonts.*/
	TextServerFeatureFontVariable TextServerFeature = 1024
	/*TextServer supports locale dependent and context sensitive case conversion.*/
	TextServerFeatureContextSensitiveCaseConversion TextServerFeature = 2048
	/*TextServer require external data file for some features, see [method load_support_data].*/
	TextServerFeatureUseSupportData TextServerFeature = 4096
	/*TextServer supports UAX #31 identifier validation, see [method is_valid_identifier].*/
	TextServerFeatureUnicodeIdentifiers TextServerFeature = 8192
	/*TextServer supports [url=https://unicode.org/reports/tr36/]Unicode Technical Report #36[/url] and [url=https://unicode.org/reports/tr39/]Unicode Technical Standard #39[/url] based spoof detection features.*/
	TextServerFeatureUnicodeSecurity TextServerFeature = 16384
)

type TextServerFixedSizeScaleMode

type TextServerFixedSizeScaleMode = classdb.TextServerFixedSizeScaleMode
const (
	/*Bitmap font is not scaled.*/
	TextServerFixedSizeScaleDisable TextServerFixedSizeScaleMode = 0
	/*Bitmap font is scaled to the closest integer multiple of the font's fixed size. This is the recommended option for pixel art fonts.*/
	TextServerFixedSizeScaleIntegerOnly TextServerFixedSizeScaleMode = 1
	/*Bitmap font is scaled to an arbitrary (fractional) size. This is the recommended option for non-pixel art fonts.*/
	TextServerFixedSizeScaleEnabled TextServerFixedSizeScaleMode = 2
)

type TextServerFontAntialiasing

type TextServerFontAntialiasing = classdb.TextServerFontAntialiasing
const (
	/*Font glyphs are rasterized as 1-bit bitmaps.*/
	TextServerFontAntialiasingNone TextServerFontAntialiasing = 0
	/*Font glyphs are rasterized as 8-bit grayscale anti-aliased bitmaps.*/
	TextServerFontAntialiasingGray TextServerFontAntialiasing = 1
	/*Font glyphs are rasterized for LCD screens.
	  LCD subpixel layout is determined by the value of [code]gui/theme/lcd_subpixel_layout[/code] project settings.
	  LCD subpixel anti-aliasing mode is suitable only for rendering horizontal, unscaled text in 2D.*/
	TextServerFontAntialiasingLcd TextServerFontAntialiasing = 2
)

type TextServerFontLCDSubpixelLayout

type TextServerFontLCDSubpixelLayout = classdb.TextServerFontLCDSubpixelLayout
const (
	/*Unknown or unsupported subpixel layout, LCD subpixel antialiasing is disabled.*/
	TextServerFontLcdSubpixelLayoutNone TextServerFontLCDSubpixelLayout = 0
	/*Horizontal RGB subpixel layout.*/
	TextServerFontLcdSubpixelLayoutHrgb TextServerFontLCDSubpixelLayout = 1
	/*Horizontal BGR subpixel layout.*/
	TextServerFontLcdSubpixelLayoutHbgr TextServerFontLCDSubpixelLayout = 2
	/*Vertical RGB subpixel layout.*/
	TextServerFontLcdSubpixelLayoutVrgb TextServerFontLCDSubpixelLayout = 3
	/*Vertical BGR subpixel layout.*/
	TextServerFontLcdSubpixelLayoutVbgr TextServerFontLCDSubpixelLayout = 4
	/*Represents the size of the [enum FontLCDSubpixelLayout] enum.*/
	TextServerFontLcdSubpixelLayoutMax TextServerFontLCDSubpixelLayout = 5
)

type TextServerFontStyle

type TextServerFontStyle = classdb.TextServerFontStyle
const (
	/*Font is bold.*/
	TextServerFontBold TextServerFontStyle = 1
	/*Font is italic or oblique.*/
	TextServerFontItalic TextServerFontStyle = 2
	/*Font have fixed-width characters.*/
	TextServerFontFixedWidth TextServerFontStyle = 4
)

type TextServerGraphemeFlag

type TextServerGraphemeFlag = classdb.TextServerGraphemeFlag
const (
	/*Grapheme is supported by the font, and can be drawn.*/
	TextServerGraphemeIsValid TextServerGraphemeFlag = 1
	/*Grapheme is part of right-to-left or bottom-to-top run.*/
	TextServerGraphemeIsRtl TextServerGraphemeFlag = 2
	/*Grapheme is not part of source text, it was added by justification process.*/
	TextServerGraphemeIsVirtual TextServerGraphemeFlag = 4
	/*Grapheme is whitespace.*/
	TextServerGraphemeIsSpace TextServerGraphemeFlag = 8
	/*Grapheme is mandatory break point (e.g. [code]"\n"[/code]).*/
	TextServerGraphemeIsBreakHard TextServerGraphemeFlag = 16
	/*Grapheme is optional break point (e.g. space).*/
	TextServerGraphemeIsBreakSoft TextServerGraphemeFlag = 32
	/*Grapheme is the tabulation character.*/
	TextServerGraphemeIsTab TextServerGraphemeFlag = 64
	/*Grapheme is kashida.*/
	TextServerGraphemeIsElongation TextServerGraphemeFlag = 128
	/*Grapheme is punctuation character.*/
	TextServerGraphemeIsPunctuation TextServerGraphemeFlag = 256
	/*Grapheme is underscore character.*/
	TextServerGraphemeIsUnderscore TextServerGraphemeFlag = 512
	/*Grapheme is connected to the previous grapheme. Breaking line before this grapheme is not safe.*/
	TextServerGraphemeIsConnected TextServerGraphemeFlag = 1024
	/*It is safe to insert a U+0640 before this grapheme for elongation.*/
	TextServerGraphemeIsSafeToInsertTatweel TextServerGraphemeFlag = 2048
	/*Grapheme is an object replacement character for the embedded object.*/
	TextServerGraphemeIsEmbeddedObject TextServerGraphemeFlag = 4096
)

type TextServerHinting

type TextServerHinting = classdb.TextServerHinting
const (
	/*Disables font hinting (smoother but less crisp).*/
	TextServerHintingNone TextServerHinting = 0
	/*Use the light font hinting mode.*/
	TextServerHintingLight TextServerHinting = 1
	/*Use the default font hinting mode (crisper but less smooth).
	  [b]Note:[/b] This hinting mode changes both horizontal and vertical glyph metrics. If applied to monospace font, some glyphs might have different width.*/
	TextServerHintingNormal TextServerHinting = 2
)

type TextServerJustificationFlag

type TextServerJustificationFlag = classdb.TextServerJustificationFlag
const (
	/*Do not justify text.*/
	TextServerJustificationNone TextServerJustificationFlag = 0
	/*Justify text by adding and removing kashidas.*/
	TextServerJustificationKashida TextServerJustificationFlag = 1
	/*Justify text by changing width of the spaces between the words.*/
	TextServerJustificationWordBound TextServerJustificationFlag = 2
	/*Remove trailing and leading spaces from the justified text.*/
	TextServerJustificationTrimEdgeSpaces TextServerJustificationFlag = 4
	/*Only apply justification to the part of the text after the last tab.*/
	TextServerJustificationAfterLastTab TextServerJustificationFlag = 8
	/*Apply justification to the trimmed line with ellipsis.*/
	TextServerJustificationConstrainEllipsis TextServerJustificationFlag = 16
	/*Do not apply justification to the last line of the paragraph.*/
	TextServerJustificationSkipLastLine TextServerJustificationFlag = 32
	/*Do not apply justification to the last line of the paragraph with visible characters (takes precedence over [constant JUSTIFICATION_SKIP_LAST_LINE]).*/
	TextServerJustificationSkipLastLineWithVisibleChars TextServerJustificationFlag = 64
	/*Always apply justification to the paragraphs with a single line ([constant JUSTIFICATION_SKIP_LAST_LINE] and [constant JUSTIFICATION_SKIP_LAST_LINE_WITH_VISIBLE_CHARS] are ignored).*/
	TextServerJustificationDoNotSkipSingleLine TextServerJustificationFlag = 128
)

type TextServerLineBreakFlag

type TextServerLineBreakFlag = classdb.TextServerLineBreakFlag
const (
	/*Do not break the line.*/
	TextServerBreakNone TextServerLineBreakFlag = 0
	/*Break the line at the line mandatory break characters (e.g. [code]"\n"[/code]).*/
	TextServerBreakMandatory TextServerLineBreakFlag = 1
	/*Break the line between the words.*/
	TextServerBreakWordBound TextServerLineBreakFlag = 2
	/*Break the line between any unconnected graphemes.*/
	TextServerBreakGraphemeBound TextServerLineBreakFlag = 4
	/*Should be used only in conjunction with [constant BREAK_WORD_BOUND], break the line between any unconnected graphemes, if it's impossible to break it between the words.*/
	TextServerBreakAdaptive TextServerLineBreakFlag = 8
	/*Remove edge spaces from the broken line segments.*/
	TextServerBreakTrimEdgeSpaces TextServerLineBreakFlag = 16
)

type TextServerOrientation

type TextServerOrientation = classdb.TextServerOrientation
const (
	/*Text is written horizontally.*/
	TextServerOrientationHorizontal TextServerOrientation = 0
	/*Left to right text is written vertically from top to bottom.
	  Right to left text is written vertically from bottom to top.*/
	TextServerOrientationVertical TextServerOrientation = 1
)

type TextServerOverrunBehavior

type TextServerOverrunBehavior = classdb.TextServerOverrunBehavior
const (
	/*No text trimming is performed.*/
	TextServerOverrunNoTrimming TextServerOverrunBehavior = 0
	/*Trims the text per character.*/
	TextServerOverrunTrimChar TextServerOverrunBehavior = 1
	/*Trims the text per word.*/
	TextServerOverrunTrimWord TextServerOverrunBehavior = 2
	/*Trims the text per character and adds an ellipsis to indicate that parts are hidden.*/
	TextServerOverrunTrimEllipsis TextServerOverrunBehavior = 3
	/*Trims the text per word and adds an ellipsis to indicate that parts are hidden.*/
	TextServerOverrunTrimWordEllipsis TextServerOverrunBehavior = 4
)

type TextServerSpacingType

type TextServerSpacingType = classdb.TextServerSpacingType
const (
	/*Spacing for each glyph.*/
	TextServerSpacingGlyph TextServerSpacingType = 0
	/*Spacing for the space character.*/
	TextServerSpacingSpace TextServerSpacingType = 1
	/*Spacing at the top of the line.*/
	TextServerSpacingTop TextServerSpacingType = 2
	/*Spacing at the bottom of the line.*/
	TextServerSpacingBottom TextServerSpacingType = 3
	/*Represents the size of the [enum SpacingType] enum.*/
	TextServerSpacingMax TextServerSpacingType = 4
)

type TextServerStructuredTextParser

type TextServerStructuredTextParser = classdb.TextServerStructuredTextParser
const (
	/*Use default Unicode BiDi algorithm.*/
	TextServerStructuredTextDefault TextServerStructuredTextParser = 0
	/*BiDi override for URI.*/
	TextServerStructuredTextUri TextServerStructuredTextParser = 1
	/*BiDi override for file path.*/
	TextServerStructuredTextFile TextServerStructuredTextParser = 2
	/*BiDi override for email.*/
	TextServerStructuredTextEmail TextServerStructuredTextParser = 3
	/*BiDi override for lists. Structured text options: list separator [String].*/
	TextServerStructuredTextList TextServerStructuredTextParser = 4
	/*BiDi override for GDScript.*/
	TextServerStructuredTextGdscript TextServerStructuredTextParser = 5
	/*User defined structured text BiDi override function.*/
	TextServerStructuredTextCustom TextServerStructuredTextParser = 6
)

type TextServerSubpixelPositioning

type TextServerSubpixelPositioning = classdb.TextServerSubpixelPositioning
const (
	/*Glyph horizontal position is rounded to the whole pixel size, each glyph is rasterized once.*/
	TextServerSubpixelPositioningDisabled TextServerSubpixelPositioning = 0
	/*Glyph horizontal position is rounded based on font size.
	  - To one quarter of the pixel size if font size is smaller or equal to [constant SUBPIXEL_POSITIONING_ONE_QUARTER_MAX_SIZE].
	  - To one half of the pixel size if font size is smaller or equal to [constant SUBPIXEL_POSITIONING_ONE_HALF_MAX_SIZE].
	  - To the whole pixel size for larger fonts.*/
	TextServerSubpixelPositioningAuto TextServerSubpixelPositioning = 1
	/*Glyph horizontal position is rounded to one half of the pixel size, each glyph is rasterized up to two times.*/
	TextServerSubpixelPositioningOneHalf TextServerSubpixelPositioning = 2
	/*Glyph horizontal position is rounded to one quarter of the pixel size, each glyph is rasterized up to four times.*/
	TextServerSubpixelPositioningOneQuarter TextServerSubpixelPositioning = 3
	/*Maximum font size which will use one half of the pixel subpixel positioning in [constant SUBPIXEL_POSITIONING_AUTO] mode.*/
	TextServerSubpixelPositioningOneHalfMaxSize TextServerSubpixelPositioning = 20
	/*Maximum font size which will use one quarter of the pixel subpixel positioning in [constant SUBPIXEL_POSITIONING_AUTO] mode.*/
	TextServerSubpixelPositioningOneQuarterMaxSize TextServerSubpixelPositioning = 16
)

type TextServerTextOverrunFlag

type TextServerTextOverrunFlag = classdb.TextServerTextOverrunFlag
const (
	/*No trimming is performed.*/
	TextServerOverrunNoTrim TextServerTextOverrunFlag = 0
	/*Trims the text when it exceeds the given width.*/
	TextServerOverrunTrim TextServerTextOverrunFlag = 1
	/*Trims the text per word instead of per grapheme.*/
	TextServerOverrunTrimWordOnly TextServerTextOverrunFlag = 2
	/*Determines whether an ellipsis should be added at the end of the text.*/
	TextServerOverrunAddEllipsis TextServerTextOverrunFlag = 4
	/*Determines whether the ellipsis at the end of the text is enforced and may not be hidden.*/
	TextServerOverrunEnforceEllipsis TextServerTextOverrunFlag = 8
	/*Accounts for the text being justified before attempting to trim it (see [enum JustificationFlag]).*/
	TextServerOverrunJustificationAware TextServerTextOverrunFlag = 16
)

type TextServerVisibleCharactersBehavior

type TextServerVisibleCharactersBehavior = classdb.TextServerVisibleCharactersBehavior
const (
	/*Trims text before the shaping. e.g, increasing [member Label.visible_characters] or [member RichTextLabel.visible_characters] value is visually identical to typing the text.*/
	TextServerVcCharsBeforeShaping TextServerVisibleCharactersBehavior = 0
	/*Displays glyphs that are mapped to the first [member Label.visible_characters] or [member RichTextLabel.visible_characters] characters from the beginning of the text.*/
	TextServerVcCharsAfterShaping TextServerVisibleCharactersBehavior = 1
	/*Displays [member Label.visible_ratio] or [member RichTextLabel.visible_ratio] glyphs, starting from the left or from the right, depending on [member Control.layout_direction] value.*/
	TextServerVcGlyphsAuto TextServerVisibleCharactersBehavior = 2
	/*Displays [member Label.visible_ratio] or [member RichTextLabel.visible_ratio] glyphs, starting from the left.*/
	TextServerVcGlyphsLtr TextServerVisibleCharactersBehavior = 3
	/*Displays [member Label.visible_ratio] or [member RichTextLabel.visible_ratio] glyphs, starting from the right.*/
	TextServerVcGlyphsRtl TextServerVisibleCharactersBehavior = 4
)

type Texture

type Texture = classdb.Texture

Texture is the base class for all texture types. Common texture types are Texture2D and ImageTexture. See also Image.

type Texture2D

type Texture2D = classdb.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 [method @GDScript.load]. Texture2D is a base for other resources. It cannot be used directly. [b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. Larger textures may fail to import.

// Texture2D methods that can be overridden by a [Class] that extends it.
type Texture2D interface {
	//Called when the [Texture2D]'s width is queried.
	GetWidth(godot Context) gd.Int
	//Called when the [Texture2D]'s height is queried.
	GetHeight(godot Context) gd.Int
	//Called when a pixel's opaque state in the [Texture2D] is queried at the specified [code](x, y)[/code] position.
	IsPixelOpaque(godot Context, x gd.Int, y gd.Int) bool
	//Called when the presence of an alpha channel in the [Texture2D] is queried.
	HasAlpha(godot Context) bool
	//Called when the entire [Texture2D] is requested to be drawn over a [CanvasItem], with the top-left offset specified in [param pos]. [param modulate] specifies a multiplier for the colors being drawn, while [param transpose] specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation).
	//[b]Note:[/b] This is only used in 2D rendering, not 3D.
	Draw(godot Context, to_canvas_item gd.RID, pos gd.Vector2, modulate gd.Color, transpose bool)
	//Called when the [Texture2D] is requested to be drawn onto [CanvasItem]'s specified [param rect]. [param modulate] specifies a multiplier for the colors being drawn, while [param transpose] specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation).
	//[b]Note:[/b] This is only used in 2D rendering, not 3D.
	DrawRect(godot Context, to_canvas_item gd.RID, rect gd.Rect2, tile bool, modulate gd.Color, transpose bool)
	//Called when a part of the [Texture2D] specified by [param src_rect]'s coordinates is requested to be drawn onto [CanvasItem]'s specified [param rect]. [param modulate] specifies a multiplier for the colors being drawn, while [param transpose] specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation).
	//[b]Note:[/b] This is only used in 2D rendering, not 3D.
	DrawRectRegion(godot Context, to_canvas_item gd.RID, rect gd.Rect2, src_rect gd.Rect2, modulate gd.Color, transpose bool, clip_uv bool)
}

type Texture2DArray

type Texture2DArray = classdb.Texture2DArray

A Texture2DArray is different from a Texture3D: The Texture2DArray does not support trilinear interpolation between the [Image]s, 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.

type Texture2DArrayRD

type Texture2DArrayRD = classdb.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.

type Texture2DRD

type Texture2DRD = classdb.Texture2DRD

This texture class allows you to use a 2D texture created directly on the RenderingDevice as a texture for materials, meshes, etc.

type Texture3D

type Texture3D = classdb.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 methods that can be overridden by a [Class] that extends it.
type Texture3D interface {
	//Called when the [Texture3D]'s format is queried.
	GetFormat(godot Context) ImageFormat
	//Called when the [Texture3D]'s width is queried.
	GetWidth(godot Context) gd.Int
	//Called when the [Texture3D]'s height is queried.
	GetHeight(godot Context) gd.Int
	//Called when the [Texture3D]'s depth is queried.
	GetDepth(godot Context) gd.Int
	//Called when the presence of mipmaps in the [Texture3D] is queried.
	HasMipmaps(godot Context) bool
	//Called when the [Texture3D]'s data is queried.
	GetData(godot Context) gd.ArrayOf[Image]
}

type Texture3DRD

type Texture3DRD = classdb.Texture3DRD

This texture class allows you to use a 3D texture created directly on the RenderingDevice as a texture for materials, meshes, etc.

type TextureButton

type TextureButton = classdb.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 [Control]s. The "normal" state must contain a texture ([member texture_normal]); other textures are optional. See also BaseButton which contains common properties and methods associated with this node.

type TextureButtonStretchMode

type TextureButtonStretchMode = classdb.TextureButtonStretchMode
const (
	/*Scale to fit the node's bounding rectangle.*/
	TextureButtonStretchScale TextureButtonStretchMode = 0
	/*Tile inside the node's bounding rectangle.*/
	TextureButtonStretchTile TextureButtonStretchMode = 1
	/*The texture keeps its original size and stays in the bounding rectangle's top-left corner.*/
	TextureButtonStretchKeep TextureButtonStretchMode = 2
	/*The texture keeps its original size and stays centered in the node's bounding rectangle.*/
	TextureButtonStretchKeepCentered TextureButtonStretchMode = 3
	/*Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio.*/
	TextureButtonStretchKeepAspect TextureButtonStretchMode = 4
	/*Scale the texture to fit the node's bounding rectangle, center it, and maintain its aspect ratio.*/
	TextureButtonStretchKeepAspectCentered TextureButtonStretchMode = 5
	/*Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits.*/
	TextureButtonStretchKeepAspectCovered TextureButtonStretchMode = 6
)

type TextureCubemapArrayRD

type TextureCubemapArrayRD = classdb.TextureCubemapArrayRD

This texture class allows you to use a cubemap array texture created directly on the RenderingDevice as a texture for materials, meshes, etc.

type TextureCubemapRD

type TextureCubemapRD = classdb.TextureCubemapRD

This texture class allows you to use a cubemap texture created directly on the RenderingDevice as a texture for materials, meshes, etc.

type TextureLayered

type TextureLayered = classdb.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 [Texture2DArray]s, 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 [method ResourceLoader.load]. Internally, Godot maps these files to their respective counterparts in the target rendering driver (Vulkan, OpenGL3).

// TextureLayered methods that can be overridden by a [Class] that extends it.
type TextureLayered interface {
	//Called when the [TextureLayered]'s format is queried.
	GetFormat(godot Context) ImageFormat
	//Called when the layers' type in the [TextureLayered] is queried.
	GetLayeredType(godot Context) gd.Int
	//Called when the [TextureLayered]'s width queried.
	GetWidth(godot Context) gd.Int
	//Called when the [TextureLayered]'s height is queried.
	GetHeight(godot Context) gd.Int
	//Called when the number of layers in the [TextureLayered] is queried.
	GetLayers(godot Context) gd.Int
	//Called when the presence of mipmaps in the [TextureLayered] is queried.
	HasMipmaps(godot Context) bool
	//Called when the data for a layer in the [TextureLayered] is queried.
	GetLayerData(godot Context, layer_index gd.Int) Image
}

type TextureLayeredLayeredType

type TextureLayeredLayeredType = classdb.TextureLayeredLayeredType
const (
	/*Texture is a generic [Texture2DArray].*/
	TextureLayeredLayeredType2dArray TextureLayeredLayeredType = 0
	/*Texture is a [Cubemap], with each side in its own layer (6 in total).*/
	TextureLayeredLayeredTypeCubemap TextureLayeredLayeredType = 1
	/*Texture is a [CubemapArray], with each cubemap being made of 6 layers.*/
	TextureLayeredLayeredTypeCubemapArray TextureLayeredLayeredType = 2
)

type TextureLayeredRD

type TextureLayeredRD = classdb.TextureLayeredRD

Base class for Texture2DArrayRD, TextureCubemapRD and TextureCubemapArrayRD. Cannot be used directly, but contains all the functions necessary for accessing the derived resource types.

type TextureProgressBar

type TextureProgressBar = classdb.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.

type TextureProgressBarFillMode

type TextureProgressBarFillMode = classdb.TextureProgressBarFillMode
const (
	/*The [member texture_progress] fills from left to right.*/
	TextureProgressBarFillLeftToRight TextureProgressBarFillMode = 0
	/*The [member texture_progress] fills from right to left.*/
	TextureProgressBarFillRightToLeft TextureProgressBarFillMode = 1
	/*The [member texture_progress] fills from top to bottom.*/
	TextureProgressBarFillTopToBottom TextureProgressBarFillMode = 2
	/*The [member texture_progress] fills from bottom to top.*/
	TextureProgressBarFillBottomToTop TextureProgressBarFillMode = 3
	/*Turns the node into a radial bar. The [member texture_progress] fills clockwise. See [member radial_center_offset], [member radial_initial_angle] and [member radial_fill_degrees] to control the way the bar fills up.*/
	TextureProgressBarFillClockwise TextureProgressBarFillMode = 4
	/*Turns the node into a radial bar. The [member texture_progress] fills counterclockwise. See [member radial_center_offset], [member radial_initial_angle] and [member radial_fill_degrees] to control the way the bar fills up.*/
	TextureProgressBarFillCounterClockwise TextureProgressBarFillMode = 5
	/*The [member texture_progress] fills from the center, expanding both towards the left and the right.*/
	TextureProgressBarFillBilinearLeftAndRight TextureProgressBarFillMode = 6
	/*The [member texture_progress] fills from the center, expanding both towards the top and the bottom.*/
	TextureProgressBarFillBilinearTopAndBottom TextureProgressBarFillMode = 7
	/*Turns the node into a radial bar. The [member texture_progress] fills radially from the center, expanding both clockwise and counterclockwise. See [member radial_center_offset], [member radial_initial_angle] and [member radial_fill_degrees] to control the way the bar fills up.*/
	TextureProgressBarFillClockwiseAndCounterClockwise TextureProgressBarFillMode = 8
)

type TextureRect

type TextureRect = classdb.TextureRect

A control that displays a texture, for example an icon inside a GUI. The texture's placement can be controlled with the [member stretch_mode] property. It can scale, tile, or stay centered inside its bounding rectangle.

type TextureRectExpandMode

type TextureRectExpandMode = classdb.TextureRectExpandMode
const (
	/*The minimum size will be equal to texture size, i.e. [TextureRect] can't be smaller than the texture.*/
	TextureRectExpandKeepSize TextureRectExpandMode = 0
	/*The size of the texture won't be considered for minimum size calculation, so the [TextureRect] can be shrunk down past the texture size.*/
	TextureRectExpandIgnoreSize TextureRectExpandMode = 1
	/*The height of the texture will be ignored. Minimum width will be equal to the current height. Useful for horizontal layouts, e.g. inside [HBoxContainer].*/
	TextureRectExpandFitWidth TextureRectExpandMode = 2
	/*Same as [constant EXPAND_FIT_WIDTH], but keeps texture's aspect ratio.*/
	TextureRectExpandFitWidthProportional TextureRectExpandMode = 3
	/*The width of the texture will be ignored. Minimum height will be equal to the current width. Useful for vertical layouts, e.g. inside [VBoxContainer].*/
	TextureRectExpandFitHeight TextureRectExpandMode = 4
	/*Same as [constant EXPAND_FIT_HEIGHT], but keeps texture's aspect ratio.*/
	TextureRectExpandFitHeightProportional TextureRectExpandMode = 5
)

type TextureRectStretchMode

type TextureRectStretchMode = classdb.TextureRectStretchMode
const (
	/*Scale to fit the node's bounding rectangle.*/
	TextureRectStretchScale TextureRectStretchMode = 0
	/*Tile inside the node's bounding rectangle.*/
	TextureRectStretchTile TextureRectStretchMode = 1
	/*The texture keeps its original size and stays in the bounding rectangle's top-left corner.*/
	TextureRectStretchKeep TextureRectStretchMode = 2
	/*The texture keeps its original size and stays centered in the node's bounding rectangle.*/
	TextureRectStretchKeepCentered TextureRectStretchMode = 3
	/*Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio.*/
	TextureRectStretchKeepAspect TextureRectStretchMode = 4
	/*Scale the texture to fit the node's bounding rectangle, center it and maintain its aspect ratio.*/
	TextureRectStretchKeepAspectCentered TextureRectStretchMode = 5
	/*Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits.*/
	TextureRectStretchKeepAspectCovered TextureRectStretchMode = 6
)

type Theme

type Theme = classdb.Theme

A resource used for styling/skinning Control and Window nodes. While individual controls can be styled using their local theme overrides (see [method Control.add_theme_color_override]), theme resources allow you to store and apply the same settings across all controls sharing the same type (e.g. style all [Button]s 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 [member ProjectSettings.gui/theme/custom] to set up a project-scope theme that will be available to every control in your project. Use [member Control.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.

type ThemeDataType

type ThemeDataType = classdb.ThemeDataType
const (
	/*Theme's [Color] item type.*/
	ThemeDataTypeColor ThemeDataType = 0
	/*Theme's constant item type.*/
	ThemeDataTypeConstant ThemeDataType = 1
	/*Theme's [Font] item type.*/
	ThemeDataTypeFont ThemeDataType = 2
	/*Theme's font size item type.*/
	ThemeDataTypeFontSize ThemeDataType = 3
	/*Theme's icon [Texture2D] item type.*/
	ThemeDataTypeIcon ThemeDataType = 4
	/*Theme's [StyleBox] item type.*/
	ThemeDataTypeStylebox ThemeDataType = 5
	/*Maximum value for the DataType enum.*/
	ThemeDataTypeMax ThemeDataType = 6
)

type Thread

type Thread = classdb.Thread

A unit of execution in a process. Can run methods on [Object]s simultaneously. The use of synchronization via Mutex or Semaphore is advised if working with shared objects. [b]Warning:[/b] To ensure proper cleanup without crashes or deadlocks, when a Thread'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. - [method wait_to_finish] should have been called on it.

type ThreadPriority

type ThreadPriority = classdb.ThreadPriority
const (
	/*A thread running with lower priority than normally.*/
	ThreadPriorityLow ThreadPriority = 0
	/*A thread with a standard priority.*/
	ThreadPriorityNormal ThreadPriority = 1
	/*A thread running with higher priority than normally.*/
	ThreadPriorityHigh ThreadPriority = 2
)

type TileData

type TileData = classdb.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 [method TileMap._tile_data_runtime_update].

type TileMap

type TileMap = classdb.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 [method update_internals].

// TileMap methods that can be overridden by a [Class] that extends it.
type TileMap interface {
	//Should return [code]true[/code] if the tile at coordinates [param coords] on layer [param layer] requires a runtime update.
	//[b]Warning:[/b] Make sure this function only return [code]true[/code] when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty.
	//[b]Note:[/b] If the result of this function should changed, use [method notify_runtime_tile_data_update] to notify the TileMap it needs an update.
	UseTileDataRuntimeUpdate(godot Context, layer gd.Int, coords gd.Vector2i) bool
	//Called with a TileData object about to be used internally by the TileMap, allowing its modification at runtime.
	//This method is only called if [method _use_tile_data_runtime_update] is implemented and returns [code]true[/code] for the given tile [param coords] and [param layer].
	//[b]Warning:[/b] The [param tile_data] object's sub-resources are the same as the one in the TileSet. Modifying them might impact the whole TileSet. Instead, make sure to duplicate those resources.
	//[b]Note:[/b] If the properties of [param tile_data] object should change over time, use [method notify_runtime_tile_data_update] to notify the TileMap it needs an update.
	TileDataRuntimeUpdate(godot Context, layer gd.Int, coords gd.Vector2i, tile_data TileData)
}

type TileMapPattern

type TileMapPattern = classdb.TileMapPattern

This resource holds a set of cells to help bulk manipulations of TileMap. A pattern always start at the [code](0,0)[/code] coordinates and cannot have cells with negative coordinates.

type TileMapVisibilityMode

type TileMapVisibilityMode = classdb.TileMapVisibilityMode
const (
	/*Use the debug settings to determine visibility.*/
	TileMapVisibilityModeDefault TileMapVisibilityMode = 0
	/*Always hide.*/
	TileMapVisibilityModeForceHide TileMapVisibilityMode = 2
	/*Always show.*/
	TileMapVisibilityModeForceShow TileMapVisibilityMode = 1
)

type TileSet

type TileSet = classdb.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.

type TileSetAtlasSource

type TileSetAtlasSource = classdb.TileSetAtlasSource

An atlas is a grid of tiles laid out on a texture. Each tile in the grid must be exposed using [method create_tile]. 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 [method create_alternative_tile], 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 [method get_tile_data]. As TileData properties are stored directly in the TileSetAtlasSource resource, their properties might also be set using [code]TileSetAtlasSource.set("<coords_x>:<coords_y>/<alternative_id>/<tile_data_property>")[/code].

type TileSetAtlasSourceTileAnimationMode

type TileSetAtlasSourceTileAnimationMode = classdb.TileSetAtlasSourceTileAnimationMode
const (
	/*Tile animations start at same time, looking identical.*/
	TileSetAtlasSourceTileAnimationModeDefault TileSetAtlasSourceTileAnimationMode = 0
	/*Tile animations start at random times, looking varied.*/
	TileSetAtlasSourceTileAnimationModeRandomStartTimes TileSetAtlasSourceTileAnimationMode = 1
	/*Represents the size of the [enum TileAnimationMode] enum.*/
	TileSetAtlasSourceTileAnimationModeMax TileSetAtlasSourceTileAnimationMode = 2
)

type TileSetCellNeighbor

type TileSetCellNeighbor = classdb.TileSetCellNeighbor
const (
	/*Neighbor on the right side.*/
	TileSetCellNeighborRightSide TileSetCellNeighbor = 0
	/*Neighbor in the right corner.*/
	TileSetCellNeighborRightCorner TileSetCellNeighbor = 1
	/*Neighbor on the bottom right side.*/
	TileSetCellNeighborBottomRightSide TileSetCellNeighbor = 2
	/*Neighbor in the bottom right corner.*/
	TileSetCellNeighborBottomRightCorner TileSetCellNeighbor = 3
	/*Neighbor on the bottom side.*/
	TileSetCellNeighborBottomSide TileSetCellNeighbor = 4
	/*Neighbor in the bottom corner.*/
	TileSetCellNeighborBottomCorner TileSetCellNeighbor = 5
	/*Neighbor on the bottom left side.*/
	TileSetCellNeighborBottomLeftSide TileSetCellNeighbor = 6
	/*Neighbor in the bottom left corner.*/
	TileSetCellNeighborBottomLeftCorner TileSetCellNeighbor = 7
	/*Neighbor on the left side.*/
	TileSetCellNeighborLeftSide TileSetCellNeighbor = 8
	/*Neighbor in the left corner.*/
	TileSetCellNeighborLeftCorner TileSetCellNeighbor = 9
	/*Neighbor on the top left side.*/
	TileSetCellNeighborTopLeftSide TileSetCellNeighbor = 10
	/*Neighbor in the top left corner.*/
	TileSetCellNeighborTopLeftCorner TileSetCellNeighbor = 11
	/*Neighbor on the top side.*/
	TileSetCellNeighborTopSide TileSetCellNeighbor = 12
	/*Neighbor in the top corner.*/
	TileSetCellNeighborTopCorner TileSetCellNeighbor = 13
	/*Neighbor on the top right side.*/
	TileSetCellNeighborTopRightSide TileSetCellNeighbor = 14
	/*Neighbor in the top right corner.*/
	TileSetCellNeighborTopRightCorner TileSetCellNeighbor = 15
)

type TileSetScenesCollectionSource

type TileSetScenesCollectionSource = classdb.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.

type TileSetSource

type TileSetSource = classdb.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 [method get_tiles_count] and [method get_tile_id], then over alternative IDs using [method get_alternative_tiles_count] and [method get_alternative_tile_id]. [b]Warning:[/b] TileSetSource can only be added to one TileSet at the same time. Calling [method TileSet.add_source] on a second TileSet will remove the source from the first one.

type TileSetTerrainMode

type TileSetTerrainMode = classdb.TileSetTerrainMode
const (
	/*Requires both corners and side to match with neighboring tiles' terrains.*/
	TileSetTerrainModeMatchCornersAndSides TileSetTerrainMode = 0
	/*Requires corners to match with neighboring tiles' terrains.*/
	TileSetTerrainModeMatchCorners TileSetTerrainMode = 1
	/*Requires sides to match with neighboring tiles' terrains.*/
	TileSetTerrainModeMatchSides TileSetTerrainMode = 2
)

type TileSetTileLayout

type TileSetTileLayout = classdb.TileSetTileLayout
const (
	/*Tile coordinates layout where both axis stay consistent with their respective local horizontal and vertical axis.*/
	TileSetTileLayoutStacked TileSetTileLayout = 0
	/*Same as [constant TILE_LAYOUT_STACKED], but the first half-offset is negative instead of positive.*/
	TileSetTileLayoutStackedOffset TileSetTileLayout = 1
	/*Tile coordinates layout where the horizontal axis stay horizontal, and the vertical one goes down-right.*/
	TileSetTileLayoutStairsRight TileSetTileLayout = 2
	/*Tile coordinates layout where the vertical axis stay vertical, and the horizontal one goes down-right.*/
	TileSetTileLayoutStairsDown TileSetTileLayout = 3
	/*Tile coordinates layout where the horizontal axis goes up-right, and the vertical one goes down-right.*/
	TileSetTileLayoutDiamondRight TileSetTileLayout = 4
	/*Tile coordinates layout where the horizontal axis goes down-right, and the vertical one goes down-left.*/
	TileSetTileLayoutDiamondDown TileSetTileLayout = 5
)

type TileSetTileOffsetAxis

type TileSetTileOffsetAxis = classdb.TileSetTileOffsetAxis
const (
	/*Horizontal half-offset.*/
	TileSetTileOffsetAxisHorizontal TileSetTileOffsetAxis = 0
	/*Vertical half-offset.*/
	TileSetTileOffsetAxisVertical TileSetTileOffsetAxis = 1
)

type TileSetTileShape

type TileSetTileShape = classdb.TileSetTileShape
const (
	/*Rectangular tile shape.*/
	TileSetTileShapeSquare TileSetTileShape = 0
	/*Diamond tile shape (for isometric look).
	  [b]Note:[/b] Isometric [TileSet] works best if [TileMap] and all its layers have Y-sort enabled.*/
	TileSetTileShapeIsometric TileSetTileShape = 1
	/*Rectangular tile shape with one row/column out of two offset by half a tile.*/
	TileSetTileShapeHalfOffsetSquare TileSetTileShape = 2
	/*Hexagonal tile shape.*/
	TileSetTileShapeHexagon TileSetTileShape = 3
)

type TimeMonth

type TimeMonth = classdb.TimeMonth
const (
	/*The month of January, represented numerically as [code]01[/code].*/
	TimeMonthJanuary TimeMonth = 1
	/*The month of February, represented numerically as [code]02[/code].*/
	TimeMonthFebruary TimeMonth = 2
	/*The month of March, represented numerically as [code]03[/code].*/
	TimeMonthMarch TimeMonth = 3
	/*The month of April, represented numerically as [code]04[/code].*/
	TimeMonthApril TimeMonth = 4
	/*The month of May, represented numerically as [code]05[/code].*/
	TimeMonthMay TimeMonth = 5
	/*The month of June, represented numerically as [code]06[/code].*/
	TimeMonthJune TimeMonth = 6
	/*The month of July, represented numerically as [code]07[/code].*/
	TimeMonthJuly TimeMonth = 7
	/*The month of August, represented numerically as [code]08[/code].*/
	TimeMonthAugust TimeMonth = 8
	/*The month of September, represented numerically as [code]09[/code].*/
	TimeMonthSeptember TimeMonth = 9
	/*The month of October, represented numerically as [code]10[/code].*/
	TimeMonthOctober TimeMonth = 10
	/*The month of November, represented numerically as [code]11[/code].*/
	TimeMonthNovember TimeMonth = 11
	/*The month of December, represented numerically as [code]12[/code].*/
	TimeMonthDecember TimeMonth = 12
)

type TimeWeekday

type TimeWeekday = classdb.TimeWeekday
const (
	/*The day of the week Sunday, represented numerically as [code]0[/code].*/
	TimeWeekdaySunday TimeWeekday = 0
	/*The day of the week Monday, represented numerically as [code]1[/code].*/
	TimeWeekdayMonday TimeWeekday = 1
	/*The day of the week Tuesday, represented numerically as [code]2[/code].*/
	TimeWeekdayTuesday TimeWeekday = 2
	/*The day of the week Wednesday, represented numerically as [code]3[/code].*/
	TimeWeekdayWednesday TimeWeekday = 3
	/*The day of the week Thursday, represented numerically as [code]4[/code].*/
	TimeWeekdayThursday TimeWeekday = 4
	/*The day of the week Friday, represented numerically as [code]5[/code].*/
	TimeWeekdayFriday TimeWeekday = 5
	/*The day of the week Saturday, represented numerically as [code]6[/code].*/
	TimeWeekdaySaturday TimeWeekday = 6
)

type Timer

type Timer = classdb.Timer

Counts down a specified interval and emits a signal on reaching 0. Can be set to repeat or "one-shot" mode. [b]Note:[/b] Timers are affected by [member Engine.time_scale], a higher scale means quicker timeouts, and vice versa. [b]Note:[/b] To create a one-shot timer without instantiating a node, use [method SceneTree.create_timer].

type TimerTimerProcessCallback

type TimerTimerProcessCallback = classdb.TimerTimerProcessCallback
const (
	/*Update the timer during physics frames (see [constant Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS]).*/
	TimerTimerProcessPhysics TimerTimerProcessCallback = 0
	/*Update the timer during process frames (see [constant Node.NOTIFICATION_INTERNAL_PROCESS]).*/
	TimerTimerProcessIdle TimerTimerProcessCallback = 1
)

type TorusMesh

type TorusMesh = classdb.TorusMesh

Class representing a torus PrimitiveMesh.

type TouchScreenButton

type TouchScreenButton = classdb.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.

type TouchScreenButtonVisibilityMode

type TouchScreenButtonVisibilityMode = classdb.TouchScreenButtonVisibilityMode
const (
	/*Always visible.*/
	TouchScreenButtonVisibilityAlways TouchScreenButtonVisibilityMode = 0
	/*Visible on touch screens only.*/
	TouchScreenButtonVisibilityTouchscreenOnly TouchScreenButtonVisibilityMode = 1
)

type Transform2D

type Transform2D = gd.Transform2D

func NewTransform2D

func NewTransform2D(rotation Radians, scale Vector2, skew Radians, position Vector2) Transform2D

NewTransform2D constructs a new Transform2D from the given rotation and position.

type Transform3D

type Transform3D = gd.Transform3D

type Translation

type Translation = classdb.Translation

[Translation]s 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 methods that can be overridden by a [Class] that extends it.
type Translation interface {
	//Virtual method to override [method get_plural_message].
	GetPluralMessage(godot Context, src_message gd.StringName, src_plural_message gd.StringName, n gd.Int, context gd.StringName) gd.StringName
	//Virtual method to override [method get_message].
	GetMessage(godot Context, src_message gd.StringName, context gd.StringName) gd.StringName
}

type Tree

type Tree = classdb.Tree

A control used to show a set of internal [TreeItem]s in a hierarchical structure. The tree items can be selected, expanded and collapsed. The tree can have multiple columns with custom controls like [LineEdit]s, 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 [member hide_root]: [codeblocks] [gdscript] func _ready():

var tree = Tree.new()
var root = tree.create_item()
tree.hide_root = true
var child1 = tree.create_item(root)
var child2 = tree.create_item(root)
var subchild1 = tree.create_item(child1)
subchild1.set_text(0, "Subchild1")

[/gdscript] [csharp] 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");
}

[/csharp] [/codeblocks] To iterate over all the TreeItem objects in a Tree object, use [method TreeItem.get_next] and [method TreeItem.get_first_child] after getting the root through [method get_root]. You can use [method Object.free] on a TreeItem to remove it from the Tree. [b]Incremental search:[/b] 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 [member ProjectSettings.gui/timers/incremental_search_max_interval_msec].

type TreeDropModeFlags

type TreeDropModeFlags = classdb.TreeDropModeFlags
const (
	/*Disables all drop sections, but still allows to detect the "on item" drop section by [method get_drop_section_at_position].
	  [b]Note:[/b] This is the default flag, it has no effect when combined with other flags.*/
	TreeDropModeDisabled TreeDropModeFlags = 0
	/*Enables the "on item" drop section. This drop section covers the entire item.
	  When combined with [constant DROP_MODE_INBETWEEN], this drop section halves the height and stays centered vertically.*/
	TreeDropModeOnItem TreeDropModeFlags = 1
	/*Enables "above item" and "below item" drop sections. The "above item" drop section covers the top half of the item, and the "below item" drop section covers the bottom half.
	  When combined with [constant DROP_MODE_ON_ITEM], these drop sections halves the height and stays on top / bottom accordingly.*/
	TreeDropModeInbetween TreeDropModeFlags = 2
)

type TreeItem

type TreeItem = classdb.TreeItem

A single item of a Tree control. It can contain other [TreeItem]s 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 [method Tree.create_item] or [method TreeItem.create_child]. To remove a TreeItem, use [method Object.free]. [b]Note:[/b] The ID values used for buttons are 32-bit, unlike [int] which is always 64-bit. They go from [code]-2147483648[/code] to [code]2147483647[/code].

type TreeItemTreeCellMode

type TreeItemTreeCellMode = classdb.TreeItemTreeCellMode
const (
	/*Cell contains a string.*/
	TreeItemCellModeString TreeItemTreeCellMode = 0
	/*Cell contains a checkbox.*/
	TreeItemCellModeCheck TreeItemTreeCellMode = 1
	/*Cell contains a range.*/
	TreeItemCellModeRange TreeItemTreeCellMode = 2
	/*Cell contains an icon.*/
	TreeItemCellModeIcon   TreeItemTreeCellMode = 3
	TreeItemCellModeCustom TreeItemTreeCellMode = 4
)

type TreeSelectMode

type TreeSelectMode = classdb.TreeSelectMode
const (
	/*Allows selection of a single cell at a time. From the perspective of items, only a single item is allowed to be selected. And there is only one column selected in the selected item.
	  The focus cursor is always hidden in this mode, but it is positioned at the current selection, making the currently selected item the currently focused item.*/
	TreeSelectSingle TreeSelectMode = 0
	/*Allows selection of a single row at a time. From the perspective of items, only a single items is allowed to be selected. And all the columns are selected in the selected item.
	  The focus cursor is always hidden in this mode, but it is positioned at the first column of the current selection, making the currently selected item the currently focused item.*/
	TreeSelectRow TreeSelectMode = 1
	/*Allows selection of multiple cells at the same time. From the perspective of items, multiple items are allowed to be selected. And there can be multiple columns selected in each selected item.
	  The focus cursor is visible in this mode, the item or column under the cursor is not necessarily selected.*/
	TreeSelectMulti TreeSelectMode = 2
)

type TriangleMesh

type TriangleMesh = classdb.TriangleMesh

Mesh type used internally for collision calculations.

type TubeTrailMesh

type TubeTrailMesh = classdb.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 [member section_length] and number of [member section_rings]. A [member 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.

type Tween

type Tween = classdb.Tween

Tweens are mostly useful for animations requiring a numerical property to be interpolated over a range of values. The name [i]tween[/i] comes from [i]in-betweening[/i], an animation technique where you specify [i]keyframes[/i] 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 [method SceneTree.create_tween] or [method Node.create_tween]. [Tween]s created manually (i.e. by using [code]Tween.new()[/code]) are invalid and can't be used for tweening values. A tween animation is created by adding [Tweener]s to the Tween object, using [method tween_property], [method tween_interval], [method tween_callback] or [method tween_method]: [codeblocks] [gdscript] var tween = get_tree().create_tween() tween.tween_property($Sprite, "modulate", Color.RED, 1) tween.tween_property($Sprite, "scale", Vector2(), 1) tween.tween_callback($Sprite.queue_free) [/gdscript] [csharp] 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)); [/csharp] [/codeblocks] This sequence will make the [code]$Sprite[/code] node turn red, then shrink, before finally calling [method Node.queue_free] to free the sprite. [Tweener]s are executed one after another by default. This behavior can be changed using [method parallel] and [method set_parallel]. When a Tweener is created with one of the [code]tween_*[/code] 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 [method set_trans]: [codeblocks] [gdscript] var tween = get_tree().create_tween() tween.tween_property($Sprite, "modulate", Color.RED, 1).set_trans(Tween.TRANS_SINE) tween.tween_property($Sprite, "scale", Vector2(), 1).set_trans(Tween.TRANS_BOUNCE) tween.tween_callback($Sprite.queue_free) [/gdscript] [csharp] 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)); [/csharp] [/codeblocks] 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 [Tweener]s: [codeblocks] [gdscript] var tween = get_tree().create_tween().bind_node(self).set_trans(Tween.TRANS_ELASTIC) tween.tween_property($Sprite, "modulate", Color.RED, 1) tween.tween_property($Sprite, "scale", Vector2(), 1) tween.tween_callback($Sprite.queue_free) [/gdscript] [csharp] 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)); [/csharp] [/codeblocks] Another interesting use for [Tween]s is animating arbitrary sets of objects: [codeblocks] [gdscript] var tween = create_tween() for sprite in get_children():

tween.tween_property(sprite, "position", Vector2(0, 0), 1)

[/gdscript] [csharp] Tween tween = CreateTween(); foreach (Node sprite in GetChildren())

tween.TweenProperty(sprite, "position", Vector2.Zero, 1.0f);

[/csharp] [/codeblocks] 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: [codeblocks] [gdscript] var tween func animate():

if tween:
    tween.kill() # Abort the previous animation.
tween = create_tween()

[/gdscript] [csharp] private Tween _tween;

public void Animate()

{
    if (_tween != null)
        _tween.Kill(); // Abort the previous animation
    _tween = CreateTween();
}

[/csharp] [/codeblocks] Some [Tweener]s use transitions and eases. The first accepts a [enum TransitionType] constant, and refers to the way the timing of the animation is handled (see [url=https://easings.net/]easings.net[/url] for some examples). The second accepts an [enum EaseType] constant, and controls where the [code]trans_type[/code] 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 [enum TransitionType] constants with [constant EASE_IN_OUT], and use the one that looks best. [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/tween_cheatsheet.webp]Tween easing and transition types cheatsheet[/url] [b]Note:[/b] 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. [b]Note:[/b] The tween is processed after all of the nodes in the current frame, i.e. node's [method Node._process] method would be called before the tween (or [method Node._physics_process] depending on the value passed to [method set_process_mode]).

type TweenEaseType

type TweenEaseType = classdb.TweenEaseType
const (
	/*The interpolation starts slowly and speeds up towards the end.*/
	TweenEaseIn TweenEaseType = 0
	/*The interpolation starts quickly and slows down towards the end.*/
	TweenEaseOut TweenEaseType = 1
	/*A combination of [constant EASE_IN] and [constant EASE_OUT]. The interpolation is slowest at both ends.*/
	TweenEaseInOut TweenEaseType = 2
	/*A combination of [constant EASE_IN] and [constant EASE_OUT]. The interpolation is fastest at both ends.*/
	TweenEaseOutIn TweenEaseType = 3
)

type TweenTransitionType

type TweenTransitionType = classdb.TweenTransitionType
const (
	/*The animation is interpolated linearly.*/
	TweenTransLinear TweenTransitionType = 0
	/*The animation is interpolated using a sine function.*/
	TweenTransSine TweenTransitionType = 1
	/*The animation is interpolated with a quintic (to the power of 5) function.*/
	TweenTransQuint TweenTransitionType = 2
	/*The animation is interpolated with a quartic (to the power of 4) function.*/
	TweenTransQuart TweenTransitionType = 3
	/*The animation is interpolated with a quadratic (to the power of 2) function.*/
	TweenTransQuad TweenTransitionType = 4
	/*The animation is interpolated with an exponential (to the power of x) function.*/
	TweenTransExpo TweenTransitionType = 5
	/*The animation is interpolated with elasticity, wiggling around the edges.*/
	TweenTransElastic TweenTransitionType = 6
	/*The animation is interpolated with a cubic (to the power of 3) function.*/
	TweenTransCubic TweenTransitionType = 7
	/*The animation is interpolated with a function using square roots.*/
	TweenTransCirc TweenTransitionType = 8
	/*The animation is interpolated by bouncing at the end.*/
	TweenTransBounce TweenTransitionType = 9
	/*The animation is interpolated backing out at ends.*/
	TweenTransBack TweenTransitionType = 10
	/*The animation is interpolated like a spring towards the end.*/
	TweenTransSpring TweenTransitionType = 11
)

type TweenTweenPauseMode

type TweenTweenPauseMode = classdb.TweenTweenPauseMode
const (
	/*If the [Tween] has a bound node, it will process when that node can process (see [member Node.process_mode]). Otherwise it's the same as [constant TWEEN_PAUSE_STOP].*/
	TweenTweenPauseBound TweenTweenPauseMode = 0
	/*If [SceneTree] is paused, the [Tween] will also pause.*/
	TweenTweenPauseStop TweenTweenPauseMode = 1
	/*The [Tween] will process regardless of whether [SceneTree] is paused.*/
	TweenTweenPauseProcess TweenTweenPauseMode = 2
)

type TweenTweenProcessMode

type TweenTweenProcessMode = classdb.TweenTweenProcessMode
const (
	/*The [Tween] updates after each physics frame (see [method Node._physics_process]).*/
	TweenTweenProcessPhysics TweenTweenProcessMode = 0
	/*The [Tween] updates after each process frame (see [method Node._process]).*/
	TweenTweenProcessIdle TweenTweenProcessMode = 1
)

type Tweener

type Tweener = classdb.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.

type UDPServer

type UDPServer = classdb.UDPServer

A simple server that opens a UDP socket and returns connected PacketPeerUDP upon receiving new packets. See also [method PacketPeerUDP.connect_to_host]. After starting the server ([method listen]), you will need to [method poll] it at regular intervals (e.g. inside [method Node._process]) 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: [codeblocks] [gdscript] # server_node.gd class_name ServerNode extends Node

var server := UDPServer.new() var peers = []

func _ready():

server.listen(4242)

func _process(delta):

server.poll() # Important!
if server.is_connection_available():
    var peer: PacketPeerUDP = server.take_connection()
    var packet = peer.get_packet()
    print("Accepted peer: %s:%s" % [peer.get_packet_ip(), peer.get_packet_port()])
    print("Received data: %s" % [packet.get_string_from_utf8()])
    # Reply so it knows we received the message.
    peer.put_packet(packet)
    # Keep a reference so we can keep contacting the remote peer.
    peers.append(peer)

for i in range(0, peers.size()):
    pass # Do something with the connected peers.

[/gdscript] [csharp] // 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.
        }
    }
}

[/csharp] [/codeblocks] [codeblocks] [gdscript] # client_node.gd class_name ClientNode extends Node

var udp := PacketPeerUDP.new() var connected = false

func _ready():

udp.connect_to_host("127.0.0.1", 4242)

func _process(delta):

if !connected:
    # Try to contact server
    udp.put_packet("The answer is... 42!".to_utf8_buffer())
if udp.get_available_packet_count() > 0:
    print("Connected: %s" % udp.get_packet().get_string_from_utf8())
    connected = true

[/gdscript] [csharp] // 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;
        }
    }
}

[/csharp] [/codeblocks]

type UPNP

type UPNP = classdb.UPNP

This class can be used to discover compatible [UPNPDevice]s 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 [code]7777[/code], note both [method discover] and [method add_port_mapping] can return errors that should be checked): [codeblock] var upnp = UPNP.new() upnp.discover() upnp.add_port_mapping(7777) [/codeblock] To close a specific port (e.g. after you have finished using it): [codeblock] upnp.delete_port_mapping(port) [/codeblock] [b]Note:[/b] UPnP discovery blocks the current thread. To perform discovery without blocking the main thread, use [Thread]s like this: [codeblock] # 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()

[/codeblock] [b]Terminology:[/b] 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". [b]Pitfalls:[/b] - 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). [b]Further reading:[/b] If you want to know more about UPnP (and the Internet Gateway Device (IGD) and Port Control Protocol (PCP) specifically), [url=https://en.wikipedia.org/wiki/Universal_Plug_and_Play]Wikipedia[/url] is a good first stop, the specification can be found at the [url=https://openconnectivity.org/developer/specifications/upnp-resources/upnp/]Open Connectivity Foundation[/url] and Godot's implementation is based on the [url=https://github.com/miniupnp/miniupnp]MiniUPnP client[/url].

type UPNPDevice

type UPNPDevice = classdb.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.

type UPNPDeviceIGDStatus

type UPNPDeviceIGDStatus = classdb.UPNPDeviceIGDStatus
const (
	/*OK.*/
	UPNPDeviceIgdStatusOk UPNPDeviceIGDStatus = 0
	/*HTTP error.*/
	UPNPDeviceIgdStatusHttpError UPNPDeviceIGDStatus = 1
	/*Empty HTTP response.*/
	UPNPDeviceIgdStatusHttpEmpty UPNPDeviceIGDStatus = 2
	/*Returned response contained no URLs.*/
	UPNPDeviceIgdStatusNoUrls UPNPDeviceIGDStatus = 3
	/*Not a valid IGD.*/
	UPNPDeviceIgdStatusNoIgd UPNPDeviceIGDStatus = 4
	/*Disconnected.*/
	UPNPDeviceIgdStatusDisconnected UPNPDeviceIGDStatus = 5
	/*Unknown device.*/
	UPNPDeviceIgdStatusUnknownDevice UPNPDeviceIGDStatus = 6
	/*Invalid control.*/
	UPNPDeviceIgdStatusInvalidControl UPNPDeviceIGDStatus = 7
	/*Memory allocation error.*/
	UPNPDeviceIgdStatusMallocError UPNPDeviceIGDStatus = 8
	/*Unknown error.*/
	UPNPDeviceIgdStatusUnknownError UPNPDeviceIGDStatus = 9
)

type UPNPUPNPResult

type UPNPUPNPResult = classdb.UPNPUPNPResult
const (
	/*UPNP command or discovery was successful.*/
	UPNPUpnpResultSuccess UPNPUPNPResult = 0
	/*Not authorized to use the command on the [UPNPDevice]. May be returned when the user disabled UPNP on their router.*/
	UPNPUpnpResultNotAuthorized UPNPUPNPResult = 1
	/*No port mapping was found for the given port, protocol combination on the given [UPNPDevice].*/
	UPNPUpnpResultPortMappingNotFound UPNPUPNPResult = 2
	/*Inconsistent parameters.*/
	UPNPUpnpResultInconsistentParameters UPNPUPNPResult = 3
	/*No such entry in array. May be returned if a given port, protocol combination is not found on an [UPNPDevice].*/
	UPNPUpnpResultNoSuchEntryInArray UPNPUPNPResult = 4
	/*The action failed.*/
	UPNPUpnpResultActionFailed UPNPUPNPResult = 5
	/*The [UPNPDevice] does not allow wildcard values for the source IP address.*/
	UPNPUpnpResultSrcIpWildcardNotPermitted UPNPUPNPResult = 6
	/*The [UPNPDevice] does not allow wildcard values for the external port.*/
	UPNPUpnpResultExtPortWildcardNotPermitted UPNPUPNPResult = 7
	/*The [UPNPDevice] does not allow wildcard values for the internal port.*/
	UPNPUpnpResultIntPortWildcardNotPermitted UPNPUPNPResult = 8
	/*The remote host value must be a wildcard.*/
	UPNPUpnpResultRemoteHostMustBeWildcard UPNPUPNPResult = 9
	/*The external port value must be a wildcard.*/
	UPNPUpnpResultExtPortMustBeWildcard UPNPUPNPResult = 10
	/*No port maps are available. May also be returned if port mapping functionality is not available.*/
	UPNPUpnpResultNoPortMapsAvailable UPNPUPNPResult = 11
	/*Conflict with other mechanism. May be returned instead of [constant UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING] if a port mapping conflicts with an existing one.*/
	UPNPUpnpResultConflictWithOtherMechanism UPNPUPNPResult = 12
	/*Conflict with an existing port mapping.*/
	UPNPUpnpResultConflictWithOtherMapping UPNPUPNPResult = 13
	/*External and internal port values must be the same.*/
	UPNPUpnpResultSamePortValuesRequired UPNPUPNPResult = 14
	/*Only permanent leases are supported. Do not use the [code]duration[/code] parameter when adding port mappings.*/
	UPNPUpnpResultOnlyPermanentLeaseSupported UPNPUPNPResult = 15
	/*Invalid gateway.*/
	UPNPUpnpResultInvalidGateway UPNPUPNPResult = 16
	/*Invalid port.*/
	UPNPUpnpResultInvalidPort UPNPUPNPResult = 17
	/*Invalid protocol.*/
	UPNPUpnpResultInvalidProtocol UPNPUPNPResult = 18
	/*Invalid duration.*/
	UPNPUpnpResultInvalidDuration UPNPUPNPResult = 19
	/*Invalid arguments.*/
	UPNPUpnpResultInvalidArgs UPNPUPNPResult = 20
	/*Invalid response.*/
	UPNPUpnpResultInvalidResponse UPNPUPNPResult = 21
	/*Invalid parameter.*/
	UPNPUpnpResultInvalidParam UPNPUPNPResult = 22
	/*HTTP error.*/
	UPNPUpnpResultHttpError UPNPUPNPResult = 23
	/*Socket error.*/
	UPNPUpnpResultSocketError UPNPUPNPResult = 24
	/*Error allocating memory.*/
	UPNPUpnpResultMemAllocError UPNPUPNPResult = 25
	/*No gateway available. You may need to call [method discover] first, or discovery didn't detect any valid IGDs (InternetGatewayDevices).*/
	UPNPUpnpResultNoGateway UPNPUPNPResult = 26
	/*No devices available. You may need to call [method discover] first, or discovery didn't detect any valid [UPNPDevice]s.*/
	UPNPUpnpResultNoDevices UPNPUPNPResult = 27
	/*Unknown error.*/
	UPNPUpnpResultUnknownError UPNPUPNPResult = 28
)

type UndoRedo

type UndoRedo = classdb.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 [code]do_*[/code] methods will run. If the [method undo] method is used, the [code]undo_*[/code] methods will run. If the [method redo] method is used, once again, all of the [code]do_*[/code] methods will run. Here's an example on how to add an action: [codeblocks] [gdscript] var undo_redo = UndoRedo.new()

func do_something():

pass # Put your code here.

func undo_something():

pass # Put here the code that reverts what's done by "do_something()".

func _on_my_button_pressed():

var node = get_node("MyNode2D")
undo_redo.create_action("Move the node")
undo_redo.add_do_method(do_something)
undo_redo.add_undo_method(undo_something)
undo_redo.add_do_property(node, "position", Vector2(100,100))
undo_redo.add_undo_property(node, "position", node.position)
undo_redo.commit_action()

[/gdscript] [csharp] 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();
}

[/csharp] [/codeblocks] Before calling any of the [code]add_(un)do_*[/code] methods, you need to first call [method create_action]. Afterwards you need to call [method commit_action]. If you don't need to register a method, you can leave [method add_do_method] and [method add_undo_method] 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, use EditorUndoRedoManager 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. [codeblocks] [gdscript] undo_redo.create_action("Add object")

# DO undo_redo.add_do_method(_create_object) undo_redo.add_do_method(_add_object_to_singleton)

# UNDO undo_redo.add_undo_method(_remove_object_from_singleton) undo_redo.add_undo_method(_destroy_that_object)

undo_redo.commit_action() [/gdscript] [csharp] _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(); [/csharp] [/codeblocks]

type UndoRedoMergeMode

type UndoRedoMergeMode = classdb.UndoRedoMergeMode
const (
	/*Makes "do"/"undo" operations stay in separate actions.*/
	UndoRedoMergeDisable UndoRedoMergeMode = 0
	/*Makes so that the action's "undo" operations are from the first action created and the "do" operations are from the last subsequent action with the same name.*/
	UndoRedoMergeEnds UndoRedoMergeMode = 1
	/*Makes subsequent actions with the same name be merged into one.*/
	UndoRedoMergeAll UndoRedoMergeMode = 2
)

type VBoxContainer

type VBoxContainer = classdb.VBoxContainer

A variant of BoxContainer that can only arrange its child controls vertically. Child controls are rearranged automatically when their minimum size changes.

type VFlowContainer

type VFlowContainer = classdb.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.

type VScrollBar

type VScrollBar = classdb.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.

type VSeparator

type VSeparator = classdb.VSeparator

A vertical separator used for separating other controls that are arranged [b]horizontally[/b]. VSeparator is purely visual and normally drawn as a StyleBoxLine.

type VSlider

type VSlider = classdb.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.

type VSplitContainer

type VSplitContainer = classdb.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.

type Variant

type Variant = gd.Variant

type VariantOperator

type VariantOperator = gd.VariantOperator
const (
	/*Equality operator ([code]==[/code]).*/
	OpEqual VariantOperator = 0
	/*Inequality operator ([code]!=[/code]).*/
	OpNotEqual VariantOperator = 1
	/*Less than operator ([code]<[/code]).*/
	OpLess VariantOperator = 2
	/*Less than or equal operator ([code]<=[/code]).*/
	OpLessEqual VariantOperator = 3
	/*Greater than operator ([code]>[/code]).*/
	OpGreater VariantOperator = 4
	/*Greater than or equal operator ([code]>=[/code]).*/
	OpGreaterEqual VariantOperator = 5
	/*Addition operator ([code]+[/code]).*/
	OpAdd VariantOperator = 6
	/*Subtraction operator ([code]-[/code]).*/
	OpSubtract VariantOperator = 7
	/*Multiplication operator ([code]*[/code]).*/
	OpMultiply VariantOperator = 8
	/*Division operator ([code]/[/code]).*/
	OpDivide VariantOperator = 9
	/*Unary negation operator ([code]-[/code]).*/
	OpNegate VariantOperator = 10
	/*Unary plus operator ([code]+[/code]).*/
	OpPositive VariantOperator = 11
	/*Remainder/modulo operator ([code]%[/code]).*/
	OpModule VariantOperator = 12
	/*Power operator ([code]**[/code]).*/
	OpPower VariantOperator = 13
	/*Left shift operator ([code]<<[/code]).*/
	OpShiftLeft VariantOperator = 14
	/*Right shift operator ([code]>>[/code]).*/
	OpShiftRight VariantOperator = 15
	/*Bitwise AND operator ([code]&[/code]).*/
	OpBitAnd VariantOperator = 16
	/*Bitwise OR operator ([code]|[/code]).*/
	OpBitOr VariantOperator = 17
	/*Bitwise XOR operator ([code]^[/code]).*/
	OpBitXor VariantOperator = 18
	/*Bitwise NOT operator ([code]~[/code]).*/
	OpBitNegate VariantOperator = 19
	/*Logical AND operator ([code]and[/code] or [code]&&[/code]).*/
	OpAnd VariantOperator = 20
	/*Logical OR operator ([code]or[/code] or [code]||[/code]).*/
	OpOr VariantOperator = 21
	/*Logical XOR operator (not implemented in GDScript).*/
	OpXor VariantOperator = 22
	/*Logical NOT operator ([code]not[/code] or [code]![/code]).*/
	OpNot VariantOperator = 23
	/*Logical IN operator ([code]in[/code]).*/
	OpIn VariantOperator = 24
	/*Represents the size of the [enum Variant.Operator] enum.*/
	OpMax VariantOperator = 25
)

type VariantType

type VariantType = gd.VariantType
const (
	/*Variable is [code]null[/code].*/
	TypeNil VariantType = 0
	/*Variable is of type [bool].*/
	TypeBool VariantType = 1
	/*Variable is of type [int].*/
	TypeInt VariantType = 2
	/*Variable is of type [float].*/
	TypeFloat VariantType = 3
	/*Variable is of type [String].*/
	TypeString VariantType = 4
	/*Variable is of type [Vector2].*/
	TypeVector2 VariantType = 5
	/*Variable is of type [Vector2i].*/
	TypeVector2i VariantType = 6
	/*Variable is of type [Rect2].*/
	TypeRect2 VariantType = 7
	/*Variable is of type [Rect2i].*/
	TypeRect2i VariantType = 8
	/*Variable is of type [Vector3].*/
	TypeVector3 VariantType = 9
	/*Variable is of type [Vector3i].*/
	TypeVector3i VariantType = 10
	/*Variable is of type [Transform2D].*/
	TypeTransform2d VariantType = 11
	/*Variable is of type [Vector4].*/
	TypeVector4 VariantType = 12
	/*Variable is of type [Vector4i].*/
	TypeVector4i VariantType = 13
	/*Variable is of type [Plane].*/
	TypePlane VariantType = 14
	/*Variable is of type [Quaternion].*/
	TypeQuaternion VariantType = 15
	/*Variable is of type [AABB].*/
	TypeAabb VariantType = 16
	/*Variable is of type [Basis].*/
	TypeBasis VariantType = 17
	/*Variable is of type [Transform3D].*/
	TypeTransform3d VariantType = 18
	/*Variable is of type [Projection].*/
	TypeProjection VariantType = 19
	/*Variable is of type [Color].*/
	TypeColor VariantType = 20
	/*Variable is of type [StringName].*/
	TypeStringName VariantType = 21
	/*Variable is of type [NodePath].*/
	TypeNodePath VariantType = 22
	/*Variable is of type [RID].*/
	TypeRid VariantType = 23
	/*Variable is of type [Object].*/
	TypeObject VariantType = 24
	/*Variable is of type [Callable].*/
	TypeCallable VariantType = 25
	/*Variable is of type [Signal].*/
	TypeSignal VariantType = 26
	/*Variable is of type [Dictionary].*/
	TypeDictionary VariantType = 27
	/*Variable is of type [Array].*/
	TypeArray VariantType = 28
	/*Variable is of type [PackedByteArray].*/
	TypePackedByteArray VariantType = 29
	/*Variable is of type [PackedInt32Array].*/
	TypePackedInt32Array VariantType = 30
	/*Variable is of type [PackedInt64Array].*/
	TypePackedInt64Array VariantType = 31
	/*Variable is of type [PackedFloat32Array].*/
	TypePackedFloat32Array VariantType = 32
	/*Variable is of type [PackedFloat64Array].*/
	TypePackedFloat64Array VariantType = 33
	/*Variable is of type [PackedStringArray].*/
	TypePackedStringArray VariantType = 34
	/*Variable is of type [PackedVector2Array].*/
	TypePackedVector2Array VariantType = 35
	/*Variable is of type [PackedVector3Array].*/
	TypePackedVector3Array VariantType = 36
	/*Variable is of type [PackedColorArray].*/
	TypePackedColorArray VariantType = 37
	/*Represents the size of the [enum Variant.Type] enum.*/
	TypeMax VariantType = 38
)

type Vector2

type Vector2 = gd.Vector2

func NewVector2

func NewVector2(x, y Float) Vector2

NewVector2 constructs a new Vector2 from the given x and y.

type Vector2Axis

type Vector2Axis = gd.Vector2Axis
const (
	/*Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector2AxisX Vector2Axis = 0
	/*Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector2AxisY Vector2Axis = 1
)

type Vector2i

type Vector2i = gd.Vector2i

func NewVector2i

func NewVector2i(x, y Int) Vector2i

NewVector2i constructs a new Vector2i from the given x and y.

type Vector2iAxis

type Vector2iAxis = gd.Vector2iAxis
const (
	/*Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector2iAxisX Vector2iAxis = 0
	/*Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector2iAxisY Vector2iAxis = 1
)

type Vector3

type Vector3 = gd.Vector3

func NewVector3

func NewVector3(x, y, z Float) Vector3

NewVector3 constructs a new Vector3 from the given x, y, and z.

type Vector3Axis

type Vector3Axis = gd.Vector3Axis
const (
	/*Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector3AxisX Vector3Axis = 0
	/*Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector3AxisY Vector3Axis = 1
	/*Enumerated value for the Z axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector3AxisZ Vector3Axis = 2
)

type Vector3i

type Vector3i = gd.Vector3i

func NewVector3i

func NewVector3i(x, y, z Int) Vector3i

NewVector3i constructs a new Vector3i from the given x, y, and z.

type Vector3iAxis

type Vector3iAxis = gd.Vector3iAxis
const (
	/*Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector3iAxisX Vector3iAxis = 0
	/*Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector3iAxisY Vector3iAxis = 1
	/*Enumerated value for the Z axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector3iAxisZ Vector3iAxis = 2
)

type Vector4

type Vector4 = gd.Vector4

func NewVector4

func NewVector4(x, y, z, w Float) Vector4

NewVector4 constructs a new Vector4 from the given x, y, z, and w.

type Vector4Axis

type Vector4Axis = gd.Vector4Axis
const (
	/*Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4AxisX Vector4Axis = 0
	/*Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4AxisY Vector4Axis = 1
	/*Enumerated value for the Z axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4AxisZ Vector4Axis = 2
	/*Enumerated value for the W axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4AxisW Vector4Axis = 3
)

type Vector4i

type Vector4i = gd.Vector4i

func NewVector4i

func NewVector4i(x, y, z, w Int) Vector4i

NewVector4i constructs a new Vector4i from the given x, y, z, and w.

type Vector4iAxis

type Vector4iAxis = gd.Vector4iAxis
const (
	/*Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4iAxisX Vector4iAxis = 0
	/*Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4iAxisY Vector4iAxis = 1
	/*Enumerated value for the Z axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4iAxisZ Vector4iAxis = 2
	/*Enumerated value for the W axis. Returned by [method max_axis_index] and [method min_axis_index].*/
	Vector4iAxisW Vector4iAxis = 3
)

type VehicleBody3D

type VehicleBody3D = classdb.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 [member brake], [member engine_force], and [member steering] properties. The position or orientation of this node shouldn't be changed directly. [b]Note:[/b] 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. [b]Note:[/b] 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.

type VehicleWheel3D

type VehicleWheel3D = classdb.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. [b]Note:[/b] 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.

type VerticalAlignment

type VerticalAlignment = gd.VerticalAlignment
const (
	/*Vertical top alignment, usually for text-derived classes.*/
	VerticalAlignmentTop VerticalAlignment = 0
	/*Vertical center alignment, usually for text-derived classes.*/
	VerticalAlignmentCenter VerticalAlignment = 1
	/*Vertical bottom alignment, usually for text-derived classes.*/
	VerticalAlignmentBottom VerticalAlignment = 2
	/*Expand rows to fit height, usually for text-derived classes.*/
	VerticalAlignmentFill VerticalAlignment = 3
)

type VideoStream

type VideoStream = classdb.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 methods that can be overridden by a [Class] that extends it.
type VideoStream interface {
	//Called when the video starts playing, to initialize and return a subclass of [VideoStreamPlayback].
	InstantiatePlayback(godot Context) VideoStreamPlayback
}

type VideoStreamPlayback

type VideoStreamPlayback = classdb.VideoStreamPlayback

This class is intended to be overridden by video decoder extensions with custom implementations of VideoStream.

// VideoStreamPlayback methods that can be overridden by a [Class] that extends it.
type VideoStreamPlayback interface {
	//Stops playback. May be called multiple times before [method _play], or in response to [method VideoStreamPlayer.stop]. [method _is_playing] should return false once stopped.
	Stop(godot Context)
	//Called in response to [member VideoStreamPlayer.autoplay] or [method VideoStreamPlayer.play]. Note that manual playback may also invoke [method _stop] multiple times before this method is called. [method _is_playing] should return true once playing.
	Play(godot Context)
	//Returns the playback state, as determined by calls to [method _play] and [method _stop].
	IsPlaying(godot Context) bool
	//Set the paused status of video playback. [method _is_paused] must return [param paused]. Called in response to the [member VideoStreamPlayer.paused] setter.
	SetPaused(godot Context, paused bool)
	//Returns the paused status, as set by [method _set_paused].
	IsPaused(godot Context) bool
	//Returns the video duration in seconds, if known, or 0 if unknown.
	GetLength(godot Context) gd.Float
	//Return the current playback timestamp. Called in response to the [member VideoStreamPlayer.stream_position] getter.
	GetPlaybackPosition(godot Context) gd.Float
	//Seeks to [param time] seconds. Called in response to the [member VideoStreamPlayer.stream_position] setter.
	Seek(godot Context, time gd.Float)
	//Select the audio track [param idx]. Called when playback starts, and in response to the [member VideoStreamPlayer.audio_track] setter.
	SetAudioTrack(godot Context, idx gd.Int)
	//Allocates a [Texture2D] in which decoded video frames will be drawn.
	GetTexture(godot Context) Texture2D
	//Ticks video playback for [param delta] seconds. Called every frame as long as [method _is_paused] and [method _is_playing] return true.
	Update(godot Context, delta gd.Float)
	//Returns the number of audio channels.
	GetChannels(godot Context) gd.Int
	//Returns the audio sample rate used for mixing.
	GetMixRate(godot Context) gd.Int
}

type VideoStreamPlayer

type VideoStreamPlayer = classdb.VideoStreamPlayer

A control used for playback of VideoStream resources. Supported video formats are [url=https://www.theora.org/]Ogg Theora[/url] ([code].ogv[/code], VideoStreamTheora) and any format exposed via a GDExtension plugin. [b]Warning:[/b] On Web, video playback [i]will[/i] perform poorly due to missing architecture-specific assembly optimizations.

type VideoStreamTheora

type VideoStreamTheora = classdb.VideoStreamTheora

VideoStream resource handling the [url=https://www.theora.org/]Ogg Theora[/url] video format with [code].ogv[/code] extension. The Theora codec is decoded on the CPU. [b]Note:[/b] While Ogg Theora videos can also have an [code].ogg[/code] extension, you will have to rename the extension to [code].ogv[/code] to use those videos within Godot.

type Viewport

type Viewport = classdb.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.

type ViewportDebugDraw

type ViewportDebugDraw = classdb.ViewportDebugDraw
const (
	/*Objects are displayed normally.*/
	ViewportDebugDrawDisabled ViewportDebugDraw = 0
	/*Objects are displayed without light information.*/
	ViewportDebugDrawUnshaded ViewportDebugDraw = 1
	ViewportDebugDrawLighting ViewportDebugDraw = 2
	/*Objects are displayed semi-transparent with additive blending so you can see where they are drawing over top of one another. A higher overdraw means you are wasting performance on drawing pixels that are being hidden behind others.*/
	ViewportDebugDrawOverdraw ViewportDebugDraw = 3
	/*Objects are displayed in wireframe style.*/
	ViewportDebugDrawWireframe    ViewportDebugDraw = 4
	ViewportDebugDrawNormalBuffer ViewportDebugDraw = 5
	/*Objects are displayed with only the albedo value from [VoxelGI]s.*/
	ViewportDebugDrawVoxelGiAlbedo ViewportDebugDraw = 6
	/*Objects are displayed with only the lighting value from [VoxelGI]s.*/
	ViewportDebugDrawVoxelGiLighting ViewportDebugDraw = 7
	/*Objects are displayed with only the emission color from [VoxelGI]s.*/
	ViewportDebugDrawVoxelGiEmission ViewportDebugDraw = 8
	/*Draws the shadow atlas that stores shadows from [OmniLight3D]s and [SpotLight3D]s in the upper left quadrant of the [Viewport].*/
	ViewportDebugDrawShadowAtlas ViewportDebugDraw = 9
	/*Draws the shadow atlas that stores shadows from [DirectionalLight3D]s in the upper left quadrant of the [Viewport].*/
	ViewportDebugDrawDirectionalShadowAtlas ViewportDebugDraw = 10
	ViewportDebugDrawSceneLuminance         ViewportDebugDraw = 11
	/*Draws the screen-space ambient occlusion texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssao_enabled] set in your [WorldEnvironment].*/
	ViewportDebugDrawSsao ViewportDebugDraw = 12
	/*Draws the screen-space indirect lighting texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssil_enabled] set in your [WorldEnvironment].*/
	ViewportDebugDrawSsil ViewportDebugDraw = 13
	/*Colors each PSSM split for the [DirectionalLight3D]s in the scene a different color so you can see where the splits are. In order, they will be colored red, green, blue, and yellow.*/
	ViewportDebugDrawPssmSplits ViewportDebugDraw = 14
	/*Draws the decal atlas used by [Decal]s and light projector textures in the upper left quadrant of the [Viewport].*/
	ViewportDebugDrawDecalAtlas              ViewportDebugDraw = 15
	ViewportDebugDrawSdfgi                   ViewportDebugDraw = 16
	ViewportDebugDrawSdfgiProbes             ViewportDebugDraw = 17
	ViewportDebugDrawGiBuffer                ViewportDebugDraw = 18
	ViewportDebugDrawDisableLod              ViewportDebugDraw = 19
	ViewportDebugDrawClusterOmniLights       ViewportDebugDraw = 20
	ViewportDebugDrawClusterSpotLights       ViewportDebugDraw = 21
	ViewportDebugDrawClusterDecals           ViewportDebugDraw = 22
	ViewportDebugDrawClusterReflectionProbes ViewportDebugDraw = 23
	ViewportDebugDrawOccluders               ViewportDebugDraw = 24
	ViewportDebugDrawMotionVectors           ViewportDebugDraw = 25
	/*Draws the internal resolution buffer of the scene before post-processing is applied.*/
	ViewportDebugDrawInternalBuffer ViewportDebugDraw = 26
)

type ViewportDefaultCanvasItemTextureFilter

type ViewportDefaultCanvasItemTextureFilter = classdb.ViewportDefaultCanvasItemTextureFilter
const (
	/*The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	ViewportDefaultCanvasItemTextureFilterNearest ViewportDefaultCanvasItemTextureFilter = 0
	/*The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	ViewportDefaultCanvasItemTextureFilterLinear ViewportDefaultCanvasItemTextureFilter = 1
	/*The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look smooth from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	ViewportDefaultCanvasItemTextureFilterLinearWithMipmaps ViewportDefaultCanvasItemTextureFilter = 2
	/*The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look pixelated from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	ViewportDefaultCanvasItemTextureFilterNearestWithMipmaps ViewportDefaultCanvasItemTextureFilter = 3
	/*Max value for [enum DefaultCanvasItemTextureFilter] enum.*/
	ViewportDefaultCanvasItemTextureFilterMax ViewportDefaultCanvasItemTextureFilter = 4
)

type ViewportDefaultCanvasItemTextureRepeat

type ViewportDefaultCanvasItemTextureRepeat = classdb.ViewportDefaultCanvasItemTextureRepeat
const (
	/*Disables textures repeating. Instead, when reading UVs outside the 0-1 range, the value will be clamped to the edge of the texture, resulting in a stretched out look at the borders of the texture.*/
	ViewportDefaultCanvasItemTextureRepeatDisabled ViewportDefaultCanvasItemTextureRepeat = 0
	/*Enables the texture to repeat when UV coordinates are outside the 0-1 range. If using one of the linear filtering modes, this can result in artifacts at the edges of a texture when the sampler filters across the edges of the texture.*/
	ViewportDefaultCanvasItemTextureRepeatEnabled ViewportDefaultCanvasItemTextureRepeat = 1
	/*Flip the texture when repeating so that the edge lines up instead of abruptly changing.*/
	ViewportDefaultCanvasItemTextureRepeatMirror ViewportDefaultCanvasItemTextureRepeat = 2
	/*Max value for [enum DefaultCanvasItemTextureRepeat] enum.*/
	ViewportDefaultCanvasItemTextureRepeatMax ViewportDefaultCanvasItemTextureRepeat = 3
)

type ViewportMSAA

type ViewportMSAA = classdb.ViewportMSAA
const (
	/*Multisample antialiasing mode disabled. This is the default value, and is also the fastest setting.*/
	ViewportMsaaDisabled ViewportMSAA = 0
	/*Use 2× Multisample Antialiasing. This has a moderate performance cost. It helps reduce aliasing noticeably, but 4× MSAA still looks substantially better.*/
	ViewportMsaa2x ViewportMSAA = 1
	/*Use 4× Multisample Antialiasing. This has a significant performance cost, and is generally a good compromise between performance and quality.*/
	ViewportMsaa4x ViewportMSAA = 2
	/*Use 8× Multisample Antialiasing. This has a very high performance cost. The difference between 4× and 8× MSAA may not always be visible in real gameplay conditions. Likely unsupported on low-end and older hardware.*/
	ViewportMsaa8x ViewportMSAA = 3
	/*Represents the size of the [enum MSAA] enum.*/
	ViewportMsaaMax ViewportMSAA = 4
)

type ViewportPositionalShadowAtlasQuadrantSubdiv

type ViewportPositionalShadowAtlasQuadrantSubdiv = classdb.ViewportPositionalShadowAtlasQuadrantSubdiv
const (
	/*This quadrant will not be used.*/
	ViewportShadowAtlasQuadrantSubdivDisabled ViewportPositionalShadowAtlasQuadrantSubdiv = 0
	/*This quadrant will only be used by one shadow map.*/
	ViewportShadowAtlasQuadrantSubdiv1 ViewportPositionalShadowAtlasQuadrantSubdiv = 1
	/*This quadrant will be split in 4 and used by up to 4 shadow maps.*/
	ViewportShadowAtlasQuadrantSubdiv4 ViewportPositionalShadowAtlasQuadrantSubdiv = 2
	/*This quadrant will be split 16 ways and used by up to 16 shadow maps.*/
	ViewportShadowAtlasQuadrantSubdiv16 ViewportPositionalShadowAtlasQuadrantSubdiv = 3
	/*This quadrant will be split 64 ways and used by up to 64 shadow maps.*/
	ViewportShadowAtlasQuadrantSubdiv64 ViewportPositionalShadowAtlasQuadrantSubdiv = 4
	/*This quadrant will be split 256 ways and used by up to 256 shadow maps. Unless the [member positional_shadow_atlas_size] is very high, the shadows in this quadrant will be very low resolution.*/
	ViewportShadowAtlasQuadrantSubdiv256 ViewportPositionalShadowAtlasQuadrantSubdiv = 5
	/*This quadrant will be split 1024 ways and used by up to 1024 shadow maps. Unless the [member positional_shadow_atlas_size] is very high, the shadows in this quadrant will be very low resolution.*/
	ViewportShadowAtlasQuadrantSubdiv1024 ViewportPositionalShadowAtlasQuadrantSubdiv = 6
	/*Represents the size of the [enum PositionalShadowAtlasQuadrantSubdiv] enum.*/
	ViewportShadowAtlasQuadrantSubdivMax ViewportPositionalShadowAtlasQuadrantSubdiv = 7
)

type ViewportRenderInfo

type ViewportRenderInfo = classdb.ViewportRenderInfo
const (
	/*Amount of objects in frame.*/
	ViewportRenderInfoObjectsInFrame ViewportRenderInfo = 0
	/*Amount of vertices in frame.*/
	ViewportRenderInfoPrimitivesInFrame ViewportRenderInfo = 1
	/*Amount of draw calls in frame.*/
	ViewportRenderInfoDrawCallsInFrame ViewportRenderInfo = 2
	/*Represents the size of the [enum RenderInfo] enum.*/
	ViewportRenderInfoMax ViewportRenderInfo = 3
)

type ViewportRenderInfoType

type ViewportRenderInfoType = classdb.ViewportRenderInfoType
const (
	ViewportRenderInfoTypeVisible ViewportRenderInfoType = 0
	ViewportRenderInfoTypeShadow  ViewportRenderInfoType = 1
	ViewportRenderInfoTypeMax     ViewportRenderInfoType = 2
)

type ViewportSDFOversize

type ViewportSDFOversize = classdb.ViewportSDFOversize
const (
	ViewportSdfOversize100Percent ViewportSDFOversize = 0
	ViewportSdfOversize120Percent ViewportSDFOversize = 1
	ViewportSdfOversize150Percent ViewportSDFOversize = 2
	ViewportSdfOversize200Percent ViewportSDFOversize = 3
	ViewportSdfOversizeMax        ViewportSDFOversize = 4
)

type ViewportSDFScale

type ViewportSDFScale = classdb.ViewportSDFScale
const (
	ViewportSdfScale100Percent ViewportSDFScale = 0
	ViewportSdfScale50Percent  ViewportSDFScale = 1
	ViewportSdfScale25Percent  ViewportSDFScale = 2
	ViewportSdfScaleMax        ViewportSDFScale = 3
)

type ViewportScaling3DMode

type ViewportScaling3DMode = classdb.ViewportScaling3DMode
const (
	/*Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using [member scaling_3d_scale]. Values less than [code]1.0[/code] will result in undersampling while values greater than [code]1.0[/code] will result in supersampling. A value of [code]1.0[/code] disables scaling.*/
	ViewportScaling3dModeBilinear ViewportScaling3DMode = 0
	/*Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member scaling_3d_scale]. Values less than [code]1.0[/code] will be result in the viewport being upscaled using FSR. Values greater than [code]1.0[/code] are not supported and bilinear downsampling will be used instead. A value of [code]1.0[/code] disables scaling.*/
	ViewportScaling3dModeFsr ViewportScaling3DMode = 1
	/*Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using [member Viewport.scaling_3d_scale]. Values less than [code]1.0[/code] will be result in the viewport being upscaled using FSR2. Values greater than [code]1.0[/code] are not supported and bilinear downsampling will be used instead. A value of [code]1.0[/code] will use FSR2 at native resolution as a TAA solution.*/
	ViewportScaling3dModeFsr2 ViewportScaling3DMode = 2
	/*Represents the size of the [enum Scaling3DMode] enum.*/
	ViewportScaling3dModeMax ViewportScaling3DMode = 3
)

type ViewportScreenSpaceAA

type ViewportScreenSpaceAA = classdb.ViewportScreenSpaceAA
const (
	/*Do not perform any antialiasing in the full screen post-process.*/
	ViewportScreenSpaceAaDisabled ViewportScreenSpaceAA = 0
	/*Use fast approximate antialiasing. FXAA is a popular screen-space antialiasing method, which is fast but will make the image look blurry, especially at lower resolutions. It can still work relatively well at large resolutions such as 1440p and 4K.*/
	ViewportScreenSpaceAaFxaa ViewportScreenSpaceAA = 1
	/*Represents the size of the [enum ScreenSpaceAA] enum.*/
	ViewportScreenSpaceAaMax ViewportScreenSpaceAA = 2
)

type ViewportTexture

type ViewportTexture = classdb.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 [method Viewport.get_texture] method on the target viewport. [b]Note:[/b] A ViewportTexture is always local to its scene (see [member Resource.resource_local_to_scene]). If the scene root is not ready, it may return incorrect data (see [signal Node.ready]).

type ViewportVRSMode

type ViewportVRSMode = classdb.ViewportVRSMode
const (
	/*VRS is disabled.*/
	ViewportVrsDisabled ViewportVRSMode = 0
	/*VRS uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view.*/
	ViewportVrsTexture ViewportVRSMode = 1
	/*VRS texture is supplied by the primary [XRInterface].*/
	ViewportVrsXr ViewportVRSMode = 2
	/*Represents the size of the [enum VRSMode] enum.*/
	ViewportVrsMax ViewportVRSMode = 3
)

type VisibleOnScreenEnabler2D

type VisibleOnScreenEnabler2D = classdb.VisibleOnScreenEnabler2D

VisibleOnScreenEnabler2D contains a rectangular region of 2D space and a target node. The target node will be automatically enabled (via its [member Node.process_mode] 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. [b]Note:[/b] VisibleOnScreenEnabler2D uses the render culling code to determine whether it's visible on screen, so it won't function unless [member CanvasItem.visible] is set to [code]true[/code].

type VisibleOnScreenEnabler2DEnableMode

type VisibleOnScreenEnabler2DEnableMode = classdb.VisibleOnScreenEnabler2DEnableMode
const (
	/*Corresponds to [constant Node.PROCESS_MODE_INHERIT].*/
	VisibleOnScreenEnabler2DEnableModeInherit VisibleOnScreenEnabler2DEnableMode = 0
	/*Corresponds to [constant Node.PROCESS_MODE_ALWAYS].*/
	VisibleOnScreenEnabler2DEnableModeAlways VisibleOnScreenEnabler2DEnableMode = 1
	/*Corresponds to [constant Node.PROCESS_MODE_WHEN_PAUSED].*/
	VisibleOnScreenEnabler2DEnableModeWhenPaused VisibleOnScreenEnabler2DEnableMode = 2
)

type VisibleOnScreenEnabler3D

type VisibleOnScreenEnabler3D = classdb.VisibleOnScreenEnabler3D

VisibleOnScreenEnabler3D contains a box-shaped region of 3D space and a target node. The target node will be automatically enabled (via its [member Node.process_mode] 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. [b]Note:[/b] 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 [member Node3D.visible] is set to [code]true[/code].

type VisibleOnScreenEnabler3DEnableMode

type VisibleOnScreenEnabler3DEnableMode = classdb.VisibleOnScreenEnabler3DEnableMode
const (
	/*Corresponds to [constant Node.PROCESS_MODE_INHERIT].*/
	VisibleOnScreenEnabler3DEnableModeInherit VisibleOnScreenEnabler3DEnableMode = 0
	/*Corresponds to [constant Node.PROCESS_MODE_ALWAYS].*/
	VisibleOnScreenEnabler3DEnableModeAlways VisibleOnScreenEnabler3DEnableMode = 1
	/*Corresponds to [constant Node.PROCESS_MODE_WHEN_PAUSED].*/
	VisibleOnScreenEnabler3DEnableModeWhenPaused VisibleOnScreenEnabler3DEnableMode = 2
)

type VisibleOnScreenNotifier2D

type VisibleOnScreenNotifier2D = classdb.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 [signal screen_entered] signal, and likewise it will emit a [signal screen_exited] 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. [b]Note:[/b] VisibleOnScreenNotifier2D uses the render culling code to determine whether it's visible on screen, so it won't function unless [member CanvasItem.visible] is set to [code]true[/code].

type VisibleOnScreenNotifier3D

type VisibleOnScreenNotifier3D = classdb.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 [signal screen_entered] signal, and likewise it will emit a [signal screen_exited] 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. [b]Note:[/b] 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 [member Node3D.visible] is set to [code]true[/code].

type VisualInstance3D

type VisualInstance3D = classdb.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 methods that can be overridden by a [Class] that extends it.
type VisualInstance3D interface {
	GetAabb(godot Context) gd.AABB
}

type VisualShader

type VisualShader = classdb.VisualShader

This class provides a graph-like visual editor for creating a Shader. Although [VisualShader]s do not require coding, they share the same logic with script shaders. They use [VisualShaderNode]s 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.

type VisualShaderNode

type VisualShaderNode = classdb.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.

type VisualShaderNodeBillboard

type VisualShaderNodeBillboard = classdb.VisualShaderNodeBillboard

The output port of this node needs to be connected to [code]Model View Matrix[/code] port of VisualShaderNodeOutput.

type VisualShaderNodeBillboardBillboardType

type VisualShaderNodeBillboardBillboardType = classdb.VisualShaderNodeBillboardBillboardType
const (
	/*Billboarding is disabled and the node does nothing.*/
	VisualShaderNodeBillboardBillboardTypeDisabled VisualShaderNodeBillboardBillboardType = 0
	/*A standard billboarding algorithm is enabled.*/
	VisualShaderNodeBillboardBillboardTypeEnabled VisualShaderNodeBillboardBillboardType = 1
	/*A billboarding algorithm to rotate around Y-axis is enabled.*/
	VisualShaderNodeBillboardBillboardTypeFixedY VisualShaderNodeBillboardBillboardType = 2
	/*A billboarding algorithm designed to use on particles is enabled.*/
	VisualShaderNodeBillboardBillboardTypeParticles VisualShaderNodeBillboardBillboardType = 3
	/*Represents the size of the [enum BillboardType] enum.*/
	VisualShaderNodeBillboardBillboardTypeMax VisualShaderNodeBillboardBillboardType = 4
)

type VisualShaderNodeBooleanConstant

type VisualShaderNodeBooleanConstant = classdb.VisualShaderNodeBooleanConstant

Has only one output port and no inputs. Translated to [code skip-lint]bool[/code] in the shader language.

type VisualShaderNodeBooleanParameter

type VisualShaderNodeBooleanParameter = classdb.VisualShaderNodeBooleanParameter

Translated to [code]uniform bool[/code] in the shader language.

type VisualShaderNodeClamp

type VisualShaderNodeClamp = classdb.VisualShaderNodeClamp

Constrains a value to lie between [code]min[/code] and [code]max[/code] values.

type VisualShaderNodeClampOpType

type VisualShaderNodeClampOpType = classdb.VisualShaderNodeClampOpType
const (
	/*A floating-point scalar.*/
	VisualShaderNodeClampOpTypeFloat VisualShaderNodeClampOpType = 0
	/*An integer scalar.*/
	VisualShaderNodeClampOpTypeInt VisualShaderNodeClampOpType = 1
	/*An unsigned integer scalar.*/
	VisualShaderNodeClampOpTypeUint VisualShaderNodeClampOpType = 2
	/*A 2D vector type.*/
	VisualShaderNodeClampOpTypeVector2d VisualShaderNodeClampOpType = 3
	/*A 3D vector type.*/
	VisualShaderNodeClampOpTypeVector3d VisualShaderNodeClampOpType = 4
	/*A 4D vector type.*/
	VisualShaderNodeClampOpTypeVector4d VisualShaderNodeClampOpType = 5
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeClampOpTypeMax VisualShaderNodeClampOpType = 6
)

type VisualShaderNodeColorConstant

type VisualShaderNodeColorConstant = classdb.VisualShaderNodeColorConstant

Has two output ports representing RGB and alpha channels of Color. Translated to [code]vec3 rgb[/code] and [code]float alpha[/code] in the shader language.

type VisualShaderNodeColorFunc

type VisualShaderNodeColorFunc = classdb.VisualShaderNodeColorFunc

Accept a Color to the input port and transform it according to [member function].

type VisualShaderNodeColorFuncFunction

type VisualShaderNodeColorFuncFunction = classdb.VisualShaderNodeColorFuncFunction
const (
	/*Converts the color to grayscale using the following formula:
	  [codeblock]
	  vec3 c = input;
	  float max1 = max(c.r, c.g);
	  float max2 = max(max1, c.b);
	  float max3 = max(max1, max2);
	  return vec3(max3, max3, max3);
	  [/codeblock]*/
	VisualShaderNodeColorFuncFuncGrayscale VisualShaderNodeColorFuncFunction = 0
	/*Converts HSV vector to RGB equivalent.*/
	VisualShaderNodeColorFuncFuncHsv2rgb VisualShaderNodeColorFuncFunction = 1
	/*Converts RGB vector to HSV equivalent.*/
	VisualShaderNodeColorFuncFuncRgb2hsv VisualShaderNodeColorFuncFunction = 2
	/*Applies sepia tone effect using the following formula:
	  [codeblock]
	  vec3 c = input;
	  float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);
	  float g = (c.r * 0.349) + (c.g * 0.686) + (c.b * 0.168);
	  float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);
	  return vec3(r, g, b);
	  [/codeblock]*/
	VisualShaderNodeColorFuncFuncSepia VisualShaderNodeColorFuncFunction = 3
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeColorFuncFuncMax VisualShaderNodeColorFuncFunction = 4
)

type VisualShaderNodeColorOp

type VisualShaderNodeColorOp = classdb.VisualShaderNodeColorOp

Applies [member operator] to two color inputs.

type VisualShaderNodeColorOpOperator

type VisualShaderNodeColorOpOperator = classdb.VisualShaderNodeColorOpOperator
const (
	/*Produce a screen effect with the following formula:
	  [codeblock]
	  result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);
	  [/codeblock]*/
	VisualShaderNodeColorOpOpScreen VisualShaderNodeColorOpOperator = 0
	/*Produce a difference effect with the following formula:
	  [codeblock]
	  result = abs(a - b);
	  [/codeblock]*/
	VisualShaderNodeColorOpOpDifference VisualShaderNodeColorOpOperator = 1
	/*Produce a darken effect with the following formula:
	  [codeblock]
	  result = min(a, b);
	  [/codeblock]*/
	VisualShaderNodeColorOpOpDarken VisualShaderNodeColorOpOperator = 2
	/*Produce a lighten effect with the following formula:
	  [codeblock]
	  result = max(a, b);
	  [/codeblock]*/
	VisualShaderNodeColorOpOpLighten VisualShaderNodeColorOpOperator = 3
	/*Produce an overlay effect with the following formula:
	  [codeblock]
	  for (int i = 0; i < 3; i++) {
	      float base = a[i];
	      float blend = b[i];
	      if (base < 0.5) {
	          result[i] = 2.0 * base * blend;
	      } else {
	          result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);
	      }
	  }
	  [/codeblock]*/
	VisualShaderNodeColorOpOpOverlay VisualShaderNodeColorOpOperator = 4
	/*Produce a dodge effect with the following formula:
	  [codeblock]
	  result = a / (vec3(1.0) - b);
	  [/codeblock]*/
	VisualShaderNodeColorOpOpDodge VisualShaderNodeColorOpOperator = 5
	/*Produce a burn effect with the following formula:
	  [codeblock]
	  result = vec3(1.0) - (vec3(1.0) - a) / b;
	  [/codeblock]*/
	VisualShaderNodeColorOpOpBurn VisualShaderNodeColorOpOperator = 6
	/*Produce a soft light effect with the following formula:
	  [codeblock]
	  for (int i = 0; i < 3; i++) {
	      float base = a[i];
	      float blend = b[i];
	      if (base < 0.5) {
	          result[i] = base * (blend + 0.5);
	      } else {
	          result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));
	      }
	  }
	  [/codeblock]*/
	VisualShaderNodeColorOpOpSoftLight VisualShaderNodeColorOpOperator = 7
	/*Produce a hard light effect with the following formula:
	  [codeblock]
	  for (int i = 0; i < 3; i++) {
	      float base = a[i];
	      float blend = b[i];
	      if (base < 0.5) {
	          result[i] = base * (2.0 * blend);
	      } else {
	          result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));
	      }
	  }
	  [/codeblock]*/
	VisualShaderNodeColorOpOpHardLight VisualShaderNodeColorOpOperator = 8
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeColorOpOpMax VisualShaderNodeColorOpOperator = 9
)

type VisualShaderNodeColorParameter

type VisualShaderNodeColorParameter = classdb.VisualShaderNodeColorParameter

Translated to [code]uniform vec4[/code] in the shader language.

type VisualShaderNodeComment

type VisualShaderNodeComment = classdb.VisualShaderNodeComment

A resizable rectangular area with changeable [member title] and [member description] used for better organizing of other visual shader nodes.

type VisualShaderNodeCompare

type VisualShaderNodeCompare = classdb.VisualShaderNodeCompare

Compares [code]a[/code] and [code]b[/code] of [member type] by [member function]. Returns a boolean scalar. Translates to [code]if[/code] instruction in shader code.

type VisualShaderNodeCompareComparisonType

type VisualShaderNodeCompareComparisonType = classdb.VisualShaderNodeCompareComparisonType
const (
	/*A floating-point scalar.*/
	VisualShaderNodeCompareCtypeScalar VisualShaderNodeCompareComparisonType = 0
	/*An integer scalar.*/
	VisualShaderNodeCompareCtypeScalarInt VisualShaderNodeCompareComparisonType = 1
	/*An unsigned integer scalar.*/
	VisualShaderNodeCompareCtypeScalarUint VisualShaderNodeCompareComparisonType = 2
	/*A 2D vector type.*/
	VisualShaderNodeCompareCtypeVector2d VisualShaderNodeCompareComparisonType = 3
	/*A 3D vector type.*/
	VisualShaderNodeCompareCtypeVector3d VisualShaderNodeCompareComparisonType = 4
	/*A 4D vector type.*/
	VisualShaderNodeCompareCtypeVector4d VisualShaderNodeCompareComparisonType = 5
	/*A boolean type.*/
	VisualShaderNodeCompareCtypeBoolean VisualShaderNodeCompareComparisonType = 6
	/*A transform ([code]mat4[/code]) type.*/
	VisualShaderNodeCompareCtypeTransform VisualShaderNodeCompareComparisonType = 7
	/*Represents the size of the [enum ComparisonType] enum.*/
	VisualShaderNodeCompareCtypeMax VisualShaderNodeCompareComparisonType = 8
)

type VisualShaderNodeCompareCondition

type VisualShaderNodeCompareCondition = classdb.VisualShaderNodeCompareCondition
const (
	/*The result will be true if all of component in vector satisfy the comparison condition.*/
	VisualShaderNodeCompareCondAll VisualShaderNodeCompareCondition = 0
	/*The result will be true if any of component in vector satisfy the comparison condition.*/
	VisualShaderNodeCompareCondAny VisualShaderNodeCompareCondition = 1
	/*Represents the size of the [enum Condition] enum.*/
	VisualShaderNodeCompareCondMax VisualShaderNodeCompareCondition = 2
)

type VisualShaderNodeCompareFunction

type VisualShaderNodeCompareFunction = classdb.VisualShaderNodeCompareFunction
const (
	/*Comparison for equality ([code]a == b[/code]).*/
	VisualShaderNodeCompareFuncEqual VisualShaderNodeCompareFunction = 0
	/*Comparison for inequality ([code]a != b[/code]).*/
	VisualShaderNodeCompareFuncNotEqual VisualShaderNodeCompareFunction = 1
	/*Comparison for greater than ([code]a > b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].*/
	VisualShaderNodeCompareFuncGreaterThan VisualShaderNodeCompareFunction = 2
	/*Comparison for greater than or equal ([code]a >= b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].*/
	VisualShaderNodeCompareFuncGreaterThanEqual VisualShaderNodeCompareFunction = 3
	/*Comparison for less than ([code]a < b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].*/
	VisualShaderNodeCompareFuncLessThan VisualShaderNodeCompareFunction = 4
	/*Comparison for less than or equal ([code]a <= b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].*/
	VisualShaderNodeCompareFuncLessThanEqual VisualShaderNodeCompareFunction = 5
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeCompareFuncMax VisualShaderNodeCompareFunction = 6
)

type VisualShaderNodeConstant

type VisualShaderNodeConstant = classdb.VisualShaderNodeConstant

This is an abstract class. See the derived types for descriptions of the possible values.

type VisualShaderNodeCubemap

type VisualShaderNodeCubemap = classdb.VisualShaderNodeCubemap

Translated to [code]texture(cubemap, vec3)[/code] in the shader language. Returns a color vector and alpha channel as scalar.

type VisualShaderNodeCubemapParameter

type VisualShaderNodeCubemapParameter = classdb.VisualShaderNodeCubemapParameter

Translated to [code]uniform samplerCube[/code] in the shader language. The output value can be used as port for VisualShaderNodeCubemap.

type VisualShaderNodeCubemapSource

type VisualShaderNodeCubemapSource = classdb.VisualShaderNodeCubemapSource
const (
	/*Use the [Cubemap] set via [member cube_map]. If this is set to [member source], the [code]samplerCube[/code] port is ignored.*/
	VisualShaderNodeCubemapSourceTexture VisualShaderNodeCubemapSource = 0
	/*Use the [Cubemap] sampler reference passed via the [code]samplerCube[/code] port. If this is set to [member source], the [member cube_map] texture is ignored.*/
	VisualShaderNodeCubemapSourcePort VisualShaderNodeCubemapSource = 1
	/*Represents the size of the [enum Source] enum.*/
	VisualShaderNodeCubemapSourceMax VisualShaderNodeCubemapSource = 2
)

type VisualShaderNodeCubemapTextureType

type VisualShaderNodeCubemapTextureType = classdb.VisualShaderNodeCubemapTextureType
const (
	/*No hints are added to the uniform declaration.*/
	VisualShaderNodeCubemapTypeData VisualShaderNodeCubemapTextureType = 0
	/*Adds [code]source_color[/code] as hint to the uniform declaration for proper sRGB to linear conversion.*/
	VisualShaderNodeCubemapTypeColor VisualShaderNodeCubemapTextureType = 1
	/*Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map.*/
	VisualShaderNodeCubemapTypeNormalMap VisualShaderNodeCubemapTextureType = 2
	/*Represents the size of the [enum TextureType] enum.*/
	VisualShaderNodeCubemapTypeMax VisualShaderNodeCubemapTextureType = 3
)

type VisualShaderNodeCurveTexture

type VisualShaderNodeCurveTexture = classdb.VisualShaderNodeCurveTexture

Comes with a built-in editor for texture's curves.

type VisualShaderNodeCurveXYZTexture

type VisualShaderNodeCurveXYZTexture = classdb.VisualShaderNodeCurveXYZTexture

Comes with a built-in editor for texture's curves.

type VisualShaderNodeCustom

type VisualShaderNodeCustom = classdb.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 [code]@tool[/code] annotation and provide a [code]class_name[/code] for your custom script. For example: [codeblock] @tool extends VisualShaderNodeCustom class_name VisualShaderNodeNoise [/codeblock]

// VisualShaderNodeCustom methods that can be overridden by a [Class] that extends it.
type VisualShaderNodeCustom interface {
	//Override this method to define the name of the associated custom node in the Visual Shader Editor's members dialog and graph.
	//Defining this method is [b]optional[/b], but recommended. If not overridden, the node will be named as "Unnamed".
	GetName(godot Context) gd.String
	//Override this method to define the description of the associated custom node in the Visual Shader Editor's members dialog.
	//Defining this method is [b]optional[/b].
	GetDescription(godot Context) gd.String
	//Override this method to define the path to the associated custom node in the Visual Shader Editor's members dialog. The path may look like [code]"MyGame/MyFunctions/Noise"[/code].
	//Defining this method is [b]optional[/b]. If not overridden, the node will be filed under the "Addons" category.
	GetCategory(godot Context) gd.String
	//Override this method to define the return icon of the associated custom node in the Visual Shader Editor's members dialog.
	//Defining this method is [b]optional[/b]. If not overridden, no return icon is shown.
	GetReturnIconType(godot Context) VisualShaderNodePortType
	//Override this method to define the number of input ports of the associated custom node.
	//Defining this method is [b]required[/b]. If not overridden, the node has no input ports.
	GetInputPortCount(godot Context) gd.Int
	//Override this method to define the returned type of each input port of the associated custom node (see [enum VisualShaderNode.PortType] for possible types).
	//Defining this method is [b]optional[/b], but recommended. If not overridden, input ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] type.
	GetInputPortType(godot Context, port gd.Int) VisualShaderNodePortType
	//Override this method to define the names of input ports of the associated custom node. The names are used both for the input slots in the editor and as identifiers in the shader code, and are passed in the [code]input_vars[/code] array in [method _get_code].
	//Defining this method is [b]optional[/b], but recommended. If not overridden, input ports are named as [code]"in" + str(port)[/code].
	GetInputPortName(godot Context, port gd.Int) gd.String
	//Override this method to define the default value for the specified input port. Prefer use this over [method VisualShaderNode.set_input_port_default_value].
	//Defining this method is [b]required[/b]. If not overridden, the node has no default values for their input ports.
	GetInputPortDefaultValue(godot Context, port gd.Int) gd.Variant
	//Override this method to define the input port which should be connected by default when this node is created as a result of dragging a connection from an existing node to the empty space on the graph.
	//Defining this method is [b]optional[/b]. If not overridden, the connection will be created to the first valid port.
	GetDefaultInputPort(godot Context, atype VisualShaderNodePortType) gd.Int
	//Override this method to define the number of output ports of the associated custom node.
	//Defining this method is [b]required[/b]. If not overridden, the node has no output ports.
	GetOutputPortCount(godot Context) gd.Int
	//Override this method to define the returned type of each output port of the associated custom node (see [enum VisualShaderNode.PortType] for possible types).
	//Defining this method is [b]optional[/b], but recommended. If not overridden, output ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] type.
	GetOutputPortType(godot Context, port gd.Int) VisualShaderNodePortType
	//Override this method to define the names of output ports of the associated custom node. The names are used both for the output slots in the editor and as identifiers in the shader code, and are passed in the [code]output_vars[/code] array in [method _get_code].
	//Defining this method is [b]optional[/b], but recommended. If not overridden, output ports are named as [code]"out" + str(port)[/code].
	GetOutputPortName(godot Context, port gd.Int) gd.String
	//Override this method to define the number of the properties.
	//Defining this method is [b]optional[/b].
	GetPropertyCount(godot Context) gd.Int
	//Override this method to define the names of the property of the associated custom node.
	//Defining this method is [b]optional[/b].
	GetPropertyName(godot Context, index gd.Int) gd.String
	//Override this method to define the default index of the property of the associated custom node.
	//Defining this method is [b]optional[/b].
	GetPropertyDefaultIndex(godot Context, index gd.Int) gd.Int
	//Override this method to define the options inside the drop-down list property of the associated custom node.
	//Defining this method is [b]optional[/b].
	GetPropertyOptions(godot Context, index gd.Int) gd.PackedStringArray
	//Override this method to define the actual shader code of the associated custom node. The shader code should be returned as a string, which can have multiple lines (the [code]"""[/code] multiline string construct can be used for convenience).
	//The [param input_vars] and [param output_vars] arrays contain the string names of the various input and output variables, as defined by [code]_get_input_*[/code] and [code]_get_output_*[/code] virtual methods in this class.
	//The output ports can be assigned values in the shader code. For example, [code]return output_vars[0] + " = " + input_vars[0] + ";"[/code].
	//You can customize the generated code based on the shader [param mode] (see [enum Shader.Mode]) and/or [param type] (see [enum VisualShader.Type]).
	//Defining this method is [b]required[/b].
	GetCode(godot Context, input_vars gd.ArrayOf[gd.String], output_vars gd.ArrayOf[gd.String], mode ShaderMode, atype VisualShaderType) gd.String
	//Override this method to add a shader code to the beginning of each shader function (once). The shader code should be returned as a string, which can have multiple lines (the [code]"""[/code] multiline string construct can be used for convenience).
	//If there are multiple custom nodes of different types which use this feature the order of each insertion is undefined.
	//You can customize the generated code based on the shader [param mode] (see [enum Shader.Mode]) and/or [param type] (see [enum VisualShader.Type]).
	//Defining this method is [b]optional[/b].
	GetFuncCode(godot Context, mode ShaderMode, atype VisualShaderType) gd.String
	//Override this method to add shader code on top of the global shader, to define your own standard library of reusable methods, varyings, constants, uniforms, etc. The shader code should be returned as a string, which can have multiple lines (the [code]"""[/code] multiline string construct can be used for convenience).
	//Be careful with this functionality as it can cause name conflicts with other custom nodes, so be sure to give the defined entities unique names.
	//You can customize the generated code based on the shader [param mode] (see [enum Shader.Mode]).
	//Defining this method is [b]optional[/b].
	GetGlobalCode(godot Context, mode ShaderMode) gd.String
	//Override this method to enable high-end mark in the Visual Shader Editor's members dialog.
	//Defining this method is [b]optional[/b]. If not overridden, it's [code]false[/code].
	IsHighend(godot Context) bool
	//Override this method to prevent the node to be visible in the member dialog for the certain [param mode] (see [enum Shader.Mode]) and/or [param type] (see [enum VisualShader.Type]).
	//Defining this method is [b]optional[/b]. If not overridden, it's [code]true[/code].
	IsAvailable(godot Context, mode ShaderMode, atype VisualShaderType) bool
}

type VisualShaderNodeDerivativeFunc

type VisualShaderNodeDerivativeFunc = classdb.VisualShaderNodeDerivativeFunc

This node is only available in [code]Fragment[/code] and [code]Light[/code] visual shaders.

type VisualShaderNodeDerivativeFuncFunction

type VisualShaderNodeDerivativeFuncFunction = classdb.VisualShaderNodeDerivativeFuncFunction
const (
	/*Sum of absolute derivative in [code]x[/code] and [code]y[/code].*/
	VisualShaderNodeDerivativeFuncFuncSum VisualShaderNodeDerivativeFuncFunction = 0
	/*Derivative in [code]x[/code] using local differencing.*/
	VisualShaderNodeDerivativeFuncFuncX VisualShaderNodeDerivativeFuncFunction = 1
	/*Derivative in [code]y[/code] using local differencing.*/
	VisualShaderNodeDerivativeFuncFuncY VisualShaderNodeDerivativeFuncFunction = 2
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeDerivativeFuncFuncMax VisualShaderNodeDerivativeFuncFunction = 3
)

type VisualShaderNodeDerivativeFuncOpType

type VisualShaderNodeDerivativeFuncOpType = classdb.VisualShaderNodeDerivativeFuncOpType
const (
	/*A floating-point scalar.*/
	VisualShaderNodeDerivativeFuncOpTypeScalar VisualShaderNodeDerivativeFuncOpType = 0
	/*A 2D vector type.*/
	VisualShaderNodeDerivativeFuncOpTypeVector2d VisualShaderNodeDerivativeFuncOpType = 1
	/*A 3D vector type.*/
	VisualShaderNodeDerivativeFuncOpTypeVector3d VisualShaderNodeDerivativeFuncOpType = 2
	/*A 4D vector type.*/
	VisualShaderNodeDerivativeFuncOpTypeVector4d VisualShaderNodeDerivativeFuncOpType = 3
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeDerivativeFuncOpTypeMax VisualShaderNodeDerivativeFuncOpType = 4
)

type VisualShaderNodeDerivativeFuncPrecision

type VisualShaderNodeDerivativeFuncPrecision = classdb.VisualShaderNodeDerivativeFuncPrecision
const (
	/*No precision is specified, the GPU driver is allowed to use whatever level of precision it chooses. This is the default option and is equivalent to using [code]dFdx()[/code] or [code]dFdy()[/code] in text shaders.*/
	VisualShaderNodeDerivativeFuncPrecisionNone VisualShaderNodeDerivativeFuncPrecision = 0
	/*The derivative will be calculated using the current fragment's neighbors (which may not include the current fragment). This tends to be faster than using [constant PRECISION_FINE], but may not be suitable when more precision is needed. This is equivalent to using [code]dFdxCoarse()[/code] or [code]dFdyCoarse()[/code] in text shaders.*/
	VisualShaderNodeDerivativeFuncPrecisionCoarse VisualShaderNodeDerivativeFuncPrecision = 1
	/*The derivative will be calculated using the current fragment and its immediate neighbors. This tends to be slower than using [constant PRECISION_COARSE], but may be necessary when more precision is needed. This is equivalent to using [code]dFdxFine()[/code] or [code]dFdyFine()[/code] in text shaders.*/
	VisualShaderNodeDerivativeFuncPrecisionFine VisualShaderNodeDerivativeFuncPrecision = 2
	/*Represents the size of the [enum Precision] enum.*/
	VisualShaderNodeDerivativeFuncPrecisionMax VisualShaderNodeDerivativeFuncPrecision = 3
)

type VisualShaderNodeDeterminant

type VisualShaderNodeDeterminant = classdb.VisualShaderNodeDeterminant

Translates to [code]determinant(x)[/code] in the shader language.

type VisualShaderNodeDistanceFade

type VisualShaderNodeDistanceFade = classdb.VisualShaderNodeDistanceFade

The distance fade effect fades out each pixel based on its distance to another object.

type VisualShaderNodeDotProduct

type VisualShaderNodeDotProduct = classdb.VisualShaderNodeDotProduct

Translates to [code]dot(a, b)[/code] in the shader language.

type VisualShaderNodeExpression

type VisualShaderNodeExpression = classdb.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 ([code]vertex[/code], [code]fragment[/code], or [code]light[/code]), so it cannot be used to declare functions, varyings, uniforms, or global constants. See VisualShaderNodeGlobalExpression for such global definitions.

type VisualShaderNodeFaceForward

type VisualShaderNodeFaceForward = classdb.VisualShaderNodeFaceForward

Translates to [code]faceforward(N, I, Nref)[/code] in the shader language. The function has three vector parameters: [code]N[/code], the vector to orient, [code]I[/code], the incident vector, and [code]Nref[/code], the reference vector. If the dot product of [code]I[/code] and [code]Nref[/code] is smaller than zero the return value is [code]N[/code]. Otherwise, [code]-N[/code] is returned.

type VisualShaderNodeFloatConstant

type VisualShaderNodeFloatConstant = classdb.VisualShaderNodeFloatConstant

Translated to [code skip-lint]float[/code] in the shader language.

type VisualShaderNodeFloatFunc

type VisualShaderNodeFloatFunc = classdb.VisualShaderNodeFloatFunc

Accept a floating-point scalar ([code]x[/code]) to the input port and transform it according to [member function].

type VisualShaderNodeFloatFuncFunction

type VisualShaderNodeFloatFuncFunction = classdb.VisualShaderNodeFloatFuncFunction
const (
	/*Returns the sine of the parameter. Translates to [code]sin(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncSin VisualShaderNodeFloatFuncFunction = 0
	/*Returns the cosine of the parameter. Translates to [code]cos(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncCos VisualShaderNodeFloatFuncFunction = 1
	/*Returns the tangent of the parameter. Translates to [code]tan(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncTan VisualShaderNodeFloatFuncFunction = 2
	/*Returns the arc-sine of the parameter. Translates to [code]asin(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAsin VisualShaderNodeFloatFuncFunction = 3
	/*Returns the arc-cosine of the parameter. Translates to [code]acos(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAcos VisualShaderNodeFloatFuncFunction = 4
	/*Returns the arc-tangent of the parameter. Translates to [code]atan(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAtan VisualShaderNodeFloatFuncFunction = 5
	/*Returns the hyperbolic sine of the parameter. Translates to [code]sinh(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncSinh VisualShaderNodeFloatFuncFunction = 6
	/*Returns the hyperbolic cosine of the parameter. Translates to [code]cosh(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncCosh VisualShaderNodeFloatFuncFunction = 7
	/*Returns the hyperbolic tangent of the parameter. Translates to [code]tanh(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncTanh VisualShaderNodeFloatFuncFunction = 8
	/*Returns the natural logarithm of the parameter. Translates to [code]log(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncLog VisualShaderNodeFloatFuncFunction = 9
	/*Returns the natural exponentiation of the parameter. Translates to [code]exp(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncExp VisualShaderNodeFloatFuncFunction = 10
	/*Returns the square root of the parameter. Translates to [code]sqrt(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncSqrt VisualShaderNodeFloatFuncFunction = 11
	/*Returns the absolute value of the parameter. Translates to [code]abs(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAbs VisualShaderNodeFloatFuncFunction = 12
	/*Extracts the sign of the parameter. Translates to [code]sign(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncSign VisualShaderNodeFloatFuncFunction = 13
	/*Finds the nearest integer less than or equal to the parameter. Translates to [code]floor(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncFloor VisualShaderNodeFloatFuncFunction = 14
	/*Finds the nearest integer to the parameter. Translates to [code]round(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncRound VisualShaderNodeFloatFuncFunction = 15
	/*Finds the nearest integer that is greater than or equal to the parameter. Translates to [code]ceil(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncCeil VisualShaderNodeFloatFuncFunction = 16
	/*Computes the fractional part of the argument. Translates to [code]fract(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncFract VisualShaderNodeFloatFuncFunction = 17
	/*Clamps the value between [code]0.0[/code] and [code]1.0[/code] using [code]min(max(x, 0.0), 1.0)[/code].*/
	VisualShaderNodeFloatFuncFuncSaturate VisualShaderNodeFloatFuncFunction = 18
	/*Negates the [code]x[/code] using [code]-(x)[/code].*/
	VisualShaderNodeFloatFuncFuncNegate VisualShaderNodeFloatFuncFunction = 19
	/*Returns the arc-hyperbolic-cosine of the parameter. Translates to [code]acosh(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAcosh VisualShaderNodeFloatFuncFunction = 20
	/*Returns the arc-hyperbolic-sine of the parameter. Translates to [code]asinh(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAsinh VisualShaderNodeFloatFuncFunction = 21
	/*Returns the arc-hyperbolic-tangent of the parameter. Translates to [code]atanh(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncAtanh VisualShaderNodeFloatFuncFunction = 22
	/*Convert a quantity in radians to degrees. Translates to [code]degrees(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncDegrees VisualShaderNodeFloatFuncFunction = 23
	/*Returns 2 raised by the power of the parameter. Translates to [code]exp2(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncExp2 VisualShaderNodeFloatFuncFunction = 24
	/*Returns the inverse of the square root of the parameter. Translates to [code]inversesqrt(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncInverseSqrt VisualShaderNodeFloatFuncFunction = 25
	/*Returns the base 2 logarithm of the parameter. Translates to [code]log2(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncLog2 VisualShaderNodeFloatFuncFunction = 26
	/*Convert a quantity in degrees to radians. Translates to [code]radians(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncRadians VisualShaderNodeFloatFuncFunction = 27
	/*Finds reciprocal value of dividing 1 by [code]x[/code] (i.e. [code]1 / x[/code]).*/
	VisualShaderNodeFloatFuncFuncReciprocal VisualShaderNodeFloatFuncFunction = 28
	/*Finds the nearest even integer to the parameter. Translates to [code]roundEven(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncRoundeven VisualShaderNodeFloatFuncFunction = 29
	/*Returns a value equal to the nearest integer to [code]x[/code] whose absolute value is not larger than the absolute value of [code]x[/code]. Translates to [code]trunc(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatFuncFuncTrunc VisualShaderNodeFloatFuncFunction = 30
	/*Subtracts scalar [code]x[/code] from 1 (i.e. [code]1 - x[/code]).*/
	VisualShaderNodeFloatFuncFuncOneminus VisualShaderNodeFloatFuncFunction = 31
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeFloatFuncFuncMax VisualShaderNodeFloatFuncFunction = 32
)

type VisualShaderNodeFloatOp

type VisualShaderNodeFloatOp = classdb.VisualShaderNodeFloatOp

Applies [member operator] to two floating-point inputs: [code]a[/code] and [code]b[/code].

type VisualShaderNodeFloatOpOperator

type VisualShaderNodeFloatOpOperator = classdb.VisualShaderNodeFloatOpOperator
const (
	/*Sums two numbers using [code]a + b[/code].*/
	VisualShaderNodeFloatOpOpAdd VisualShaderNodeFloatOpOperator = 0
	/*Subtracts two numbers using [code]a - b[/code].*/
	VisualShaderNodeFloatOpOpSub VisualShaderNodeFloatOpOperator = 1
	/*Multiplies two numbers using [code]a * b[/code].*/
	VisualShaderNodeFloatOpOpMul VisualShaderNodeFloatOpOperator = 2
	/*Divides two numbers using [code]a / b[/code].*/
	VisualShaderNodeFloatOpOpDiv VisualShaderNodeFloatOpOperator = 3
	/*Calculates the remainder of two numbers. Translates to [code]mod(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatOpOpMod VisualShaderNodeFloatOpOperator = 4
	/*Raises the [code]a[/code] to the power of [code]b[/code]. Translates to [code]pow(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatOpOpPow VisualShaderNodeFloatOpOperator = 5
	/*Returns the greater of two numbers. Translates to [code]max(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatOpOpMax VisualShaderNodeFloatOpOperator = 6
	/*Returns the lesser of two numbers. Translates to [code]min(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatOpOpMin VisualShaderNodeFloatOpOperator = 7
	/*Returns the arc-tangent of the parameters. Translates to [code]atan(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatOpOpAtan2 VisualShaderNodeFloatOpOperator = 8
	/*Generates a step function by comparing [code]b[/code](x) to [code]a[/code](edge). Returns 0.0 if [code]x[/code] is smaller than [code]edge[/code] and otherwise 1.0. Translates to [code]step(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeFloatOpOpStep VisualShaderNodeFloatOpOperator = 9
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeFloatOpOpEnumSize VisualShaderNodeFloatOpOperator = 10
)

type VisualShaderNodeFloatParameter

type VisualShaderNodeFloatParameter = classdb.VisualShaderNodeFloatParameter

Translated to [code]uniform float[/code] in the shader language.

type VisualShaderNodeFloatParameterHint

type VisualShaderNodeFloatParameterHint = classdb.VisualShaderNodeFloatParameterHint
const (
	/*No hint used.*/
	VisualShaderNodeFloatParameterHintNone VisualShaderNodeFloatParameterHint = 0
	/*A range hint for scalar value, which limits possible input values between [member min] and [member max]. Translated to [code]hint_range(min, max)[/code] in shader code.*/
	VisualShaderNodeFloatParameterHintRange VisualShaderNodeFloatParameterHint = 1
	/*A range hint for scalar value with step, which limits possible input values between [member min] and [member max], with a step (increment) of [member step]). Translated to [code]hint_range(min, max, step)[/code] in shader code.*/
	VisualShaderNodeFloatParameterHintRangeStep VisualShaderNodeFloatParameterHint = 2
	/*Represents the size of the [enum Hint] enum.*/
	VisualShaderNodeFloatParameterHintMax VisualShaderNodeFloatParameterHint = 3
)

type VisualShaderNodeFresnel

type VisualShaderNodeFresnel = classdb.VisualShaderNodeFresnel

Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it).

type VisualShaderNodeGlobalExpression

type VisualShaderNodeGlobalExpression = classdb.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 [VisualShaderNodeExpression]s (which are injected in the main shader functions). You can also declare varyings, uniforms and global constants.

type VisualShaderNodeGroupBase

type VisualShaderNodeGroupBase = classdb.VisualShaderNodeGroupBase

Currently, has no direct usage, use the derived classes instead.

type VisualShaderNodeIf

type VisualShaderNodeIf = classdb.VisualShaderNodeIf

This visual shader node has six input ports. Port 1 and 2 provide the two floating point numbers [code]a[/code] and [code]b[/code] 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 if [code]a == b[/code], [code]a > b[/code], or [code]a < b[/code] respectively.

type VisualShaderNodeInput

type VisualShaderNodeInput = classdb.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 [code]Tutorials[/code] section for link).

type VisualShaderNodeIntConstant

type VisualShaderNodeIntConstant = classdb.VisualShaderNodeIntConstant

Translated to [code skip-lint]int[/code] in the shader language.

type VisualShaderNodeIntFunc

type VisualShaderNodeIntFunc = classdb.VisualShaderNodeIntFunc

Accept an integer scalar ([code]x[/code]) to the input port and transform it according to [member function].

type VisualShaderNodeIntFuncFunction

type VisualShaderNodeIntFuncFunction = classdb.VisualShaderNodeIntFuncFunction
const (
	/*Returns the absolute value of the parameter. Translates to [code]abs(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntFuncFuncAbs VisualShaderNodeIntFuncFunction = 0
	/*Negates the [code]x[/code] using [code]-(x)[/code].*/
	VisualShaderNodeIntFuncFuncNegate VisualShaderNodeIntFuncFunction = 1
	/*Extracts the sign of the parameter. Translates to [code]sign(x)[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntFuncFuncSign VisualShaderNodeIntFuncFunction = 2
	/*Returns the result of bitwise [code]NOT[/code] operation on the integer. Translates to [code]~a[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntFuncFuncBitwiseNot VisualShaderNodeIntFuncFunction = 3
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeIntFuncFuncMax VisualShaderNodeIntFuncFunction = 4
)

type VisualShaderNodeIntOp

type VisualShaderNodeIntOp = classdb.VisualShaderNodeIntOp

Applies [member operator] to two integer inputs: [code]a[/code] and [code]b[/code].

type VisualShaderNodeIntOpOperator

type VisualShaderNodeIntOpOperator = classdb.VisualShaderNodeIntOpOperator
const (
	/*Sums two numbers using [code]a + b[/code].*/
	VisualShaderNodeIntOpOpAdd VisualShaderNodeIntOpOperator = 0
	/*Subtracts two numbers using [code]a - b[/code].*/
	VisualShaderNodeIntOpOpSub VisualShaderNodeIntOpOperator = 1
	/*Multiplies two numbers using [code]a * b[/code].*/
	VisualShaderNodeIntOpOpMul VisualShaderNodeIntOpOperator = 2
	/*Divides two numbers using [code]a / b[/code].*/
	VisualShaderNodeIntOpOpDiv VisualShaderNodeIntOpOperator = 3
	/*Calculates the remainder of two numbers using [code]a % b[/code].*/
	VisualShaderNodeIntOpOpMod VisualShaderNodeIntOpOperator = 4
	/*Returns the greater of two numbers. Translates to [code]max(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpMax VisualShaderNodeIntOpOperator = 5
	/*Returns the lesser of two numbers. Translates to [code]max(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpMin VisualShaderNodeIntOpOperator = 6
	/*Returns the result of bitwise [code]AND[/code] operation on the integer. Translates to [code]a & b[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpBitwiseAnd VisualShaderNodeIntOpOperator = 7
	/*Returns the result of bitwise [code]OR[/code] operation for two integers. Translates to [code]a | b[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpBitwiseOr VisualShaderNodeIntOpOperator = 8
	/*Returns the result of bitwise [code]XOR[/code] operation for two integers. Translates to [code]a ^ b[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpBitwiseXor VisualShaderNodeIntOpOperator = 9
	/*Returns the result of bitwise left shift operation on the integer. Translates to [code]a << b[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpBitwiseLeftShift VisualShaderNodeIntOpOperator = 10
	/*Returns the result of bitwise right shift operation on the integer. Translates to [code]a >> b[/code] in the Godot Shader Language.*/
	VisualShaderNodeIntOpOpBitwiseRightShift VisualShaderNodeIntOpOperator = 11
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeIntOpOpEnumSize VisualShaderNodeIntOpOperator = 12
)

type VisualShaderNodeIntParameter

type VisualShaderNodeIntParameter = classdb.VisualShaderNodeIntParameter

A VisualShaderNodeParameter of type [int]. Offers additional customization for range of accepted values.

type VisualShaderNodeIntParameterHint

type VisualShaderNodeIntParameterHint = classdb.VisualShaderNodeIntParameterHint
const (
	/*The parameter will not constrain its value.*/
	VisualShaderNodeIntParameterHintNone VisualShaderNodeIntParameterHint = 0
	/*The parameter's value must be within the specified [member min]/[member max] range.*/
	VisualShaderNodeIntParameterHintRange VisualShaderNodeIntParameterHint = 1
	/*The parameter's value must be within the specified range, with the given [member step] between values.*/
	VisualShaderNodeIntParameterHintRangeStep VisualShaderNodeIntParameterHint = 2
	/*Represents the size of the [enum Hint] enum.*/
	VisualShaderNodeIntParameterHintMax VisualShaderNodeIntParameterHint = 3
)

type VisualShaderNodeIs

type VisualShaderNodeIs = classdb.VisualShaderNodeIs

Returns the boolean result of the comparison between [code]INF[/code] or [code]NaN[/code] and a scalar parameter.

type VisualShaderNodeIsFunction

type VisualShaderNodeIsFunction = classdb.VisualShaderNodeIsFunction
const (
	/*Comparison with [code]INF[/code] (Infinity).*/
	VisualShaderNodeIsFuncIsInf VisualShaderNodeIsFunction = 0
	/*Comparison with [code]NaN[/code] (Not a Number; denotes invalid numeric results, e.g. division by zero).*/
	VisualShaderNodeIsFuncIsNan VisualShaderNodeIsFunction = 1
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeIsFuncMax VisualShaderNodeIsFunction = 2
)

type VisualShaderNodeLinearSceneDepth

type VisualShaderNodeLinearSceneDepth = classdb.VisualShaderNodeLinearSceneDepth

This node can be used in fragment shaders.

type VisualShaderNodeMix

type VisualShaderNodeMix = classdb.VisualShaderNodeMix

Translates to [code]mix(a, b, weight)[/code] in the shader language.

type VisualShaderNodeMixOpType

type VisualShaderNodeMixOpType = classdb.VisualShaderNodeMixOpType
const (
	/*A floating-point scalar.*/
	VisualShaderNodeMixOpTypeScalar VisualShaderNodeMixOpType = 0
	/*A 2D vector type.*/
	VisualShaderNodeMixOpTypeVector2d VisualShaderNodeMixOpType = 1
	/*The [code]a[/code] and [code]b[/code] ports use a 2D vector type. The [code]weight[/code] port uses a scalar type.*/
	VisualShaderNodeMixOpTypeVector2dScalar VisualShaderNodeMixOpType = 2
	/*A 3D vector type.*/
	VisualShaderNodeMixOpTypeVector3d VisualShaderNodeMixOpType = 3
	/*The [code]a[/code] and [code]b[/code] ports use a 3D vector type. The [code]weight[/code] port uses a scalar type.*/
	VisualShaderNodeMixOpTypeVector3dScalar VisualShaderNodeMixOpType = 4
	/*A 4D vector type.*/
	VisualShaderNodeMixOpTypeVector4d VisualShaderNodeMixOpType = 5
	/*The [code]a[/code] and [code]b[/code] ports use a 4D vector type. The [code]weight[/code] port uses a scalar type.*/
	VisualShaderNodeMixOpTypeVector4dScalar VisualShaderNodeMixOpType = 6
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeMixOpTypeMax VisualShaderNodeMixOpType = 7
)

type VisualShaderNodeMultiplyAdd

type VisualShaderNodeMultiplyAdd = classdb.VisualShaderNodeMultiplyAdd

Uses three operands to compute [code](a * b + c)[/code] expression.

type VisualShaderNodeMultiplyAddOpType

type VisualShaderNodeMultiplyAddOpType = classdb.VisualShaderNodeMultiplyAddOpType
const (
	/*A floating-point scalar type.*/
	VisualShaderNodeMultiplyAddOpTypeScalar VisualShaderNodeMultiplyAddOpType = 0
	/*A 2D vector type.*/
	VisualShaderNodeMultiplyAddOpTypeVector2d VisualShaderNodeMultiplyAddOpType = 1
	/*A 3D vector type.*/
	VisualShaderNodeMultiplyAddOpTypeVector3d VisualShaderNodeMultiplyAddOpType = 2
	/*A 4D vector type.*/
	VisualShaderNodeMultiplyAddOpTypeVector4d VisualShaderNodeMultiplyAddOpType = 3
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeMultiplyAddOpTypeMax VisualShaderNodeMultiplyAddOpType = 4
)

type VisualShaderNodeOuterProduct

type VisualShaderNodeOuterProduct = classdb.VisualShaderNodeOuterProduct

[code]OuterProduct[/code] treats the first parameter [code]c[/code] as a column vector (matrix with one column) and the second parameter [code]r[/code] as a row vector (matrix with one row) and does a linear algebraic matrix multiply [code]c * r[/code], yielding a matrix whose number of rows is the number of components in [code]c[/code] and whose number of columns is the number of components in [code]r[/code].

type VisualShaderNodeOutput

type VisualShaderNodeOutput = classdb.VisualShaderNodeOutput

This visual shader node is present in all shader graphs in form of "Output" block with multiple output value ports.

type VisualShaderNodeParameter

type VisualShaderNodeParameter = classdb.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.

type VisualShaderNodeParameterQualifier

type VisualShaderNodeParameterQualifier = classdb.VisualShaderNodeParameterQualifier
const (
	/*The parameter will be tied to the [ShaderMaterial] using this shader.*/
	VisualShaderNodeParameterQualNone VisualShaderNodeParameterQualifier = 0
	/*The parameter will use a global value, defined in Project Settings.*/
	VisualShaderNodeParameterQualGlobal VisualShaderNodeParameterQualifier = 1
	/*The parameter will be tied to the node with attached [ShaderMaterial] using this shader.*/
	VisualShaderNodeParameterQualInstance VisualShaderNodeParameterQualifier = 2
	/*Represents the size of the [enum Qualifier] enum.*/
	VisualShaderNodeParameterQualMax VisualShaderNodeParameterQualifier = 3
)

type VisualShaderNodeParameterRef

type VisualShaderNodeParameterRef = classdb.VisualShaderNodeParameterRef

Creating a reference to a VisualShaderNodeParameter allows you to reuse this parameter in different shaders or shader stages easily.

type VisualShaderNodeParticleAccelerator

type VisualShaderNodeParticleAccelerator = classdb.VisualShaderNodeParticleAccelerator

Particle accelerator can be used in "process" step of particle shader. It will accelerate the particles. Connect it to the Velocity output port.

type VisualShaderNodeParticleAcceleratorMode

type VisualShaderNodeParticleAcceleratorMode = classdb.VisualShaderNodeParticleAcceleratorMode
const (
	/*The particles will be accelerated based on their velocity.*/
	VisualShaderNodeParticleAcceleratorModeLinear VisualShaderNodeParticleAcceleratorMode = 0
	/*The particles will be accelerated towards or away from the center.*/
	VisualShaderNodeParticleAcceleratorModeRadial VisualShaderNodeParticleAcceleratorMode = 1
	/*The particles will be accelerated tangentially to the radius vector from center to their position.*/
	VisualShaderNodeParticleAcceleratorModeTangential VisualShaderNodeParticleAcceleratorMode = 2
	/*Represents the size of the [enum Mode] enum.*/
	VisualShaderNodeParticleAcceleratorModeMax VisualShaderNodeParticleAcceleratorMode = 3
)

type VisualShaderNodeParticleBoxEmitter

type VisualShaderNodeParticleBoxEmitter = classdb.VisualShaderNodeParticleBoxEmitter

VisualShaderNodeParticleEmitter that makes the particles emitted in box shape with the specified extents.

type VisualShaderNodeParticleConeVelocity

type VisualShaderNodeParticleConeVelocity = classdb.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.

type VisualShaderNodeParticleEmit

type VisualShaderNodeParticleEmit = classdb.VisualShaderNodeParticleEmit

This node internally calls [code]emit_subparticle[/code] 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.

type VisualShaderNodeParticleEmitEmitFlags

type VisualShaderNodeParticleEmitEmitFlags = classdb.VisualShaderNodeParticleEmitEmitFlags
const (
	/*If enabled, the particle starts with the position defined by this node.*/
	VisualShaderNodeParticleEmitEmitFlagPosition VisualShaderNodeParticleEmitEmitFlags = 1
	/*If enabled, the particle starts with the rotation and scale defined by this node.*/
	VisualShaderNodeParticleEmitEmitFlagRotScale VisualShaderNodeParticleEmitEmitFlags = 2
	/*If enabled,the particle starts with the velocity defined by this node.*/
	VisualShaderNodeParticleEmitEmitFlagVelocity VisualShaderNodeParticleEmitEmitFlags = 4
	/*If enabled, the particle starts with the color defined by this node.*/
	VisualShaderNodeParticleEmitEmitFlagColor VisualShaderNodeParticleEmitEmitFlags = 8
	/*If enabled, the particle starts with the [code]CUSTOM[/code] data defined by this node.*/
	VisualShaderNodeParticleEmitEmitFlagCustom VisualShaderNodeParticleEmitEmitFlags = 16
)

type VisualShaderNodeParticleEmitter

type VisualShaderNodeParticleEmitter = classdb.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.

type VisualShaderNodeParticleMeshEmitter

type VisualShaderNodeParticleMeshEmitter = classdb.VisualShaderNodeParticleMeshEmitter

VisualShaderNodeParticleEmitter that makes the particles emitted in a shape of the assigned [member mesh]. It will emit from the mesh's surfaces, either all or only the specified one.

type VisualShaderNodeParticleMultiplyByAxisAngle

type VisualShaderNodeParticleMultiplyByAxisAngle = classdb.VisualShaderNodeParticleMultiplyByAxisAngle

This node helps to multiply a position input vector by rotation using specific axis. Intended to work with emitters.

type VisualShaderNodeParticleOutput

type VisualShaderNodeParticleOutput = classdb.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.

type VisualShaderNodeParticleRandomness

type VisualShaderNodeParticleRandomness = classdb.VisualShaderNodeParticleRandomness

Randomness node will output pseudo-random values of the given type based on the specified minimum and maximum values.

type VisualShaderNodeParticleRandomnessOpType

type VisualShaderNodeParticleRandomnessOpType = classdb.VisualShaderNodeParticleRandomnessOpType
const (
	/*A floating-point scalar.*/
	VisualShaderNodeParticleRandomnessOpTypeScalar VisualShaderNodeParticleRandomnessOpType = 0
	/*A 2D vector type.*/
	VisualShaderNodeParticleRandomnessOpTypeVector2d VisualShaderNodeParticleRandomnessOpType = 1
	/*A 3D vector type.*/
	VisualShaderNodeParticleRandomnessOpTypeVector3d VisualShaderNodeParticleRandomnessOpType = 2
	/*A 4D vector type.*/
	VisualShaderNodeParticleRandomnessOpTypeVector4d VisualShaderNodeParticleRandomnessOpType = 3
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeParticleRandomnessOpTypeMax VisualShaderNodeParticleRandomnessOpType = 4
)

type VisualShaderNodeParticleRingEmitter

type VisualShaderNodeParticleRingEmitter = classdb.VisualShaderNodeParticleRingEmitter

VisualShaderNodeParticleEmitter that makes the particles emitted in ring shape with the specified inner and outer radii and height.

type VisualShaderNodeParticleSphereEmitter

type VisualShaderNodeParticleSphereEmitter = classdb.VisualShaderNodeParticleSphereEmitter

VisualShaderNodeParticleEmitter that makes the particles emitted in sphere shape with the specified inner and outer radii.

type VisualShaderNodePortType

type VisualShaderNodePortType = classdb.VisualShaderNodePortType
const (
	/*Floating-point scalar. Translated to [code skip-lint]float[/code] type in shader code.*/
	VisualShaderNodePortTypeScalar VisualShaderNodePortType = 0
	/*Integer scalar. Translated to [code skip-lint]int[/code] type in shader code.*/
	VisualShaderNodePortTypeScalarInt VisualShaderNodePortType = 1
	/*Unsigned integer scalar. Translated to [code skip-lint]uint[/code] type in shader code.*/
	VisualShaderNodePortTypeScalarUint VisualShaderNodePortType = 2
	/*2D vector of floating-point values. Translated to [code skip-lint]vec2[/code] type in shader code.*/
	VisualShaderNodePortTypeVector2d VisualShaderNodePortType = 3
	/*3D vector of floating-point values. Translated to [code skip-lint]vec3[/code] type in shader code.*/
	VisualShaderNodePortTypeVector3d VisualShaderNodePortType = 4
	/*4D vector of floating-point values. Translated to [code skip-lint]vec4[/code] type in shader code.*/
	VisualShaderNodePortTypeVector4d VisualShaderNodePortType = 5
	/*Boolean type. Translated to [code skip-lint]bool[/code] type in shader code.*/
	VisualShaderNodePortTypeBoolean VisualShaderNodePortType = 6
	/*Transform type. Translated to [code skip-lint]mat4[/code] type in shader code.*/
	VisualShaderNodePortTypeTransform VisualShaderNodePortType = 7
	/*Sampler type. Translated to reference of sampler uniform in shader code. Can only be used for input ports in non-uniform nodes.*/
	VisualShaderNodePortTypeSampler VisualShaderNodePortType = 8
	/*Represents the size of the [enum PortType] enum.*/
	VisualShaderNodePortTypeMax VisualShaderNodePortType = 9
)

type VisualShaderNodeProximityFade

type VisualShaderNodeProximityFade = classdb.VisualShaderNodeProximityFade

The proximity fade effect fades out each pixel based on its distance to another object.

type VisualShaderNodeRandomRange

type VisualShaderNodeRandomRange = classdb.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.

type VisualShaderNodeRemap

type VisualShaderNodeRemap = classdb.VisualShaderNodeRemap

Remap will transform the input range into output range, e.g. you can change a [code]0..1[/code] value to [code]-2..2[/code] etc. See [method @GlobalScope.remap] for more details.

type VisualShaderNodeResizableBase

type VisualShaderNodeResizableBase = classdb.VisualShaderNodeResizableBase

Resizable nodes have a handle that allows the user to adjust their size as needed.

type VisualShaderNodeRotationByAxis

type VisualShaderNodeRotationByAxis = classdb.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.

type VisualShaderNodeSDFRaymarch

type VisualShaderNodeSDFRaymarch = classdb.VisualShaderNodeSDFRaymarch

Casts a ray against the screen SDF (signed-distance field) and returns the distance travelled.

type VisualShaderNodeSDFToScreenUV

type VisualShaderNodeSDFToScreenUV = classdb.VisualShaderNodeSDFToScreenUV

Translates to [code]sdf_to_screen_uv(sdf_pos)[/code] in the shader language.

type VisualShaderNodeSample3D

type VisualShaderNodeSample3D = classdb.VisualShaderNodeSample3D

A virtual class, use the descendants instead.

type VisualShaderNodeSample3DSource

type VisualShaderNodeSample3DSource = classdb.VisualShaderNodeSample3DSource
const (
	/*Creates internal uniform and provides a way to assign it within node.*/
	VisualShaderNodeSample3DSourceTexture VisualShaderNodeSample3DSource = 0
	/*Use the uniform texture from sampler port.*/
	VisualShaderNodeSample3DSourcePort VisualShaderNodeSample3DSource = 1
	/*Represents the size of the [enum Source] enum.*/
	VisualShaderNodeSample3DSourceMax VisualShaderNodeSample3DSource = 2
)

type VisualShaderNodeScreenNormalWorldSpace

type VisualShaderNodeScreenNormalWorldSpace = classdb.VisualShaderNodeScreenNormalWorldSpace

The ScreenNormalWorldSpace node allows to create outline effects.

type VisualShaderNodeScreenUVToSDF

type VisualShaderNodeScreenUVToSDF = classdb.VisualShaderNodeScreenUVToSDF

Translates to [code]screen_uv_to_sdf(uv)[/code] in the shader language. If the UV port isn't connected, [code]SCREEN_UV[/code] is used instead.

type VisualShaderNodeSmoothStep

type VisualShaderNodeSmoothStep = classdb.VisualShaderNodeSmoothStep

Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader language. Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/code]. Otherwise, the return value is interpolated between [code]0.0[/code] and [code]1.0[/code] using Hermite polynomials.

type VisualShaderNodeSmoothStepOpType

type VisualShaderNodeSmoothStepOpType = classdb.VisualShaderNodeSmoothStepOpType
const (
	/*A floating-point scalar type.*/
	VisualShaderNodeSmoothStepOpTypeScalar VisualShaderNodeSmoothStepOpType = 0
	/*A 2D vector type.*/
	VisualShaderNodeSmoothStepOpTypeVector2d VisualShaderNodeSmoothStepOpType = 1
	/*The [code]x[/code] port uses a 2D vector type. The first two ports use a floating-point scalar type.*/
	VisualShaderNodeSmoothStepOpTypeVector2dScalar VisualShaderNodeSmoothStepOpType = 2
	/*A 3D vector type.*/
	VisualShaderNodeSmoothStepOpTypeVector3d VisualShaderNodeSmoothStepOpType = 3
	/*The [code]x[/code] port uses a 3D vector type. The first two ports use a floating-point scalar type.*/
	VisualShaderNodeSmoothStepOpTypeVector3dScalar VisualShaderNodeSmoothStepOpType = 4
	/*A 4D vector type.*/
	VisualShaderNodeSmoothStepOpTypeVector4d VisualShaderNodeSmoothStepOpType = 5
	/*The [code]a[/code] and [code]b[/code] ports use a 4D vector type. The [code]weight[/code] port uses a scalar type.*/
	VisualShaderNodeSmoothStepOpTypeVector4dScalar VisualShaderNodeSmoothStepOpType = 6
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeSmoothStepOpTypeMax VisualShaderNodeSmoothStepOpType = 7
)

type VisualShaderNodeStep

type VisualShaderNodeStep = classdb.VisualShaderNodeStep

Translates to [code]step(edge, x)[/code] in the shader language. Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge[/code] and [code]1.0[/code] otherwise.

type VisualShaderNodeStepOpType

type VisualShaderNodeStepOpType = classdb.VisualShaderNodeStepOpType
const (
	/*A floating-point scalar type.*/
	VisualShaderNodeStepOpTypeScalar VisualShaderNodeStepOpType = 0
	/*A 2D vector type.*/
	VisualShaderNodeStepOpTypeVector2d VisualShaderNodeStepOpType = 1
	/*The [code]x[/code] port uses a 2D vector type, while the [code]edge[/code] port uses a floating-point scalar type.*/
	VisualShaderNodeStepOpTypeVector2dScalar VisualShaderNodeStepOpType = 2
	/*A 3D vector type.*/
	VisualShaderNodeStepOpTypeVector3d VisualShaderNodeStepOpType = 3
	/*The [code]x[/code] port uses a 3D vector type, while the [code]edge[/code] port uses a floating-point scalar type.*/
	VisualShaderNodeStepOpTypeVector3dScalar VisualShaderNodeStepOpType = 4
	/*A 4D vector type.*/
	VisualShaderNodeStepOpTypeVector4d VisualShaderNodeStepOpType = 5
	/*The [code]a[/code] and [code]b[/code] ports use a 4D vector type. The [code]weight[/code] port uses a scalar type.*/
	VisualShaderNodeStepOpTypeVector4dScalar VisualShaderNodeStepOpType = 6
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeStepOpTypeMax VisualShaderNodeStepOpType = 7
)

type VisualShaderNodeSwitch

type VisualShaderNodeSwitch = classdb.VisualShaderNodeSwitch

Returns an associated value of the [member op_type] type if the provided boolean value is [code]true[/code] or [code]false[/code].

type VisualShaderNodeSwitchOpType

type VisualShaderNodeSwitchOpType = classdb.VisualShaderNodeSwitchOpType
const (
	/*A floating-point scalar.*/
	VisualShaderNodeSwitchOpTypeFloat VisualShaderNodeSwitchOpType = 0
	/*An integer scalar.*/
	VisualShaderNodeSwitchOpTypeInt VisualShaderNodeSwitchOpType = 1
	/*An unsigned integer scalar.*/
	VisualShaderNodeSwitchOpTypeUint VisualShaderNodeSwitchOpType = 2
	/*A 2D vector type.*/
	VisualShaderNodeSwitchOpTypeVector2d VisualShaderNodeSwitchOpType = 3
	/*A 3D vector type.*/
	VisualShaderNodeSwitchOpTypeVector3d VisualShaderNodeSwitchOpType = 4
	/*A 4D vector type.*/
	VisualShaderNodeSwitchOpTypeVector4d VisualShaderNodeSwitchOpType = 5
	/*A boolean type.*/
	VisualShaderNodeSwitchOpTypeBoolean VisualShaderNodeSwitchOpType = 6
	/*A transform type.*/
	VisualShaderNodeSwitchOpTypeTransform VisualShaderNodeSwitchOpType = 7
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeSwitchOpTypeMax VisualShaderNodeSwitchOpType = 8
)

type VisualShaderNodeTexture

type VisualShaderNodeTexture = classdb.VisualShaderNodeTexture

Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from.

type VisualShaderNodeTexture2DArray

type VisualShaderNodeTexture2DArray = classdb.VisualShaderNodeTexture2DArray

Translated to [code]uniform sampler2DArray[/code] in the shader language.

type VisualShaderNodeTexture2DArrayParameter

type VisualShaderNodeTexture2DArrayParameter = classdb.VisualShaderNodeTexture2DArrayParameter

This parameter allows to provide a collection of textures for the shader. You can use VisualShaderNodeTexture2DArray to extract the textures from array.

type VisualShaderNodeTexture2DParameter

type VisualShaderNodeTexture2DParameter = classdb.VisualShaderNodeTexture2DParameter

Translated to [code]uniform sampler2D[/code] in the shader language.

type VisualShaderNodeTexture3D

type VisualShaderNodeTexture3D = classdb.VisualShaderNodeTexture3D

Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from.

type VisualShaderNodeTexture3DParameter

type VisualShaderNodeTexture3DParameter = classdb.VisualShaderNodeTexture3DParameter

Translated to [code]uniform sampler3D[/code] in the shader language.

type VisualShaderNodeTextureParameter

type VisualShaderNodeTextureParameter = classdb.VisualShaderNodeTextureParameter

Performs a lookup operation on the texture provided as a uniform for the shader.

type VisualShaderNodeTextureParameterColorDefault

type VisualShaderNodeTextureParameterColorDefault = classdb.VisualShaderNodeTextureParameterColorDefault
const (
	/*Defaults to fully opaque white color.*/
	VisualShaderNodeTextureParameterColorDefaultWhite VisualShaderNodeTextureParameterColorDefault = 0
	/*Defaults to fully opaque black color.*/
	VisualShaderNodeTextureParameterColorDefaultBlack VisualShaderNodeTextureParameterColorDefault = 1
	/*Defaults to fully transparent black color.*/
	VisualShaderNodeTextureParameterColorDefaultTransparent VisualShaderNodeTextureParameterColorDefault = 2
	/*Represents the size of the [enum ColorDefault] enum.*/
	VisualShaderNodeTextureParameterColorDefaultMax VisualShaderNodeTextureParameterColorDefault = 3
)

type VisualShaderNodeTextureParameterTextureFilter

type VisualShaderNodeTextureParameterTextureFilter = classdb.VisualShaderNodeTextureParameterTextureFilter
const (
	/*Sample the texture using the filter determined by the node this shader is attached to.*/
	VisualShaderNodeTextureParameterFilterDefault VisualShaderNodeTextureParameterTextureFilter = 0
	/*The texture filter reads from the nearest pixel only. This makes the texture look pixelated from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	VisualShaderNodeTextureParameterFilterNearest VisualShaderNodeTextureParameterTextureFilter = 1
	/*The texture filter blends between the nearest 4 pixels. This makes the texture look smooth from up close, and grainy from a distance (due to mipmaps not being sampled).*/
	VisualShaderNodeTextureParameterFilterLinear VisualShaderNodeTextureParameterTextureFilter = 2
	/*The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look pixelated from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	VisualShaderNodeTextureParameterFilterNearestMipmap VisualShaderNodeTextureParameterTextureFilter = 3
	/*The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]). This makes the texture look smooth from up close, and smooth from a distance.
	  Use this for non-pixel art textures that may be viewed at a low scale (e.g. due to [Camera2D] zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels.*/
	VisualShaderNodeTextureParameterFilterLinearMipmap VisualShaderNodeTextureParameterTextureFilter = 4
	/*The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look pixelated from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
	  [b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant FILTER_NEAREST_MIPMAP] is usually more appropriate in this case.*/
	VisualShaderNodeTextureParameterFilterNearestMipmapAnisotropic VisualShaderNodeTextureParameterTextureFilter = 5
	/*The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if [member ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter] is [code]true[/code]) based on the angle between the surface and the camera view. This makes the texture look smooth from up close, and smooth from a distance. Anisotropic filtering improves texture quality on surfaces that are almost in line with the camera, but is slightly slower. The anisotropic filtering level can be changed by adjusting [member ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level].
	  [b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant FILTER_LINEAR_MIPMAP] is usually more appropriate in this case.*/
	VisualShaderNodeTextureParameterFilterLinearMipmapAnisotropic VisualShaderNodeTextureParameterTextureFilter = 6
	/*Represents the size of the [enum TextureFilter] enum.*/
	VisualShaderNodeTextureParameterFilterMax VisualShaderNodeTextureParameterTextureFilter = 7
)

type VisualShaderNodeTextureParameterTextureRepeat

type VisualShaderNodeTextureParameterTextureRepeat = classdb.VisualShaderNodeTextureParameterTextureRepeat
const (
	/*Sample the texture using the repeat mode determined by the node this shader is attached to.*/
	VisualShaderNodeTextureParameterRepeatDefault VisualShaderNodeTextureParameterTextureRepeat = 0
	/*Texture will repeat normally.*/
	VisualShaderNodeTextureParameterRepeatEnabled VisualShaderNodeTextureParameterTextureRepeat = 1
	/*Texture will not repeat.*/
	VisualShaderNodeTextureParameterRepeatDisabled VisualShaderNodeTextureParameterTextureRepeat = 2
	/*Represents the size of the [enum TextureRepeat] enum.*/
	VisualShaderNodeTextureParameterRepeatMax VisualShaderNodeTextureParameterTextureRepeat = 3
)

type VisualShaderNodeTextureParameterTextureSource

type VisualShaderNodeTextureParameterTextureSource = classdb.VisualShaderNodeTextureParameterTextureSource
const (
	/*The texture source is not specified in the shader.*/
	VisualShaderNodeTextureParameterSourceNone VisualShaderNodeTextureParameterTextureSource = 0
	/*The texture source is the screen texture which captures all opaque objects drawn this frame.*/
	VisualShaderNodeTextureParameterSourceScreen VisualShaderNodeTextureParameterTextureSource = 1
	/*The texture source is the depth texture from the depth prepass.*/
	VisualShaderNodeTextureParameterSourceDepth VisualShaderNodeTextureParameterTextureSource = 2
	/*The texture source is the normal-roughness buffer from the depth prepass.*/
	VisualShaderNodeTextureParameterSourceNormalRoughness VisualShaderNodeTextureParameterTextureSource = 3
	/*Represents the size of the [enum TextureSource] enum.*/
	VisualShaderNodeTextureParameterSourceMax VisualShaderNodeTextureParameterTextureSource = 4
)

type VisualShaderNodeTextureParameterTextureType

type VisualShaderNodeTextureParameterTextureType = classdb.VisualShaderNodeTextureParameterTextureType
const (
	/*No hints are added to the uniform declaration.*/
	VisualShaderNodeTextureParameterTypeData VisualShaderNodeTextureParameterTextureType = 0
	/*Adds [code]source_color[/code] as hint to the uniform declaration for proper sRGB to linear conversion.*/
	VisualShaderNodeTextureParameterTypeColor VisualShaderNodeTextureParameterTextureType = 1
	/*Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map.*/
	VisualShaderNodeTextureParameterTypeNormalMap VisualShaderNodeTextureParameterTextureType = 2
	/*Adds [code]hint_anisotropy[/code] as hint to the uniform declaration to use for a flowmap.*/
	VisualShaderNodeTextureParameterTypeAnisotropy VisualShaderNodeTextureParameterTextureType = 3
	/*Represents the size of the [enum TextureType] enum.*/
	VisualShaderNodeTextureParameterTypeMax VisualShaderNodeTextureParameterTextureType = 4
)

type VisualShaderNodeTextureParameterTriplanar

type VisualShaderNodeTextureParameterTriplanar = classdb.VisualShaderNodeTextureParameterTriplanar

Performs a lookup operation on the texture provided as a uniform for the shader, with support for triplanar mapping.

type VisualShaderNodeTextureSDF

type VisualShaderNodeTextureSDF = classdb.VisualShaderNodeTextureSDF

Translates to [code]texture_sdf(sdf_pos)[/code] in the shader language.

type VisualShaderNodeTextureSDFNormal

type VisualShaderNodeTextureSDFNormal = classdb.VisualShaderNodeTextureSDFNormal

Translates to [code]texture_sdf_normal(sdf_pos)[/code] in the shader language.

type VisualShaderNodeTextureSource

type VisualShaderNodeTextureSource = classdb.VisualShaderNodeTextureSource
const (
	/*Use the texture given as an argument for this function.*/
	VisualShaderNodeTextureSourceTexture VisualShaderNodeTextureSource = 0
	/*Use the current viewport's texture as the source.*/
	VisualShaderNodeTextureSourceScreen VisualShaderNodeTextureSource = 1
	/*Use the texture from this shader's texture built-in (e.g. a texture of a [Sprite2D]).*/
	VisualShaderNodeTextureSource2dTexture VisualShaderNodeTextureSource = 2
	/*Use the texture from this shader's normal map built-in.*/
	VisualShaderNodeTextureSource2dNormal VisualShaderNodeTextureSource = 3
	/*Use the depth texture captured during the depth prepass. Only available when the depth prepass is used (i.e. in spatial shaders and in the forward_plus or gl_compatibility renderers).*/
	VisualShaderNodeTextureSourceDepth VisualShaderNodeTextureSource = 4
	/*Use the texture provided in the input port for this function.*/
	VisualShaderNodeTextureSourcePort VisualShaderNodeTextureSource = 5
	/*Use the normal buffer captured during the depth prepass. Only available when the normal-roughness buffer is available (i.e. in spatial shaders and in the forward_plus renderer).*/
	VisualShaderNodeTextureSource3dNormal VisualShaderNodeTextureSource = 6
	/*Use the roughness buffer captured during the depth prepass. Only available when the normal-roughness buffer is available (i.e. in spatial shaders and in the forward_plus renderer).*/
	VisualShaderNodeTextureSourceRoughness VisualShaderNodeTextureSource = 7
	/*Represents the size of the [enum Source] enum.*/
	VisualShaderNodeTextureSourceMax VisualShaderNodeTextureSource = 8
)

type VisualShaderNodeTextureTextureType

type VisualShaderNodeTextureTextureType = classdb.VisualShaderNodeTextureTextureType
const (
	/*No hints are added to the uniform declaration.*/
	VisualShaderNodeTextureTypeData VisualShaderNodeTextureTextureType = 0
	/*Adds [code]source_color[/code] as hint to the uniform declaration for proper sRGB to linear conversion.*/
	VisualShaderNodeTextureTypeColor VisualShaderNodeTextureTextureType = 1
	/*Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map.*/
	VisualShaderNodeTextureTypeNormalMap VisualShaderNodeTextureTextureType = 2
	/*Represents the size of the [enum TextureType] enum.*/
	VisualShaderNodeTextureTypeMax VisualShaderNodeTextureTextureType = 3
)

type VisualShaderNodeTransformCompose

type VisualShaderNodeTransformCompose = classdb.VisualShaderNodeTransformCompose

Creates a 4x4 transform matrix using four vectors of type [code]vec3[/code]. Each vector is one row in the matrix and the last column is a [code]vec4(0, 0, 0, 1)[/code].

type VisualShaderNodeTransformConstant

type VisualShaderNodeTransformConstant = classdb.VisualShaderNodeTransformConstant

A constant Transform3D, which can be used as an input node.

type VisualShaderNodeTransformDecompose

type VisualShaderNodeTransformDecompose = classdb.VisualShaderNodeTransformDecompose

Takes a 4x4 transform matrix and decomposes it into four [code]vec3[/code] values, one from each row of the matrix.

type VisualShaderNodeTransformFunc

type VisualShaderNodeTransformFunc = classdb.VisualShaderNodeTransformFunc

Computes an inverse or transpose function on the provided Transform3D.

type VisualShaderNodeTransformFuncFunction

type VisualShaderNodeTransformFuncFunction = classdb.VisualShaderNodeTransformFuncFunction
const (
	/*Perform the inverse operation on the [Transform3D] matrix.*/
	VisualShaderNodeTransformFuncFuncInverse VisualShaderNodeTransformFuncFunction = 0
	/*Perform the transpose operation on the [Transform3D] matrix.*/
	VisualShaderNodeTransformFuncFuncTranspose VisualShaderNodeTransformFuncFunction = 1
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeTransformFuncFuncMax VisualShaderNodeTransformFuncFunction = 2
)

type VisualShaderNodeTransformOp

type VisualShaderNodeTransformOp = classdb.VisualShaderNodeTransformOp

Applies [member operator] to two transform (4x4 matrices) inputs.

type VisualShaderNodeTransformOpOperator

type VisualShaderNodeTransformOpOperator = classdb.VisualShaderNodeTransformOpOperator
const (
	/*Multiplies transform [code]a[/code] by the transform [code]b[/code].*/
	VisualShaderNodeTransformOpOpAxb VisualShaderNodeTransformOpOperator = 0
	/*Multiplies transform [code]b[/code] by the transform [code]a[/code].*/
	VisualShaderNodeTransformOpOpBxa VisualShaderNodeTransformOpOperator = 1
	/*Performs a component-wise multiplication of transform [code]a[/code] by the transform [code]b[/code].*/
	VisualShaderNodeTransformOpOpAxbComp VisualShaderNodeTransformOpOperator = 2
	/*Performs a component-wise multiplication of transform [code]b[/code] by the transform [code]a[/code].*/
	VisualShaderNodeTransformOpOpBxaComp VisualShaderNodeTransformOpOperator = 3
	/*Adds two transforms.*/
	VisualShaderNodeTransformOpOpAdd VisualShaderNodeTransformOpOperator = 4
	/*Subtracts the transform [code]a[/code] from the transform [code]b[/code].*/
	VisualShaderNodeTransformOpOpAMinusB VisualShaderNodeTransformOpOperator = 5
	/*Subtracts the transform [code]b[/code] from the transform [code]a[/code].*/
	VisualShaderNodeTransformOpOpBMinusA VisualShaderNodeTransformOpOperator = 6
	/*Divides the transform [code]a[/code] by the transform [code]b[/code].*/
	VisualShaderNodeTransformOpOpADivB VisualShaderNodeTransformOpOperator = 7
	/*Divides the transform [code]b[/code] by the transform [code]a[/code].*/
	VisualShaderNodeTransformOpOpBDivA VisualShaderNodeTransformOpOperator = 8
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeTransformOpOpMax VisualShaderNodeTransformOpOperator = 9
)

type VisualShaderNodeTransformParameter

type VisualShaderNodeTransformParameter = classdb.VisualShaderNodeTransformParameter

Translated to [code]uniform mat4[/code] in the shader language.

type VisualShaderNodeTransformVecMult

type VisualShaderNodeTransformVecMult = classdb.VisualShaderNodeTransformVecMult

A multiplication operation on a transform (4x4 matrix) and a vector, with support for different multiplication operators.

type VisualShaderNodeTransformVecMultOperator

type VisualShaderNodeTransformVecMultOperator = classdb.VisualShaderNodeTransformVecMultOperator
const (
	/*Multiplies transform [code]a[/code] by the vector [code]b[/code].*/
	VisualShaderNodeTransformVecMultOpAxb VisualShaderNodeTransformVecMultOperator = 0
	/*Multiplies vector [code]b[/code] by the transform [code]a[/code].*/
	VisualShaderNodeTransformVecMultOpBxa VisualShaderNodeTransformVecMultOperator = 1
	/*Multiplies transform [code]a[/code] by the vector [code]b[/code], skipping the last row and column of the transform.*/
	VisualShaderNodeTransformVecMultOp3x3Axb VisualShaderNodeTransformVecMultOperator = 2
	/*Multiplies vector [code]b[/code] by the transform [code]a[/code], skipping the last row and column of the transform.*/
	VisualShaderNodeTransformVecMultOp3x3Bxa VisualShaderNodeTransformVecMultOperator = 3
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeTransformVecMultOpMax VisualShaderNodeTransformVecMultOperator = 4
)

type VisualShaderNodeUIntConstant

type VisualShaderNodeUIntConstant = classdb.VisualShaderNodeUIntConstant

Translated to [code]uint[/code] in the shader language.

type VisualShaderNodeUIntFunc

type VisualShaderNodeUIntFunc = classdb.VisualShaderNodeUIntFunc

Accept an unsigned integer scalar ([code]x[/code]) to the input port and transform it according to [member function].

type VisualShaderNodeUIntFuncFunction

type VisualShaderNodeUIntFuncFunction = classdb.VisualShaderNodeUIntFuncFunction
const (
	/*Negates the [code]x[/code] using [code]-(x)[/code].*/
	VisualShaderNodeUIntFuncFuncNegate VisualShaderNodeUIntFuncFunction = 0
	/*Returns the result of bitwise [code]NOT[/code] operation on the integer. Translates to [code]~a[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntFuncFuncBitwiseNot VisualShaderNodeUIntFuncFunction = 1
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeUIntFuncFuncMax VisualShaderNodeUIntFuncFunction = 2
)

type VisualShaderNodeUIntOp

type VisualShaderNodeUIntOp = classdb.VisualShaderNodeUIntOp

Applies [member operator] to two unsigned integer inputs: [code]a[/code] and [code]b[/code].

type VisualShaderNodeUIntOpOperator

type VisualShaderNodeUIntOpOperator = classdb.VisualShaderNodeUIntOpOperator
const (
	/*Sums two numbers using [code]a + b[/code].*/
	VisualShaderNodeUIntOpOpAdd VisualShaderNodeUIntOpOperator = 0
	/*Subtracts two numbers using [code]a - b[/code].*/
	VisualShaderNodeUIntOpOpSub VisualShaderNodeUIntOpOperator = 1
	/*Multiplies two numbers using [code]a * b[/code].*/
	VisualShaderNodeUIntOpOpMul VisualShaderNodeUIntOpOperator = 2
	/*Divides two numbers using [code]a / b[/code].*/
	VisualShaderNodeUIntOpOpDiv VisualShaderNodeUIntOpOperator = 3
	/*Calculates the remainder of two numbers using [code]a % b[/code].*/
	VisualShaderNodeUIntOpOpMod VisualShaderNodeUIntOpOperator = 4
	/*Returns the greater of two numbers. Translates to [code]max(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpMax VisualShaderNodeUIntOpOperator = 5
	/*Returns the lesser of two numbers. Translates to [code]max(a, b)[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpMin VisualShaderNodeUIntOpOperator = 6
	/*Returns the result of bitwise [code]AND[/code] operation on the integer. Translates to [code]a & b[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpBitwiseAnd VisualShaderNodeUIntOpOperator = 7
	/*Returns the result of bitwise [code]OR[/code] operation for two integers. Translates to [code]a | b[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpBitwiseOr VisualShaderNodeUIntOpOperator = 8
	/*Returns the result of bitwise [code]XOR[/code] operation for two integers. Translates to [code]a ^ b[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpBitwiseXor VisualShaderNodeUIntOpOperator = 9
	/*Returns the result of bitwise left shift operation on the integer. Translates to [code]a << b[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpBitwiseLeftShift VisualShaderNodeUIntOpOperator = 10
	/*Returns the result of bitwise right shift operation on the integer. Translates to [code]a >> b[/code] in the Godot Shader Language.*/
	VisualShaderNodeUIntOpOpBitwiseRightShift VisualShaderNodeUIntOpOperator = 11
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeUIntOpOpEnumSize VisualShaderNodeUIntOpOperator = 12
)

type VisualShaderNodeUIntParameter

type VisualShaderNodeUIntParameter = classdb.VisualShaderNodeUIntParameter

A VisualShaderNodeParameter of type unsigned [int]. Offers additional customization for range of accepted values.

type VisualShaderNodeUVFunc

type VisualShaderNodeUVFunc = classdb.VisualShaderNodeUVFunc

UV functions are similar to Vector2 functions, but the input port of this node uses the shader's UV value by default.

type VisualShaderNodeUVFuncFunction

type VisualShaderNodeUVFuncFunction = classdb.VisualShaderNodeUVFuncFunction
const (
	/*Translates [code]uv[/code] by using [code]scale[/code] and [code]offset[/code] values using the following formula: [code]uv = uv + offset * scale[/code]. [code]uv[/code] port is connected to [code]UV[/code] built-in by default.*/
	VisualShaderNodeUVFuncFuncPanning VisualShaderNodeUVFuncFunction = 0
	/*Scales [code]uv[/code] by using [code]scale[/code] and [code]pivot[/code] values using the following formula: [code]uv = (uv - pivot) * scale + pivot[/code]. [code]uv[/code] port is connected to [code]UV[/code] built-in by default.*/
	VisualShaderNodeUVFuncFuncScaling VisualShaderNodeUVFuncFunction = 1
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeUVFuncFuncMax VisualShaderNodeUVFuncFunction = 2
)

type VisualShaderNodeUVPolarCoord

type VisualShaderNodeUVPolarCoord = classdb.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.

type VisualShaderNodeVarying

type VisualShaderNodeVarying = classdb.VisualShaderNodeVarying

Varying values are shader variables that can be passed between shader functions, e.g. from Vertex shader to Fragment shader.

type VisualShaderNodeVaryingGetter

type VisualShaderNodeVaryingGetter = classdb.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 [constant VisualShader.VARYING_MODE_VERTEX_TO_FRAG_LIGHT].

type VisualShaderNodeVaryingSetter

type VisualShaderNodeVaryingSetter = classdb.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 [constant VisualShader.VARYING_MODE_FRAG_TO_LIGHT].

type VisualShaderNodeVec2Constant

type VisualShaderNodeVec2Constant = classdb.VisualShaderNodeVec2Constant

A constant Vector2, which can be used as an input node.

type VisualShaderNodeVec2Parameter

type VisualShaderNodeVec2Parameter = classdb.VisualShaderNodeVec2Parameter

Translated to [code]uniform vec2[/code] in the shader language.

type VisualShaderNodeVec3Constant

type VisualShaderNodeVec3Constant = classdb.VisualShaderNodeVec3Constant

A constant Vector3, which can be used as an input node.

type VisualShaderNodeVec3Parameter

type VisualShaderNodeVec3Parameter = classdb.VisualShaderNodeVec3Parameter

Translated to [code]uniform vec3[/code] in the shader language.

type VisualShaderNodeVec4Constant

type VisualShaderNodeVec4Constant = classdb.VisualShaderNodeVec4Constant

A constant 4D vector, which can be used as an input node.

type VisualShaderNodeVec4Parameter

type VisualShaderNodeVec4Parameter = classdb.VisualShaderNodeVec4Parameter

Translated to [code]uniform vec4[/code] in the shader language.

type VisualShaderNodeVectorBase

type VisualShaderNodeVectorBase = classdb.VisualShaderNodeVectorBase

This is an abstract class. See the derived types for descriptions of the possible operations.

type VisualShaderNodeVectorBaseOpType

type VisualShaderNodeVectorBaseOpType = classdb.VisualShaderNodeVectorBaseOpType
const (
	/*A 2D vector type.*/
	VisualShaderNodeVectorBaseOpTypeVector2d VisualShaderNodeVectorBaseOpType = 0
	/*A 3D vector type.*/
	VisualShaderNodeVectorBaseOpTypeVector3d VisualShaderNodeVectorBaseOpType = 1
	/*A 4D vector type.*/
	VisualShaderNodeVectorBaseOpTypeVector4d VisualShaderNodeVectorBaseOpType = 2
	/*Represents the size of the [enum OpType] enum.*/
	VisualShaderNodeVectorBaseOpTypeMax VisualShaderNodeVectorBaseOpType = 3
)

type VisualShaderNodeVectorCompose

type VisualShaderNodeVectorCompose = classdb.VisualShaderNodeVectorCompose

Creates a [code]vec2[/code], [code]vec3[/code] or [code]vec4[/code] using scalar values that can be provided from separate inputs.

type VisualShaderNodeVectorDecompose

type VisualShaderNodeVectorDecompose = classdb.VisualShaderNodeVectorDecompose

Takes a [code]vec2[/code], [code]vec3[/code] or [code]vec4[/code] and decomposes it into scalar values that can be used as separate outputs.

type VisualShaderNodeVectorDistance

type VisualShaderNodeVectorDistance = classdb.VisualShaderNodeVectorDistance

Calculates distance from point represented by vector [code]p0[/code] to vector [code]p1[/code]. Translated to [code]distance(p0, p1)[/code] in the shader language.

type VisualShaderNodeVectorFunc

type VisualShaderNodeVectorFunc = classdb.VisualShaderNodeVectorFunc

A visual shader node able to perform different functions using vectors.

type VisualShaderNodeVectorFuncFunction

type VisualShaderNodeVectorFuncFunction = classdb.VisualShaderNodeVectorFuncFunction
const (
	/*Normalizes the vector so that it has a length of [code]1[/code] but points in the same direction.*/
	VisualShaderNodeVectorFuncFuncNormalize VisualShaderNodeVectorFuncFunction = 0
	/*Clamps the value between [code]0.0[/code] and [code]1.0[/code].*/
	VisualShaderNodeVectorFuncFuncSaturate VisualShaderNodeVectorFuncFunction = 1
	/*Returns the opposite value of the parameter.*/
	VisualShaderNodeVectorFuncFuncNegate VisualShaderNodeVectorFuncFunction = 2
	/*Returns [code]1/vector[/code].*/
	VisualShaderNodeVectorFuncFuncReciprocal VisualShaderNodeVectorFuncFunction = 3
	/*Returns the absolute value of the parameter.*/
	VisualShaderNodeVectorFuncFuncAbs VisualShaderNodeVectorFuncFunction = 4
	/*Returns the arc-cosine of the parameter.*/
	VisualShaderNodeVectorFuncFuncAcos VisualShaderNodeVectorFuncFunction = 5
	/*Returns the inverse hyperbolic cosine of the parameter.*/
	VisualShaderNodeVectorFuncFuncAcosh VisualShaderNodeVectorFuncFunction = 6
	/*Returns the arc-sine of the parameter.*/
	VisualShaderNodeVectorFuncFuncAsin VisualShaderNodeVectorFuncFunction = 7
	/*Returns the inverse hyperbolic sine of the parameter.*/
	VisualShaderNodeVectorFuncFuncAsinh VisualShaderNodeVectorFuncFunction = 8
	/*Returns the arc-tangent of the parameter.*/
	VisualShaderNodeVectorFuncFuncAtan VisualShaderNodeVectorFuncFunction = 9
	/*Returns the inverse hyperbolic tangent of the parameter.*/
	VisualShaderNodeVectorFuncFuncAtanh VisualShaderNodeVectorFuncFunction = 10
	/*Finds the nearest integer that is greater than or equal to the parameter.*/
	VisualShaderNodeVectorFuncFuncCeil VisualShaderNodeVectorFuncFunction = 11
	/*Returns the cosine of the parameter.*/
	VisualShaderNodeVectorFuncFuncCos VisualShaderNodeVectorFuncFunction = 12
	/*Returns the hyperbolic cosine of the parameter.*/
	VisualShaderNodeVectorFuncFuncCosh VisualShaderNodeVectorFuncFunction = 13
	/*Converts a quantity in radians to degrees.*/
	VisualShaderNodeVectorFuncFuncDegrees VisualShaderNodeVectorFuncFunction = 14
	/*Base-e Exponential.*/
	VisualShaderNodeVectorFuncFuncExp VisualShaderNodeVectorFuncFunction = 15
	/*Base-2 Exponential.*/
	VisualShaderNodeVectorFuncFuncExp2 VisualShaderNodeVectorFuncFunction = 16
	/*Finds the nearest integer less than or equal to the parameter.*/
	VisualShaderNodeVectorFuncFuncFloor VisualShaderNodeVectorFuncFunction = 17
	/*Computes the fractional part of the argument.*/
	VisualShaderNodeVectorFuncFuncFract VisualShaderNodeVectorFuncFunction = 18
	/*Returns the inverse of the square root of the parameter.*/
	VisualShaderNodeVectorFuncFuncInverseSqrt VisualShaderNodeVectorFuncFunction = 19
	/*Natural logarithm.*/
	VisualShaderNodeVectorFuncFuncLog VisualShaderNodeVectorFuncFunction = 20
	/*Base-2 logarithm.*/
	VisualShaderNodeVectorFuncFuncLog2 VisualShaderNodeVectorFuncFunction = 21
	/*Converts a quantity in degrees to radians.*/
	VisualShaderNodeVectorFuncFuncRadians VisualShaderNodeVectorFuncFunction = 22
	/*Finds the nearest integer to the parameter.*/
	VisualShaderNodeVectorFuncFuncRound VisualShaderNodeVectorFuncFunction = 23
	/*Finds the nearest even integer to the parameter.*/
	VisualShaderNodeVectorFuncFuncRoundeven VisualShaderNodeVectorFuncFunction = 24
	/*Extracts the sign of the parameter, i.e. returns [code]-1[/code] if the parameter is negative, [code]1[/code] if it's positive and [code]0[/code] otherwise.*/
	VisualShaderNodeVectorFuncFuncSign VisualShaderNodeVectorFuncFunction = 25
	/*Returns the sine of the parameter.*/
	VisualShaderNodeVectorFuncFuncSin VisualShaderNodeVectorFuncFunction = 26
	/*Returns the hyperbolic sine of the parameter.*/
	VisualShaderNodeVectorFuncFuncSinh VisualShaderNodeVectorFuncFunction = 27
	/*Returns the square root of the parameter.*/
	VisualShaderNodeVectorFuncFuncSqrt VisualShaderNodeVectorFuncFunction = 28
	/*Returns the tangent of the parameter.*/
	VisualShaderNodeVectorFuncFuncTan VisualShaderNodeVectorFuncFunction = 29
	/*Returns the hyperbolic tangent of the parameter.*/
	VisualShaderNodeVectorFuncFuncTanh VisualShaderNodeVectorFuncFunction = 30
	/*Returns a value equal to the nearest integer to the parameter whose absolute value is not larger than the absolute value of the parameter.*/
	VisualShaderNodeVectorFuncFuncTrunc VisualShaderNodeVectorFuncFunction = 31
	/*Returns [code]1.0 - vector[/code].*/
	VisualShaderNodeVectorFuncFuncOneminus VisualShaderNodeVectorFuncFunction = 32
	/*Represents the size of the [enum Function] enum.*/
	VisualShaderNodeVectorFuncFuncMax VisualShaderNodeVectorFuncFunction = 33
)

type VisualShaderNodeVectorLen

type VisualShaderNodeVectorLen = classdb.VisualShaderNodeVectorLen

Translated to [code]length(p0)[/code] in the shader language.

type VisualShaderNodeVectorOp

type VisualShaderNodeVectorOp = classdb.VisualShaderNodeVectorOp

A visual shader node for use of vector operators. Operates on vector [code]a[/code] and vector [code]b[/code].

type VisualShaderNodeVectorOpOperator

type VisualShaderNodeVectorOpOperator = classdb.VisualShaderNodeVectorOpOperator
const (
	/*Adds two vectors.*/
	VisualShaderNodeVectorOpOpAdd VisualShaderNodeVectorOpOperator = 0
	/*Subtracts a vector from a vector.*/
	VisualShaderNodeVectorOpOpSub VisualShaderNodeVectorOpOperator = 1
	/*Multiplies two vectors.*/
	VisualShaderNodeVectorOpOpMul VisualShaderNodeVectorOpOperator = 2
	/*Divides vector by vector.*/
	VisualShaderNodeVectorOpOpDiv VisualShaderNodeVectorOpOperator = 3
	/*Returns the remainder of the two vectors.*/
	VisualShaderNodeVectorOpOpMod VisualShaderNodeVectorOpOperator = 4
	/*Returns the value of the first parameter raised to the power of the second, for each component of the vectors.*/
	VisualShaderNodeVectorOpOpPow VisualShaderNodeVectorOpOperator = 5
	/*Returns the greater of two values, for each component of the vectors.*/
	VisualShaderNodeVectorOpOpMax VisualShaderNodeVectorOpOperator = 6
	/*Returns the lesser of two values, for each component of the vectors.*/
	VisualShaderNodeVectorOpOpMin VisualShaderNodeVectorOpOperator = 7
	/*Calculates the cross product of two vectors.*/
	VisualShaderNodeVectorOpOpCross VisualShaderNodeVectorOpOperator = 8
	/*Returns the arc-tangent of the parameters.*/
	VisualShaderNodeVectorOpOpAtan2 VisualShaderNodeVectorOpOperator = 9
	/*Returns the vector that points in the direction of reflection. [code]a[/code] is incident vector and [code]b[/code] is the normal vector.*/
	VisualShaderNodeVectorOpOpReflect VisualShaderNodeVectorOpOperator = 10
	/*Vector step operator. Returns [code]0.0[/code] if [code]a[/code] is smaller than [code]b[/code] and [code]1.0[/code] otherwise.*/
	VisualShaderNodeVectorOpOpStep VisualShaderNodeVectorOpOperator = 11
	/*Represents the size of the [enum Operator] enum.*/
	VisualShaderNodeVectorOpOpEnumSize VisualShaderNodeVectorOpOperator = 12
)

type VisualShaderNodeVectorRefract

type VisualShaderNodeVectorRefract = classdb.VisualShaderNodeVectorRefract

Translated to [code]refract(I, N, eta)[/code] in the shader language, where [code]I[/code] is the incident vector, [code]N[/code] is the normal vector and [code]eta[/code] is the ratio of the indices of the refraction.

type VisualShaderNodeWorldPositionFromDepth

type VisualShaderNodeWorldPositionFromDepth = classdb.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.

type VisualShaderType

type VisualShaderType = classdb.VisualShaderType
const (
	/*A vertex shader, operating on vertices.*/
	VisualShaderTypeVertex VisualShaderType = 0
	/*A fragment shader, operating on fragments (pixels).*/
	VisualShaderTypeFragment VisualShaderType = 1
	/*A shader for light calculations.*/
	VisualShaderTypeLight VisualShaderType = 2
	/*A function for the "start" stage of particle shader.*/
	VisualShaderTypeStart VisualShaderType = 3
	/*A function for the "process" stage of particle shader.*/
	VisualShaderTypeProcess VisualShaderType = 4
	/*A function for the "collide" stage (particle collision handler) of particle shader.*/
	VisualShaderTypeCollide VisualShaderType = 5
	/*A function for the "start" stage of particle shader, with customized output.*/
	VisualShaderTypeStartCustom VisualShaderType = 6
	/*A function for the "process" stage of particle shader, with customized output.*/
	VisualShaderTypeProcessCustom VisualShaderType = 7
	/*A shader for 3D environment's sky.*/
	VisualShaderTypeSky VisualShaderType = 8
	/*A compute shader that runs for each froxel of the volumetric fog map.*/
	VisualShaderTypeFog VisualShaderType = 9
	/*Represents the size of the [enum Type] enum.*/
	VisualShaderTypeMax VisualShaderType = 10
)

type VisualShaderVaryingMode

type VisualShaderVaryingMode = classdb.VisualShaderVaryingMode
const (
	/*Varying is passed from [code]Vertex[/code] function to [code]Fragment[/code] and [code]Light[/code] functions.*/
	VisualShaderVaryingModeVertexToFragLight VisualShaderVaryingMode = 0
	/*Varying is passed from [code]Fragment[/code] function to [code]Light[/code] function.*/
	VisualShaderVaryingModeFragToLight VisualShaderVaryingMode = 1
	/*Represents the size of the [enum VaryingMode] enum.*/
	VisualShaderVaryingModeMax VisualShaderVaryingMode = 2
)

type VisualShaderVaryingType

type VisualShaderVaryingType = classdb.VisualShaderVaryingType
const (
	/*Varying is of type [float].*/
	VisualShaderVaryingTypeFloat VisualShaderVaryingType = 0
	/*Varying is of type [int].*/
	VisualShaderVaryingTypeInt VisualShaderVaryingType = 1
	/*Varying is of type unsigned [int].*/
	VisualShaderVaryingTypeUint VisualShaderVaryingType = 2
	/*Varying is of type [Vector2].*/
	VisualShaderVaryingTypeVector2d VisualShaderVaryingType = 3
	/*Varying is of type [Vector3].*/
	VisualShaderVaryingTypeVector3d VisualShaderVaryingType = 4
	/*Varying is of type [Vector4].*/
	VisualShaderVaryingTypeVector4d VisualShaderVaryingType = 5
	/*Varying is of type [bool].*/
	VisualShaderVaryingTypeBoolean VisualShaderVaryingType = 6
	/*Varying is of type [Transform3D].*/
	VisualShaderVaryingTypeTransform VisualShaderVaryingType = 7
	/*Represents the size of the [enum VaryingType] enum.*/
	VisualShaderVaryingTypeMax VisualShaderVaryingType = 8
)

type VoxelGI

type VoxelGI = classdb.VoxelGI

[VoxelGI]s 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. [VoxelGI]s 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. [b]Note:[/b] VoxelGI is only supported in the Forward+ rendering method, not Mobile or Compatibility. [b]Procedural generation:[/b] 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 [member Environment.sdfgi_enabled]). [b]Performance:[/b] 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 [member ProjectSettings.rendering/global_illumination/voxel_gi/quality] and enable [member ProjectSettings.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. [b]Note:[/b] 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 [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_STATIC]. These temporary nodes can then be hidden after baking the VoxelGI node.

type VoxelGIData

type VoxelGIData = classdb.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. [b]Note:[/b] To prevent text-based scene files ([code].tscn[/code]) from growing too much and becoming slow to load and save, always save VoxelGIData to an external binary resource file ([code].res[/code]) instead of embedding it within the scene. This can be done by clicking the dropdown arrow next to the VoxelGIData resource, choosing [b]Edit[/b], clicking the floppy disk icon at the top of the Inspector then choosing [b]Save As...[/b].

type VoxelGISubdiv

type VoxelGISubdiv = classdb.VoxelGISubdiv
const (
	/*Use 64 subdivisions. This is the lowest quality setting, but the fastest. Use it if you can, but especially use it on lower-end hardware.*/
	VoxelGISubdiv64 VoxelGISubdiv = 0
	/*Use 128 subdivisions. This is the default quality setting.*/
	VoxelGISubdiv128 VoxelGISubdiv = 1
	/*Use 256 subdivisions.*/
	VoxelGISubdiv256 VoxelGISubdiv = 2
	/*Use 512 subdivisions. This is the highest quality setting, but the slowest. On lower-end hardware, this could cause the GPU to stall.*/
	VoxelGISubdiv512 VoxelGISubdiv = 3
	/*Represents the size of the [enum Subdiv] enum.*/
	VoxelGISubdivMax VoxelGISubdiv = 4
)

type WeakRef

type WeakRef = classdb.WeakRef

A weakref can hold a RefCounted without contributing to the reference counter. A weakref can be created from an Object using [method @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.

type WebRTCDataChannel

type WebRTCDataChannel = classdb.WebRTCDataChannel

type WebRTCDataChannelChannelState

type WebRTCDataChannelChannelState = classdb.WebRTCDataChannelChannelState
const (
	/*The channel was created, but it's still trying to connect.*/
	WebRTCDataChannelStateConnecting WebRTCDataChannelChannelState = 0
	/*The channel is currently open, and data can flow over it.*/
	WebRTCDataChannelStateOpen WebRTCDataChannelChannelState = 1
	/*The channel is being closed, no new messages will be accepted, but those already in queue will be flushed.*/
	WebRTCDataChannelStateClosing WebRTCDataChannelChannelState = 2
	/*The channel was closed, or connection failed.*/
	WebRTCDataChannelStateClosed WebRTCDataChannelChannelState = 3
)

type WebRTCDataChannelExtension

type WebRTCDataChannelExtension = classdb.WebRTCDataChannelExtension

type WebRTCDataChannelWriteMode

type WebRTCDataChannelWriteMode = classdb.WebRTCDataChannelWriteMode
const (
	/*Tells the channel to send data over this channel as text. An external peer (non-Godot) would receive this as a string.*/
	WebRTCDataChannelWriteModeText WebRTCDataChannelWriteMode = 0
	/*Tells the channel to send data over this channel as binary. An external peer (non-Godot) would receive this as array buffer or blob.*/
	WebRTCDataChannelWriteModeBinary WebRTCDataChannelWriteMode = 1
)

type WebRTCMultiplayerPeer

type WebRTCMultiplayerPeer = classdb.WebRTCMultiplayerPeer

This class constructs a full mesh of WebRTCPeerConnection (one connection for each peer) that can be used as a [member MultiplayerAPI.multiplayer_peer]. You can add each WebRTCPeerConnection via [method add_peer] or remove them via [method remove_peer]. Peers must be added in [constant WebRTCPeerConnection.STATE_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 [method create_client] or [method create_server] the [method MultiplayerPeer.is_server_relay_supported] method will return [code]true[/code] enabling peer exchange and packet relaying when supported by the MultiplayerAPI implementation. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type WebRTCPeerConnection

type WebRTCPeerConnection = classdb.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 ([code]A[/code] from now on) creates an offer and send it to the other peer ([code]B[/code] from now on). - [code]B[/code] receives the offer, generate and answer, and sends it to [code]A[/code]). - [code]A[/code] and [code]B[/code] 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.

type WebRTCPeerConnectionConnectionState

type WebRTCPeerConnectionConnectionState = classdb.WebRTCPeerConnectionConnectionState
const (
	/*The connection is new, data channels and an offer can be created in this state.*/
	WebRTCPeerConnectionStateNew WebRTCPeerConnectionConnectionState = 0
	/*The peer is connecting, ICE is in progress, none of the transports has failed.*/
	WebRTCPeerConnectionStateConnecting WebRTCPeerConnectionConnectionState = 1
	/*The peer is connected, all ICE transports are connected.*/
	WebRTCPeerConnectionStateConnected WebRTCPeerConnectionConnectionState = 2
	/*At least one ICE transport is disconnected.*/
	WebRTCPeerConnectionStateDisconnected WebRTCPeerConnectionConnectionState = 3
	/*One or more of the ICE transports failed.*/
	WebRTCPeerConnectionStateFailed WebRTCPeerConnectionConnectionState = 4
	/*The peer connection is closed (after calling [method close] for example).*/
	WebRTCPeerConnectionStateClosed WebRTCPeerConnectionConnectionState = 5
)

type WebRTCPeerConnectionExtension

type WebRTCPeerConnectionExtension = classdb.WebRTCPeerConnectionExtension

type WebRTCPeerConnectionGatheringState

type WebRTCPeerConnectionGatheringState = classdb.WebRTCPeerConnectionGatheringState
const (
	/*The peer connection was just created and hasn't done any networking yet.*/
	WebRTCPeerConnectionGatheringStateNew WebRTCPeerConnectionGatheringState = 0
	/*The ICE agent is in the process of gathering candidates for the connection.*/
	WebRTCPeerConnectionGatheringStateGathering WebRTCPeerConnectionGatheringState = 1
	/*The ICE agent has finished gathering candidates. If something happens that requires collecting new candidates, such as a new interface being added or the addition of a new ICE server, the state will revert to gathering to gather those candidates.*/
	WebRTCPeerConnectionGatheringStateComplete WebRTCPeerConnectionGatheringState = 2
)

type WebRTCPeerConnectionSignalingState

type WebRTCPeerConnectionSignalingState = classdb.WebRTCPeerConnectionSignalingState
const (
	/*There is no ongoing exchange of offer and answer underway. This may mean that the [WebRTCPeerConnection] is new ([constant STATE_NEW]) or that negotiation is complete and a connection has been established ([constant STATE_CONNECTED]).*/
	WebRTCPeerConnectionSignalingStateStable WebRTCPeerConnectionSignalingState = 0
	/*The local peer has called [method set_local_description], passing in SDP representing an offer (usually created by calling [method create_offer]), and the offer has been applied successfully.*/
	WebRTCPeerConnectionSignalingStateHaveLocalOffer WebRTCPeerConnectionSignalingState = 1
	/*The remote peer has created an offer and used the signaling server to deliver it to the local peer, which has set the offer as the remote description by calling [method set_remote_description].*/
	WebRTCPeerConnectionSignalingStateHaveRemoteOffer WebRTCPeerConnectionSignalingState = 2
	/*The offer sent by the remote peer has been applied and an answer has been created and applied by calling [method set_local_description]. This provisional answer describes the supported media formats and so forth, but may not have a complete set of ICE candidates included. Further candidates will be delivered separately later.*/
	WebRTCPeerConnectionSignalingStateHaveLocalPranswer WebRTCPeerConnectionSignalingState = 3
	/*A provisional answer has been received and successfully applied in response to an offer previously sent and established by calling [method set_local_description].*/
	WebRTCPeerConnectionSignalingStateHaveRemotePranswer WebRTCPeerConnectionSignalingState = 4
	/*The [WebRTCPeerConnection] has been closed.*/
	WebRTCPeerConnectionSignalingStateClosed WebRTCPeerConnectionSignalingState = 5
)

type WebSocketMultiplayerPeer

type WebSocketMultiplayerPeer = classdb.WebSocketMultiplayerPeer

Base class for WebSocket server and client, allowing them to be used as multiplayer peer for the MultiplayerAPI. [b]Note:[/b] When exporting to Android, make sure to enable the [code]INTERNET[/code] 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.

type WebSocketPeer

type WebSocketPeer = classdb.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 [method PacketPeer.put_packet], and WebSocket text frames using [method send] (prefer text frames when interacting with text-based API). You can check the frame type of the last packet via [method was_string_packet]. To start a WebSocket client, first call [method connect_to_url], then regularly call [method poll] (e.g. during Node process). You can query the socket state via [method get_ready_state], get the number of pending packets using [method PacketPeer.get_available_packet_count], and retrieve them via [method PacketPeer.get_packet]. [codeblocks] [gdscript] extends Node

var socket = WebSocketPeer.new()

func _ready():

socket.connect_to_url("wss://example.com")

func _process(delta):

socket.poll()
var state = socket.get_ready_state()
if state == WebSocketPeer.STATE_OPEN:
    while socket.get_available_packet_count():
        print("Packet: ", socket.get_packet())
elif state == WebSocketPeer.STATE_CLOSING:
    # Keep polling to achieve proper close.
    pass
elif state == WebSocketPeer.STATE_CLOSED:
    var code = socket.get_close_code()
    var reason = socket.get_close_reason()
    print("WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != -1])
    set_process(false) # Stop processing.

[/gdscript] [/codeblocks] To use the peer as part of a WebSocket server refer to [method accept_stream] and the online tutorial.

type WebSocketPeerState

type WebSocketPeerState = classdb.WebSocketPeerState
const (
	/*Socket has been created. The connection is not yet open.*/
	WebSocketPeerStateConnecting WebSocketPeerState = 0
	/*The connection is open and ready to communicate.*/
	WebSocketPeerStateOpen WebSocketPeerState = 1
	/*The connection is in the process of closing. This means a close request has been sent to the remote peer but confirmation has not been received.*/
	WebSocketPeerStateClosing WebSocketPeerState = 2
	/*The connection is closed or couldn't be opened.*/
	WebSocketPeerStateClosed WebSocketPeerState = 3
)

type WebSocketPeerWriteMode

type WebSocketPeerWriteMode = classdb.WebSocketPeerWriteMode
const (
	/*Specifies that WebSockets messages should be transferred as text payload (only valid UTF-8 is allowed).*/
	WebSocketPeerWriteModeText WebSocketPeerWriteMode = 0
	/*Specifies that WebSockets messages should be transferred as binary payload (any byte combination is allowed).*/
	WebSocketPeerWriteModeBinary WebSocketPeerWriteMode = 1
)

type WebXRInterface

type WebXRInterface = classdb.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: [codeblock] 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)

[/codeblock] There are a couple ways to handle "controller" input: - Using XRController3D nodes and their [signal XRController3D.button_pressed] and [signal XRController3D.button_released] 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 [signal select], [signal 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.

type WebXRInterfaceTargetRayMode

type WebXRInterfaceTargetRayMode = classdb.WebXRInterfaceTargetRayMode
const (
	/*We don't know the the target ray mode.*/
	WebXRInterfaceTargetRayModeUnknown WebXRInterfaceTargetRayMode = 0
	/*Target ray originates at the viewer's eyes and points in the direction they are looking.*/
	WebXRInterfaceTargetRayModeGaze WebXRInterfaceTargetRayMode = 1
	/*Target ray from a handheld pointer, most likely a VR touch controller.*/
	WebXRInterfaceTargetRayModeTrackedPointer WebXRInterfaceTargetRayMode = 2
	/*Target ray from touch screen, mouse or other tactile input device.*/
	WebXRInterfaceTargetRayModeScreen WebXRInterfaceTargetRayMode = 3
)

type Window

type Window = classdb.Window

A node that creates a window. The window can either be a native system window or embedded inside another Window (see [member Viewport.gui_embed_subwindows]). At runtime, [Window]s will not close automatically when requested. You need to handle it manually using the [signal close_requested] signal (this applies both to pressing the close button and clicking outside of a popup).

// Window methods that can be overridden by a [Class] that extends it.
type Window interface {
	//Virtual method to be implemented by the user. Overrides the value returned by [method get_contents_minimum_size].
	GetContentsMinimumSize(godot Context) gd.Vector2
}

type WindowContentScaleAspect

type WindowContentScaleAspect = classdb.WindowContentScaleAspect
const (
	/*The aspect will be ignored. Scaling will simply stretch the content to fit the target size.*/
	WindowContentScaleAspectIgnore WindowContentScaleAspect = 0
	/*The content's aspect will be preserved. If the target size has different aspect from the base one, the image will be centered and black bars will appear on left and right sides.*/
	WindowContentScaleAspectKeep WindowContentScaleAspect = 1
	/*The content can be expanded vertically. Scaling horizontally will result in keeping the width ratio and then black bars on left and right sides.*/
	WindowContentScaleAspectKeepWidth WindowContentScaleAspect = 2
	/*The content can be expanded horizontally. Scaling vertically will result in keeping the height ratio and then black bars on top and bottom sides.*/
	WindowContentScaleAspectKeepHeight WindowContentScaleAspect = 3
	/*The content's aspect will be preserved. If the target size has different aspect from the base one, the content will stay in the top-left corner and add an extra visible area in the stretched space.*/
	WindowContentScaleAspectExpand WindowContentScaleAspect = 4
)

type WindowContentScaleMode

type WindowContentScaleMode = classdb.WindowContentScaleMode
const (
	/*The content will not be scaled to match the [Window]'s size.*/
	WindowContentScaleModeDisabled WindowContentScaleMode = 0
	/*The content will be rendered at the target size. This is more performance-expensive than [constant CONTENT_SCALE_MODE_VIEWPORT], but provides better results.*/
	WindowContentScaleModeCanvasItems WindowContentScaleMode = 1
	/*The content will be rendered at the base size and then scaled to the target size. More performant than [constant CONTENT_SCALE_MODE_CANVAS_ITEMS], but results in pixelated image.*/
	WindowContentScaleModeViewport WindowContentScaleMode = 2
)

type WindowContentScaleStretch

type WindowContentScaleStretch = classdb.WindowContentScaleStretch
const (
	/*The content will be stretched according to a fractional factor. This fills all the space available in the window, but allows "pixel wobble" to occur due to uneven pixel scaling.*/
	WindowContentScaleStretchFractional WindowContentScaleStretch = 0
	/*The content will be stretched only according to an integer factor, preserving sharp pixels. This may leave a black background visible on the window's edges depending on the window size.*/
	WindowContentScaleStretchInteger WindowContentScaleStretch = 1
)

type WindowFlags

type WindowFlags = classdb.WindowFlags
const (
	/*The window can't be resized by dragging its resize grip. It's still possible to resize the window using [member size]. This flag is ignored for full screen windows. Set with [member unresizable].*/
	WindowFlagResizeDisabled WindowFlags = 0
	/*The window do not have native title bar and other decorations. This flag is ignored for full-screen windows. Set with [member borderless].*/
	WindowFlagBorderless WindowFlags = 1
	/*The window is floating on top of all other windows. This flag is ignored for full-screen windows. Set with [member always_on_top].*/
	WindowFlagAlwaysOnTop WindowFlags = 2
	/*The window background can be transparent. Set with [member transparent].
	  [b]Note:[/b] This flag has no effect if either [member ProjectSettings.display/window/per_pixel_transparency/allowed], or the window's [member Viewport.transparent_bg] is set to [code]false[/code].*/
	WindowFlagTransparent WindowFlags = 3
	/*The window can't be focused. No-focus window will ignore all input, except mouse clicks. Set with [member unfocusable].*/
	WindowFlagNoFocus WindowFlags = 4
	/*Window is part of menu or [OptionButton] dropdown. This flag can't be changed when the window is visible. An active popup window will exclusively receive all input, without stealing focus from its parent. Popup windows are automatically closed when uses click outside it, or when an application is switched. Popup window must have transient parent set (see [member transient]).
	  [b]Note:[/b] This flag has no effect in embedded windows (unless said window is a [Popup]).*/
	WindowFlagPopup WindowFlags = 5
	/*Window content is expanded to the full size of the window. Unlike borderless window, the frame is left intact and can be used to resize the window, title bar is transparent, but have minimize/maximize/close buttons. Set with [member extend_to_title].
	  [b]Note:[/b] This flag is implemented only on macOS.
	  [b]Note:[/b] This flag has no effect in embedded windows.*/
	WindowFlagExtendToTitle WindowFlags = 6
	/*All mouse events are passed to the underlying window of the same application.
	  [b]Note:[/b] This flag has no effect in embedded windows.*/
	WindowFlagMousePassthrough WindowFlags = 7
	/*Max value of the [enum Flags].*/
	WindowFlagMax WindowFlags = 8
)

type WindowLayoutDirection

type WindowLayoutDirection = classdb.WindowLayoutDirection
const (
	/*Automatic layout direction, determined from the parent window layout direction.*/
	WindowLayoutDirectionInherited WindowLayoutDirection = 0
	/*Automatic layout direction, determined from the current locale.*/
	WindowLayoutDirectionLocale WindowLayoutDirection = 1
	/*Left-to-right layout direction.*/
	WindowLayoutDirectionLtr WindowLayoutDirection = 2
	/*Right-to-left layout direction.*/
	WindowLayoutDirectionRtl WindowLayoutDirection = 3
)

type WindowMode

type WindowMode = classdb.WindowMode
const (
	/*Windowed mode, i.e. [Window] doesn't occupy the whole screen (unless set to the size of the screen).*/
	WindowModeWindowed WindowMode = 0
	/*Minimized window mode, i.e. [Window] is not visible and available on window manager's window list. Normally happens when the minimize button is pressed.*/
	WindowModeMinimized WindowMode = 1
	/*Maximized window mode, i.e. [Window] will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed.*/
	WindowModeMaximized WindowMode = 2
	/*Full screen mode with full multi-window support.
	  Full screen window covers the entire display area of a screen and has no decorations. The display's video mode is not changed.
	  [b]On Windows:[/b] Multi-window full-screen mode has a 1px border of the [member ProjectSettings.rendering/environment/defaults/default_clear_color] color.
	  [b]On macOS:[/b] A new desktop is used to display the running project.
	  [b]Note:[/b] Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple resolutions[/url] when enabling full screen mode.*/
	WindowModeFullscreen WindowMode = 3
	/*A single window full screen mode. This mode has less overhead, but only one window can be open on a given screen at a time (opening a child window or application switching will trigger a full screen transition).
	  Full screen window covers the entire display area of a screen and has no border or decorations. The display's video mode is not changed.
	  [b]On Windows:[/b] Depending on video driver, full screen transition might cause screens to go black for a moment.
	  [b]On macOS:[/b] A new desktop is used to display the running project. Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
	  [b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.
	  [b]Note:[/b] Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple resolutions[/url] when enabling full screen mode.*/
	WindowModeExclusiveFullscreen WindowMode = 4
)

type WindowWindowInitialPosition

type WindowWindowInitialPosition = classdb.WindowWindowInitialPosition
const (
	/*Initial window position is determined by [member position].*/
	WindowWindowInitialPositionAbsolute WindowWindowInitialPosition = 0
	/*Initial window position is the center of the primary screen.*/
	WindowWindowInitialPositionCenterPrimaryScreen WindowWindowInitialPosition = 1
	/*Initial window position is the center of the main window screen.*/
	WindowWindowInitialPositionCenterMainWindowScreen WindowWindowInitialPosition = 2
	/*Initial window position is the center of [member current_screen] screen.*/
	WindowWindowInitialPositionCenterOtherScreen WindowWindowInitialPosition = 3
	/*Initial window position is the center of the screen containing the mouse pointer.*/
	WindowWindowInitialPositionCenterScreenWithMouseFocus WindowWindowInitialPosition = 4
	/*Initial window position is the center of the screen containing the window with the keyboard focus.*/
	WindowWindowInitialPositionCenterScreenWithKeyboardFocus WindowWindowInitialPosition = 5
)

type World2D

type World2D = classdb.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.

type World3D

type World3D = classdb.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.

type WorldBoundaryShape2D

type WorldBoundaryShape2D = classdb.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.

type WorldBoundaryShape3D

type WorldBoundaryShape3D = classdb.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 [member 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.

type WorldEnvironment

type WorldEnvironment = classdb.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.

type X509Certificate

type X509Certificate = classdb.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 [method StreamPeerTLS.accept_stream] (along with the proper CryptoKey), and to specify the only certificate that should be accepted when connecting to a TLS server via [method StreamPeerTLS.connect_to_stream].

type XMLParser

type XMLParser = classdb.XMLParser

Provides a low-level interface for creating parsers for [url=https://en.wikipedia.org/wiki/XML]XML[/url] files. This class can serve as base to make custom XML parsers. To parse XML, you must open a file with the [method open] method or a buffer with the [method open_buffer] method. Then, the [method 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: [codeblocks] [gdscript] var parser = XMLParser.new() parser.open("path/to/file.svg") while parser.read() != ERR_FILE_EOF:

if parser.get_node_type() == XMLParser.NODE_ELEMENT:
    var node_name = parser.get_node_name()
    var attributes_dict = {}
    for idx in range(parser.get_attribute_count()):
        attributes_dict[parser.get_attribute_name(idx)] = parser.get_attribute_value(idx)
    print("The ", node_name, " element has the following attributes: ", attributes_dict)

[/gdscript] [csharp] 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}");
    }
}

[/csharp] [/codeblocks]

type XMLParserNodeType

type XMLParserNodeType = classdb.XMLParserNodeType
const (
	/*There's no node (no file or buffer opened).*/
	XMLParserNodeNone XMLParserNodeType = 0
	/*An element node type, also known as a tag, e.g. [code]<title>[/code].*/
	XMLParserNodeElement XMLParserNodeType = 1
	/*An end of element node type, e.g. [code]</title>[/code].*/
	XMLParserNodeElementEnd XMLParserNodeType = 2
	/*A text node type, i.e. text that is not inside an element. This includes whitespace.*/
	XMLParserNodeText XMLParserNodeType = 3
	/*A comment node type, e.g. [code]<!--A comment-->[/code].*/
	XMLParserNodeComment XMLParserNodeType = 4
	/*A node type for CDATA (Character Data) sections, e.g. [code]<![CDATA[CDATA section]]>[/code].*/
	XMLParserNodeCdata XMLParserNodeType = 5
	/*An unknown node type.*/
	XMLParserNodeUnknown XMLParserNodeType = 6
)

type XRAnchor3D

type XRAnchor3D = classdb.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.

type XRCamera3D

type XRCamera3D = classdb.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.

type XRController3D

type XRController3D = classdb.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.

type XRInterface

type XRInterface = classdb.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.

type XRInterfaceCapabilities

type XRInterfaceCapabilities = classdb.XRInterfaceCapabilities
const (
	/*No XR capabilities.*/
	XRInterfaceXrNone XRInterfaceCapabilities = 0
	/*This interface can work with normal rendering output (non-HMD based AR).*/
	XRInterfaceXrMono XRInterfaceCapabilities = 1
	/*This interface supports stereoscopic rendering.*/
	XRInterfaceXrStereo XRInterfaceCapabilities = 2
	/*This interface supports quad rendering (not yet supported by Godot).*/
	XRInterfaceXrQuad XRInterfaceCapabilities = 4
	/*This interface supports VR.*/
	XRInterfaceXrVr XRInterfaceCapabilities = 8
	/*This interface supports AR (video background and real world tracking).*/
	XRInterfaceXrAr XRInterfaceCapabilities = 16
	/*This interface outputs to an external device. If the main viewport is used, the on screen output is an unmodified buffer of either the left or right eye (stretched if the viewport size is not changed to the same aspect ratio of [method get_render_target_size]). Using a separate viewport node frees up the main viewport for other purposes.*/
	XRInterfaceXrExternal XRInterfaceCapabilities = 32
)

type XRInterfaceEnvironmentBlendMode

type XRInterfaceEnvironmentBlendMode = classdb.XRInterfaceEnvironmentBlendMode
const (
	/*Opaque blend mode. This is typically used for VR devices.*/
	XRInterfaceXrEnvBlendModeOpaque XRInterfaceEnvironmentBlendMode = 0
	/*Additive blend mode. This is typically used for AR devices or VR devices with passthrough.*/
	XRInterfaceXrEnvBlendModeAdditive XRInterfaceEnvironmentBlendMode = 1
	/*Alpha blend mode. This is typically used for AR or VR devices with passthrough capabilities. The alpha channel controls how much of the passthrough is visible. Alpha of 0.0 means the passthrough is visible and this pixel works in ADDITIVE mode. Alpha of 1.0 means that the passthrough is not visible and this pixel works in OPAQUE mode.*/
	XRInterfaceXrEnvBlendModeAlphaBlend XRInterfaceEnvironmentBlendMode = 2
)

type XRInterfaceExtension

type XRInterfaceExtension = classdb.XRInterfaceExtension

External XR interface plugins should inherit from this class.

// XRInterfaceExtension methods that can be overridden by a [Class] that extends it.
type XRInterfaceExtension interface {
	//Returns the name of this interface.
	GetName(godot Context) gd.StringName
	//Returns the capabilities of this interface.
	GetCapabilities(godot Context) gd.Int
	//Returns [code]true[/code] if this interface has been initialized.
	IsInitialized(godot Context) bool
	//Initializes the interface, returns [code]true[/code] on success.
	Initialize(godot Context) bool
	//Uninitialize the interface.
	Uninitialize(godot Context)
	//Returns a [Dictionary] with system information related to this interface.
	GetSystemInfo(godot Context) gd.Dictionary
	//Returns [code]true[/code] if this interface supports this play area mode.
	SupportsPlayAreaMode(godot Context, mode XRInterfacePlayAreaMode) bool
	//Returns the [enum XRInterface.PlayAreaMode] that sets up our play area.
	GetPlayAreaMode(godot Context) XRInterfacePlayAreaMode
	//Set the play area mode for this interface.
	SetPlayAreaMode(godot Context, mode XRInterfacePlayAreaMode) bool
	//Returns an [PackedVector3Array] that denotes the play areas boundaries (if applicable).
	GetPlayArea(godot Context) gd.PackedVector3Array
	//Returns the size of our render target for this interface, this overrides the size of the [Viewport] marked as the xr viewport.
	GetRenderTargetSize(godot Context) gd.Vector2
	//Returns the number of views this interface requires, 1 for mono, 2 for stereoscopic.
	GetViewCount(godot Context) gd.Int
	//Returns the [Transform3D] that positions the [XRCamera3D] in the world.
	GetCameraTransform(godot Context) gd.Transform3D
	//Returns a [Transform3D] for a given view.
	GetTransformForView(godot Context, view gd.Int, cam_transform gd.Transform3D) gd.Transform3D
	//Returns the projection matrix for the given view as a [PackedFloat64Array].
	GetProjectionForView(godot Context, view gd.Int, aspect gd.Float, z_near gd.Float, z_far gd.Float) gd.PackedFloat64Array
	GetVrsTexture(godot Context) gd.RID
	//Called if this [XRInterfaceExtension] is active before our physics and game process is called. Most XR interfaces will update its [XRPositionalTracker]s at this point in time.
	Process(godot Context)
	//Called if this [XRInterfaceExtension] is active before rendering starts. Most XR interfaces will sync tracking at this point in time.
	PreRender(godot Context)
	//Called if this is our primary [XRInterfaceExtension] before we start processing a [Viewport] for every active XR [Viewport], returns [code]true[/code] if that viewport should be rendered. An XR interface may return [code]false[/code] if the user has taken off their headset and we can pause rendering.
	PreDrawViewport(godot Context, render_target gd.RID) bool
	//Called after the XR [Viewport] draw logic has completed.
	PostDrawViewport(godot Context, render_target gd.RID, screen_rect gd.Rect2)
	//Called if interface is active and queues have been submitted.
	EndFrame(godot Context)
	//Returns a [PackedStringArray] with tracker names configured by this interface. Note that user configuration can override this list.
	GetSuggestedTrackerNames(godot Context) gd.PackedStringArray
	//Returns a [PackedStringArray] with pose names configured by this interface. Note that user configuration can override this list.
	GetSuggestedPoseNames(godot Context, tracker_name gd.StringName) gd.PackedStringArray
	//Returns a [enum XRInterface.TrackingStatus] specifying the current status of our tracking.
	GetTrackingStatus(godot Context) XRInterfaceTrackingStatus
	//Triggers a haptic pulse to be emitted on the specified tracker.
	TriggerHapticPulse(godot Context, action_name gd.String, tracker_name gd.StringName, frequency gd.Float, amplitude gd.Float, duration_sec gd.Float, delay_sec gd.Float)
	//Return [code]true[/code] if anchor detection is enabled for this interface.
	GetAnchorDetectionIsEnabled(godot Context) bool
	//Enables anchor detection on this interface if supported.
	SetAnchorDetectionIsEnabled(godot Context, enabled bool)
	//Returns the camera feed ID for the [CameraFeed] registered with the [CameraServer] that should be presented as the background on an AR capable device (if applicable).
	GetCameraFeedId(godot Context) gd.Int
	//Return color texture into which to render (if applicable).
	GetColorTexture(godot Context) gd.RID
	//Return depth texture into which to render (if applicable).
	GetDepthTexture(godot Context) gd.RID
	//Return velocity texture into which to render (if applicable).
	GetVelocityTexture(godot Context) gd.RID
}

type XRInterfacePlayAreaMode

type XRInterfacePlayAreaMode = classdb.XRInterfacePlayAreaMode
const (
	/*Play area mode not set or not available.*/
	XRInterfaceXrPlayAreaUnknown XRInterfacePlayAreaMode = 0
	/*Play area only supports orientation tracking, no positional tracking, area will center around player.*/
	XRInterfaceXrPlayArea3dof XRInterfacePlayAreaMode = 1
	/*Player is in seated position, limited positional tracking, fixed guardian around player.*/
	XRInterfaceXrPlayAreaSitting XRInterfacePlayAreaMode = 2
	/*Player is free to move around, full positional tracking.*/
	XRInterfaceXrPlayAreaRoomscale XRInterfacePlayAreaMode = 3
	/*Same as [constant XR_PLAY_AREA_ROOMSCALE] but origin point is fixed to the center of the physical space, [method XRServer.center_on_hmd] disabled.*/
	XRInterfaceXrPlayAreaStage XRInterfacePlayAreaMode = 4
)

type XRInterfaceTrackingStatus

type XRInterfaceTrackingStatus = classdb.XRInterfaceTrackingStatus
const (
	/*Tracking is behaving as expected.*/
	XRInterfaceXrNormalTracking XRInterfaceTrackingStatus = 0
	/*Tracking is hindered by excessive motion (the player is moving faster than tracking can keep up).*/
	XRInterfaceXrExcessiveMotion XRInterfaceTrackingStatus = 1
	/*Tracking is hindered by insufficient features, it's too dark (for camera-based tracking), player is blocked, etc.*/
	XRInterfaceXrInsufficientFeatures XRInterfaceTrackingStatus = 2
	/*We don't know the status of the tracking or this interface does not provide feedback.*/
	XRInterfaceXrUnknownTracking XRInterfaceTrackingStatus = 3
	/*Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.).*/
	XRInterfaceXrNotTracking XRInterfaceTrackingStatus = 4
)

type XRNode3D

type XRNode3D = classdb.XRNode3D

This node can be bound to a specific pose of a XRPositionalTracker and will automatically have its [member Node3D.transform] updated by the XRServer. Nodes of this type must be added as children of the XROrigin3D node.

type XROrigin3D

type XROrigin3D = classdb.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.

type XRPose

type XRPose = classdb.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.

type XRPoseTrackingConfidence

type XRPoseTrackingConfidence = classdb.XRPoseTrackingConfidence
const (
	/*No tracking information is available for this pose.*/
	XRPoseXrTrackingConfidenceNone XRPoseTrackingConfidence = 0
	/*Tracking information may be inaccurate or estimated. For example, with inside out tracking this would indicate a controller may be (partially) obscured.*/
	XRPoseXrTrackingConfidenceLow XRPoseTrackingConfidence = 1
	/*Tracking information is deemed accurate and up to date.*/
	XRPoseXrTrackingConfidenceHigh XRPoseTrackingConfidence = 2
)

type XRPositionalTracker

type XRPositionalTracker = classdb.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.

type XRPositionalTrackerTrackerHand

type XRPositionalTrackerTrackerHand = classdb.XRPositionalTrackerTrackerHand
const (
	/*The hand this tracker is held in is unknown or not applicable.*/
	XRPositionalTrackerTrackerHandUnknown XRPositionalTrackerTrackerHand = 0
	/*This tracker is the left hand controller.*/
	XRPositionalTrackerTrackerHandLeft XRPositionalTrackerTrackerHand = 1
	/*This tracker is the right hand controller.*/
	XRPositionalTrackerTrackerHandRight XRPositionalTrackerTrackerHand = 2
)

type XRServerRotationMode

type XRServerRotationMode = classdb.XRServerRotationMode
const (
	/*Fully reset the orientation of the HMD. Regardless of what direction the user is looking to in the real world. The user will look dead ahead in the virtual world.*/
	XRServerResetFullRotation XRServerRotationMode = 0
	/*Resets the orientation but keeps the tilt of the device. So if we're looking down, we keep looking down but heading will be reset.*/
	XRServerResetButKeepTilt XRServerRotationMode = 1
	/*Does not reset the orientation of the HMD, only the position of the player gets centered.*/
	XRServerDontResetRotation XRServerRotationMode = 2
)

type XRServerTrackerType

type XRServerTrackerType = classdb.XRServerTrackerType
const (
	/*The tracker tracks the location of the players head. This is usually a location centered between the players eyes. Note that for handheld AR devices this can be the current location of the device.*/
	XRServerTrackerHead XRServerTrackerType = 1
	/*The tracker tracks the location of a controller.*/
	XRServerTrackerController XRServerTrackerType = 2
	/*The tracker tracks the location of a base station.*/
	XRServerTrackerBasestation XRServerTrackerType = 4
	/*The tracker tracks the location and size of an AR anchor.*/
	XRServerTrackerAnchor XRServerTrackerType = 8
	/*Used internally to filter trackers of any known type.*/
	XRServerTrackerAnyKnown XRServerTrackerType = 127
	/*Used internally if we haven't set the tracker type yet.*/
	XRServerTrackerUnknown XRServerTrackerType = 128
	/*Used internally to select all trackers.*/
	XRServerTrackerAny XRServerTrackerType = 255
)

type ZIPPacker

type ZIPPacker = classdb.ZIPPacker

This class implements a writer that allows storing the multiple blobs in a zip archive. [codeblock] 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

[/codeblock]

type ZIPPackerZipAppend

type ZIPPackerZipAppend = classdb.ZIPPackerZipAppend
const (
	/*Create a new zip archive at the given path.*/
	ZIPPackerAppendCreate ZIPPackerZipAppend = 0
	/*Append a new zip archive to the end of the already existing file at the given path.*/
	ZIPPackerAppendCreateafter ZIPPackerZipAppend = 1
	/*Add new files to the existing zip archive at the given path.*/
	ZIPPackerAppendAddinzip ZIPPackerZipAppend = 2
)

type ZIPReader

type ZIPReader = classdb.ZIPReader

This class implements a reader that can extract the content of individual files inside a zip archive. [codeblock] 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

[/codeblock]

Directories

Path Synopsis
cmd
gd
The 'gd' command is designed as a drop-in replacement of the 'go' command when working with Godot-based projects.
The 'gd' command is designed as a drop-in replacement of the 'go' command when working with Godot-based projects.
Code generated by the generate package DO NOT EDIT
Code generated by the generate package DO NOT EDIT
callframe
Package callframe provides a way to create Godot-compatible callframes.
Package callframe provides a way to create Godot-compatible callframes.
classdb
Code generated by the generate package DO NOT EDIT
Code generated by the generate package DO NOT EDIT

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL